diff --git a/extensions/pagetop-admin/src/component/admin_menu.rs b/extensions/pagetop-admin/src/component/admin_menu.rs index 64106bc3..274abd74 100644 --- a/extensions/pagetop-admin/src/component/admin_menu.rs +++ b/extensions/pagetop-admin/src/component/admin_menu.rs @@ -2,13 +2,14 @@ use pagetop::prelude::*; use crate::registry; -/// Componente que renderiza el menú de secciones visibles del panel de administración. +/// Componente que renderiza la barra de navegación del panel de administración. /// -/// Construye el [`Nav`] en cada petición a partir de [`registry::admin_menu()`], ya filtrado por -/// el usuario de la petición actual. Pensado para que un tema lo registre en su propia región de -/// navegación (p. ej. `pagetop-bootsier` lo añade a su sidebar) e intercepte `Nav`/`nav::Item` en +/// Construye la [`Navbar`] en cada petición a partir de [`registry::admin_navbar()`], ya filtrada +/// por el usuario de la petición actual. Pensado para que un tema la registre en su propia región +/// de navegación e intercepte `Navbar`/`Nav`/`Dropdown` en /// [`Theme::render_component()`](pagetop::core::theme::Theme::render_component) si quiere darle un -/// aspecto propio; sin intercepción, se renderiza con el marcado por defecto de [`Nav`]. +/// aspecto propio (p. ej. `pagetop-bootsier` la reconoce automáticamente al ser componentes del +/// núcleo); sin intercepción, se renderiza con el marcado por defecto de cada componente. /// /// Sólo se renderiza en páginas creadas con /// [`Page::admin()`](pagetop::response::Page::admin) (plantilla @@ -32,6 +33,6 @@ impl Component for AdminMenu { ) { return Ok(html! {}); } - Ok(registry::admin_menu(cx).render(cx).await) + Ok(registry::admin_navbar(cx).render(cx).await) } } diff --git a/extensions/pagetop-admin/src/registry.rs b/extensions/pagetop-admin/src/registry.rs index eccae202..5bc315fd 100644 --- a/extensions/pagetop-admin/src/registry.rs +++ b/extensions/pagetop-admin/src/registry.rs @@ -271,25 +271,44 @@ pub fn global() -> &'static AdminRegistry { // **< Menú de administración >********************************************************************* -/// Construye el menú plano de secciones visibles para el usuario de la petición actual. +/// Construye la barra de navegación de administración para el usuario de la petición actual: un +/// enlace al *dashboard* seguido de un desplegable por sección visible, con sus páginas accesibles +/// dentro. /// -/// Pensado para que un tema lo use como navegación de `CoreTemplates::Admin` (p. ej. un sidebar) -- -/// ver [`crate::component::AdminMenu`]. `pagetop-admin` no impone ningún marcado propio: el -/// [`Nav`] resultante se renderiza con su aspecto por defecto salvo que el tema lo intercepte en -/// [`Theme::render_component()`](pagetop::core::theme::Theme::render_component). -pub fn admin_menu(cx: &Context) -> Nav { +/// Pensado para que un tema la use como navegación de `CoreTemplates::Admin` -- ver +/// [`crate::component::AdminMenu`]. `pagetop-admin` no impone ningún marcado propio: la +/// [`Navbar`] resultante se renderiza con su aspecto por defecto salvo que el tema lo intercepte +/// en [`Theme::render_component()`](pagetop::core::theme::Theme::render_component). Se construye +/// enteramente con componentes del núcleo (`Navbar`/`Nav`/`Dropdown`), sin depender de ningún +/// tema concreto. +pub fn admin_navbar(cx: &Context) -> Navbar { let reg = global(); - let current_path = cx.request().map(|r| r.path()).unwrap_or(""); - let mut result = Nav::new(); + let mut nav = Nav::new().with_item(nav::Item::link( + Lc::t("dashboard-title", &crate::LOCALES_ADMIN), + crate::ADMIN_BASE_PATH, + )); + for section in reg.ordered_sections() { if !section.is_visible(cx) { continue; } - let active = current_path.starts_with(section.path.as_str()); - result = result.with_item( - nav::Item::link(section.title.clone(), section.path.clone()).with_active(active), - ); + let pages: Vec<_> = reg + .pages_for_section(§ion.key) + .into_iter() + .filter(|p| p.is_accessible(cx)) + .collect(); + if pages.is_empty() { + continue; + } + let mut menu = Dropdown::new().with_title(section.title.clone()); + for page in pages { + menu = menu.with_item(dropdown::Item::link(page.title.clone(), page.path.clone())); + } + nav = nav.with_item(nav::Item::dropdown(menu)); } - result + + Navbar::simple() + .with_position(navbar::Position::StickyTop) + .with_item(navbar::Item::nav(nav)) } diff --git a/extensions/pagetop-bootsier/README.md b/extensions/pagetop-bootsier/README.md index 041701f9..b949f2e3 100644 --- a/extensions/pagetop-bootsier/README.md +++ b/extensions/pagetop-bootsier/README.md @@ -75,10 +75,12 @@ async fn homepage(request: HttpRequest) -> Result { ## Plantillas -Bootsier ofrece dos plantillas (`BootsierTemplates`): `Standard`, con cabecera, contenido y pie, -que es la plantilla por defecto de cualquier página; y `Admin`, con la shell completa de -AdminLTE 4 (barra superior + barra lateral + área de contenido), que se activa creando la página -con `Page::admin()` en lugar de `Page::new()`. +Bootsier maqueta las dos plantillas de PageTop (`CoreTemplates`) con la misma cabecera, contenido +y pie: `Standard`, la plantilla por defecto de cualquier página; y `Admin`, que se activa creando +la página con `Page::admin()` en lugar de `Page::new()`. Ambas se maquetan igual hoy -- la +distinción entre página "normal" y de administración no vive en el maquetado, sino en qué +extensión registra contenido en cada región y para qué plantilla se autolimita (por ejemplo, el +menú de `pagetop-admin`, ver más abajo). ```rust,no_run use pagetop::prelude::*; @@ -93,59 +95,28 @@ async fn about(request: HttpRequest) -> Result { } ``` -## Barra lateral +## Menú de administración -Registra elementos en `BootsierRegion::Sidebar` para poblar la barra lateral de la shell. Los -elementos esperados son `theme::sidebar::Item` y `theme::sidebar::Section`. +`pagetop-admin` (si está presente en la aplicación) registra su propio menú de secciones y +páginas en `CoreRegions::Aside`, autolimitado a páginas con la plantilla `Admin` -- no requiere +ningún registro por parte de Bootsier. Se construye con `Navbar`/`Nav`/`Dropdown`, los mismos +componentes disponibles para cualquier página de la aplicación. -De forma **global** (visibles en todas las páginas de administración): +## Selector de modo de color + +`bs::theme_toggle()` crea un ítem de menú con el selector de modo de color (claro / oscuro / +automático), pensado para añadirse a cualquier `Nav` de la aplicación, no sólo a las páginas de +administración: ```rust,no_run use pagetop::prelude::*; -use pagetop_bootsier::theme::{BootsierRegion, sidebar}; +use pagetop_bootsier::theme::*; -fn register_navigation() { - InRegion::Global(&BootsierRegion::Sidebar) - .add(sidebar::Section::titled(Lc::n("Administración"))) - .add(sidebar::Item::link(Lc::n("Usuarios"), "/users", "people")) - .add(sidebar::Item::link(Lc::n("Roles"), "/roles", "shield-check")); -} -``` - -O de forma **por página**: - -```rust,no_run -use pagetop::prelude::*; -use pagetop_bootsier::theme::{BootsierRegion, sidebar}; - -async fn settings(request: HttpRequest) -> Result { - Page::admin(request) - .with_child_in( - &BootsierRegion::Sidebar, - sidebar::Item::link(Lc::n("Ajustes"), "/settings", "gear"), - ) - .with_child(Html::with(|_| html! { h3 { "Ajustes" } })) - .render() -} -``` - -## Barra de navegación superior - -La barra superior incluye por defecto los controles de pantalla completa y selector -de tema. Para añadir elementos adicionales en el lado derecho (por ejemplo, el -dropdown de usuario de `pagetop-user`), registra componentes en -`BootsierRegion::Navbar`: - -```rust,no_run -use pagetop::prelude::*; -use pagetop_bootsier::theme::BootsierRegion; - -InRegion::Global(&BootsierRegion::Navbar) - .add(Html::with(|_| html! { - li class="nav-item" { - a class="nav-link" href="/logout" { "Cerrar sesión" } - } - })); +let navbar = bs::Navbar::simple().with_item(bs::navbar::Item::nav( + bs::Nav::new() + .with_item(bs::nav::Item::link(Lc::n("Home"), "/")) + .with_item(bs::theme_toggle()), +)); ``` ## Créditos diff --git a/extensions/pagetop-bootsier/assets/_bootsier-custom.scss b/extensions/pagetop-bootsier/assets/_bootsier-custom.scss index fb77c8b9..2ab7aa7a 100644 --- a/extensions/pagetop-bootsier/assets/_bootsier-custom.scss +++ b/extensions/pagetop-bootsier/assets/_bootsier-custom.scss @@ -1,7 +1,7 @@ // Bootsier CSS rules: self-hosted fonts, form elements, regions and components. -// Self-hosted Source Sans 3 (SIL OFL 1.1), served from /bootsier/fonts. -// Required by AdminLTE 4, which declares it as the primary font family in $font-family-sans-serif. +// Self-hosted Source Sans 3 (SIL OFL 1.1), served from /bootsier/fonts. Declared as the primary +// font family in $font-family-sans-serif (_bootsier-variables.scss). // Font URLs must match the Preload declarations in src/lib.rs; a mismatch causes double downloads. @font-face { font-family: "Source Sans 3"; diff --git a/extensions/pagetop-bootsier/assets/_bootsier-variables.scss b/extensions/pagetop-bootsier/assets/_bootsier-variables.scss index ec7d6caf..c67cbfee 100644 --- a/extensions/pagetop-bootsier/assets/_bootsier-variables.scss +++ b/extensions/pagetop-bootsier/assets/_bootsier-variables.scss @@ -3,3 +3,9 @@ $font-size-base: 1.125rem; $navbar-brand-font-size: 1.75rem; + +// Self-hosted Source Sans 3 (SIL OFL 1.1) as the primary font family; see the @font-face +// declarations in _bootsier-custom.scss. +$font-family-sans-serif: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, + "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", + "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.js b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.js deleted file mode 100644 index 7ce13dff..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.js +++ /dev/null @@ -1,1081 +0,0 @@ -/*! - * AdminLTE v4.0.0 (https://adminlte.io) - * Copyright 2014-2026 Colorlib - * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE) - */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.adminlte = {})); -})(this, (function (exports) { 'use strict'; - - const domContentLoadedCallbacks = []; - const onDOMContentLoaded = (callback) => { - if (document.readyState === 'loading') { - if (!domContentLoadedCallbacks.length) { - document.addEventListener('DOMContentLoaded', () => { - for (const callback of domContentLoadedCallbacks) { - callback(); - } - }); - } - domContentLoadedCallbacks.push(callback); - } - else { - callback(); - } - }; - const slideUp = (target, duration = 500) => { - if (duration <= 1) { - target.style.display = 'none'; - return; - } - target.style.transitionProperty = 'height, margin, padding'; - target.style.transitionDuration = `${duration}ms`; - target.style.boxSizing = 'border-box'; - target.style.height = `${target.offsetHeight}px`; - target.style.overflow = 'hidden'; - globalThis.setTimeout(() => { - target.style.height = '0'; - target.style.paddingTop = '0'; - target.style.paddingBottom = '0'; - target.style.marginTop = '0'; - target.style.marginBottom = '0'; - }, 1); - globalThis.setTimeout(() => { - target.style.display = 'none'; - target.style.removeProperty('height'); - target.style.removeProperty('padding-top'); - target.style.removeProperty('padding-bottom'); - target.style.removeProperty('margin-top'); - target.style.removeProperty('margin-bottom'); - target.style.removeProperty('overflow'); - target.style.removeProperty('transition-duration'); - target.style.removeProperty('transition-property'); - }, duration); - }; - const slideDown = (target, duration = 500) => { - target.style.removeProperty('display'); - let { display } = globalThis.getComputedStyle(target); - if (display === 'none') { - display = 'block'; - } - target.style.display = display; - if (duration <= 1) { - return; - } - const height = target.offsetHeight; - target.style.overflow = 'hidden'; - target.style.height = '0'; - target.style.paddingTop = '0'; - target.style.paddingBottom = '0'; - target.style.marginTop = '0'; - target.style.marginBottom = '0'; - globalThis.setTimeout(() => { - target.style.boxSizing = 'border-box'; - target.style.transitionProperty = 'height, margin, padding'; - target.style.transitionDuration = `${duration}ms`; - target.style.height = `${height}px`; - target.style.removeProperty('padding-top'); - target.style.removeProperty('padding-bottom'); - target.style.removeProperty('margin-top'); - target.style.removeProperty('margin-bottom'); - }, 1); - globalThis.setTimeout(() => { - target.style.removeProperty('height'); - target.style.removeProperty('overflow'); - target.style.removeProperty('transition-duration'); - target.style.removeProperty('transition-property'); - }, duration); - }; - - const CLASS_NAME_HOLD_TRANSITIONS = 'hold-transition'; - const CLASS_NAME_APP_LOADED = 'app-loaded'; - class Layout { - _element; - _holdTransitionTimer; - constructor(element) { - this._element = element; - this._holdTransitionTimer = undefined; - } - holdTransition(time = 100) { - if (this._holdTransitionTimer) { - clearTimeout(this._holdTransitionTimer); - } - document.body.classList.add(CLASS_NAME_HOLD_TRANSITIONS); - this._holdTransitionTimer = setTimeout(() => { - document.body.classList.remove(CLASS_NAME_HOLD_TRANSITIONS); - }, time); - } - } - onDOMContentLoaded(() => { - const layout = new Layout(document.body); - window.addEventListener('resize', () => layout.holdTransition(200)); - setTimeout(() => { - document.body.classList.add(CLASS_NAME_APP_LOADED); - }, 400); - }); - - const DATA_KEY$4 = 'lte.card-widget'; - const EVENT_KEY$4 = `.${DATA_KEY$4}`; - const EVENT_COLLAPSED$2 = `collapsed${EVENT_KEY$4}`; - const EVENT_EXPANDED$2 = `expanded${EVENT_KEY$4}`; - const EVENT_REMOVE = `remove${EVENT_KEY$4}`; - const EVENT_MAXIMIZED$1 = `maximized${EVENT_KEY$4}`; - const EVENT_MINIMIZED$1 = `minimized${EVENT_KEY$4}`; - const CLASS_NAME_CARD = 'card'; - const CLASS_NAME_COLLAPSED = 'collapsed-card'; - const CLASS_NAME_COLLAPSING = 'collapsing-card'; - const CLASS_NAME_EXPANDING = 'expanding-card'; - const CLASS_NAME_WAS_COLLAPSED = 'was-collapsed'; - const CLASS_NAME_MAXIMIZED = 'maximized-card'; - const SELECTOR_DATA_REMOVE = '[data-lte-toggle="card-remove"]'; - const SELECTOR_DATA_COLLAPSE = '[data-lte-toggle="card-collapse"]'; - const SELECTOR_DATA_MAXIMIZE = '[data-lte-toggle="card-maximize"]'; - const SELECTOR_CARD = `.${CLASS_NAME_CARD}`; - const SELECTOR_CARD_BODY = '.card-body'; - const SELECTOR_CARD_FOOTER = '.card-footer'; - const Default$1 = { - animationSpeed: 500, - collapseTrigger: SELECTOR_DATA_COLLAPSE, - removeTrigger: SELECTOR_DATA_REMOVE, - maximizeTrigger: SELECTOR_DATA_MAXIMIZE - }; - class CardWidget { - _element; - _parent; - _clone; - _config; - constructor(element, config) { - this._element = element; - this._parent = element.closest(SELECTOR_CARD); - if (element.classList.contains(CLASS_NAME_CARD)) { - this._parent = element; - } - this._config = { ...Default$1, ...config }; - } - collapse() { - const event = new Event(EVENT_COLLAPSED$2); - if (this._parent) { - this._parent.classList.add(CLASS_NAME_COLLAPSING); - const elm = this._parent?.querySelectorAll(`:scope > ${SELECTOR_CARD_BODY}, :scope > ${SELECTOR_CARD_FOOTER}`); - elm.forEach(el => { - if (el instanceof HTMLElement) { - slideUp(el, this._config.animationSpeed); - } - }); - setTimeout(() => { - if (this._parent) { - this._parent.classList.add(CLASS_NAME_COLLAPSED); - this._parent.classList.remove(CLASS_NAME_COLLAPSING); - } - }, this._config.animationSpeed); - } - this._element?.dispatchEvent(event); - } - expand() { - const event = new Event(EVENT_EXPANDED$2); - if (this._parent) { - this._parent.classList.add(CLASS_NAME_EXPANDING); - const elm = this._parent?.querySelectorAll(`:scope > ${SELECTOR_CARD_BODY}, :scope > ${SELECTOR_CARD_FOOTER}`); - elm.forEach(el => { - if (el instanceof HTMLElement) { - slideDown(el, this._config.animationSpeed); - } - }); - setTimeout(() => { - if (this._parent) { - this._parent.classList.remove(CLASS_NAME_COLLAPSED, CLASS_NAME_EXPANDING); - } - }, this._config.animationSpeed); - } - this._element?.dispatchEvent(event); - } - remove() { - const event = new Event(EVENT_REMOVE); - if (this._parent) { - slideUp(this._parent, this._config.animationSpeed); - } - this._element?.dispatchEvent(event); - } - toggle() { - if (this._parent?.classList.contains(CLASS_NAME_COLLAPSED)) { - this.expand(); - return; - } - this.collapse(); - } - maximize() { - const event = new Event(EVENT_MAXIMIZED$1); - if (this._parent) { - this._parent.style.height = `${this._parent.offsetHeight}px`; - this._parent.style.width = `${this._parent.offsetWidth}px`; - this._parent.style.transition = 'all .15s'; - setTimeout(() => { - const htmlTag = document.querySelector('html'); - if (htmlTag) { - htmlTag.classList.add(CLASS_NAME_MAXIMIZED); - } - if (this._parent) { - this._parent.classList.add(CLASS_NAME_MAXIMIZED); - if (this._parent.classList.contains(CLASS_NAME_COLLAPSED)) { - this._parent.classList.add(CLASS_NAME_WAS_COLLAPSED); - } - } - }, 150); - } - this._element?.dispatchEvent(event); - } - minimize() { - const event = new Event(EVENT_MINIMIZED$1); - if (this._parent) { - this._parent.style.height = 'auto'; - this._parent.style.width = 'auto'; - this._parent.style.transition = 'all .15s'; - setTimeout(() => { - const htmlTag = document.querySelector('html'); - if (htmlTag) { - htmlTag.classList.remove(CLASS_NAME_MAXIMIZED); - } - if (this._parent) { - this._parent.classList.remove(CLASS_NAME_MAXIMIZED); - if (this._parent?.classList.contains(CLASS_NAME_WAS_COLLAPSED)) { - this._parent.classList.remove(CLASS_NAME_WAS_COLLAPSED); - } - } - }, 10); - } - this._element?.dispatchEvent(event); - } - toggleMaximize() { - if (this._parent?.classList.contains(CLASS_NAME_MAXIMIZED)) { - this.minimize(); - return; - } - this.maximize(); - } - } - onDOMContentLoaded(() => { - const collapseBtn = document.querySelectorAll(SELECTOR_DATA_COLLAPSE); - collapseBtn.forEach(btn => { - btn.addEventListener('click', event => { - event.preventDefault(); - const target = event.target; - const data = new CardWidget(target, Default$1); - data.toggle(); - }); - }); - const removeBtn = document.querySelectorAll(SELECTOR_DATA_REMOVE); - removeBtn.forEach(btn => { - btn.addEventListener('click', event => { - event.preventDefault(); - const target = event.target; - const data = new CardWidget(target, Default$1); - data.remove(); - }); - }); - const maxBtn = document.querySelectorAll(SELECTOR_DATA_MAXIMIZE); - maxBtn.forEach(btn => { - btn.addEventListener('click', event => { - event.preventDefault(); - const target = event.target; - const data = new CardWidget(target, Default$1); - data.toggleMaximize(); - }); - }); - }); - - const DATA_KEY$3 = 'lte.treeview'; - const EVENT_KEY$3 = `.${DATA_KEY$3}`; - const EVENT_EXPANDED$1 = `expanded${EVENT_KEY$3}`; - const EVENT_COLLAPSED$1 = `collapsed${EVENT_KEY$3}`; - const EVENT_LOAD_DATA_API = `load${EVENT_KEY$3}`; - const CLASS_NAME_MENU_OPEN = 'menu-open'; - const SELECTOR_NAV_ITEM = '.nav-item'; - const SELECTOR_NAV_LINK = '.nav-link'; - const SELECTOR_TREEVIEW_MENU = '.nav-treeview'; - const SELECTOR_DATA_TOGGLE$1 = '[data-lte-toggle="treeview"]'; - const Default = { - animationSpeed: 300, - accordion: true - }; - class Treeview { - _element; - _config; - constructor(element, config) { - this._element = element; - this._config = { ...Default, ...config }; - } - open() { - const event = new Event(EVENT_EXPANDED$1); - if (this._config.accordion) { - const openMenuList = this._element.parentElement?.querySelectorAll(`${SELECTOR_NAV_ITEM}.${CLASS_NAME_MENU_OPEN}`); - openMenuList?.forEach(openMenu => { - if (openMenu !== this._element.parentElement) { - openMenu.classList.remove(CLASS_NAME_MENU_OPEN); - const childElement = openMenu?.querySelector(SELECTOR_TREEVIEW_MENU); - if (childElement) { - slideUp(childElement, this._config.animationSpeed); - } - } - }); - } - this._element.classList.add(CLASS_NAME_MENU_OPEN); - const childElement = this._element?.querySelector(SELECTOR_TREEVIEW_MENU); - if (childElement) { - slideDown(childElement, this._config.animationSpeed); - } - this._element.dispatchEvent(event); - } - close() { - const event = new Event(EVENT_COLLAPSED$1); - this._element.classList.remove(CLASS_NAME_MENU_OPEN); - const childElement = this._element?.querySelector(SELECTOR_TREEVIEW_MENU); - if (childElement) { - slideUp(childElement, this._config.animationSpeed); - } - this._element.dispatchEvent(event); - } - toggle() { - if (this._element.classList.contains(CLASS_NAME_MENU_OPEN)) { - this.close(); - } - else { - this.open(); - } - } - } - onDOMContentLoaded(() => { - const openMenuItems = document.querySelectorAll(`${SELECTOR_NAV_ITEM}.${CLASS_NAME_MENU_OPEN}`); - openMenuItems.forEach(menuItem => { - const childElement = menuItem.querySelector(SELECTOR_TREEVIEW_MENU); - if (childElement) { - slideDown(childElement, 0); - const event = new Event(EVENT_LOAD_DATA_API); - menuItem.dispatchEvent(event); - } - }); - const button = document.querySelectorAll(SELECTOR_DATA_TOGGLE$1); - button.forEach(btn => { - btn.addEventListener('click', event => { - const target = event.target; - const targetItem = target.closest(SELECTOR_NAV_ITEM); - const targetLink = target.closest(SELECTOR_NAV_LINK); - const targetTreeviewMenu = targetItem?.querySelector(SELECTOR_TREEVIEW_MENU); - const lteToggleElement = event.currentTarget; - if (!targetTreeviewMenu) { - return; - } - if (target?.getAttribute('href') === '#' || targetLink?.getAttribute('href') === '#') { - event.preventDefault(); - } - if (targetItem) { - const accordionAttr = lteToggleElement.dataset.accordion; - const animationSpeedAttr = lteToggleElement.dataset.animationSpeed; - const config = { - accordion: accordionAttr === undefined ? Default.accordion : accordionAttr === 'true', - animationSpeed: animationSpeedAttr === undefined ? Default.animationSpeed : Number(animationSpeedAttr) - }; - const data = new Treeview(targetItem, config); - data.toggle(); - } - }); - }); - }); - - const DATA_KEY$2 = 'lte.direct-chat'; - const EVENT_KEY$2 = `.${DATA_KEY$2}`; - const EVENT_EXPANDED = `expanded${EVENT_KEY$2}`; - const EVENT_COLLAPSED = `collapsed${EVENT_KEY$2}`; - const SELECTOR_DATA_TOGGLE = '[data-lte-toggle="chat-pane"]'; - const SELECTOR_DIRECT_CHAT = '.direct-chat'; - const CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open'; - class DirectChat { - _element; - constructor(element) { - this._element = element; - } - toggle() { - if (this._element.classList.contains(CLASS_NAME_DIRECT_CHAT_OPEN)) { - const event = new Event(EVENT_COLLAPSED); - this._element.classList.remove(CLASS_NAME_DIRECT_CHAT_OPEN); - this._element.dispatchEvent(event); - } - else { - const event = new Event(EVENT_EXPANDED); - this._element.classList.add(CLASS_NAME_DIRECT_CHAT_OPEN); - this._element.dispatchEvent(event); - } - } - } - onDOMContentLoaded(() => { - const button = document.querySelectorAll(SELECTOR_DATA_TOGGLE); - button.forEach(btn => { - btn.addEventListener('click', event => { - event.preventDefault(); - const target = event.target; - const chatPane = target.closest(SELECTOR_DIRECT_CHAT); - if (chatPane) { - const data = new DirectChat(chatPane); - data.toggle(); - } - }); - }); - }); - - const DATA_KEY$1 = 'lte.fullscreen'; - const EVENT_KEY$1 = `.${DATA_KEY$1}`; - const EVENT_MAXIMIZED = `maximized${EVENT_KEY$1}`; - const EVENT_MINIMIZED = `minimized${EVENT_KEY$1}`; - const SELECTOR_FULLSCREEN_TOGGLE = '[data-lte-toggle="fullscreen"]'; - const SELECTOR_MAXIMIZE_ICON = '[data-lte-icon="maximize"]'; - const SELECTOR_MINIMIZE_ICON = '[data-lte-icon="minimize"]'; - class FullScreen { - _element; - _config; - constructor(element, config) { - this._element = element; - this._config = config; - } - inFullScreen() { - const event = new Event(EVENT_MAXIMIZED); - const iconMaximize = document.querySelector(SELECTOR_MAXIMIZE_ICON); - const iconMinimize = document.querySelector(SELECTOR_MINIMIZE_ICON); - void document.documentElement.requestFullscreen(); - if (iconMaximize) { - iconMaximize.classList.add('d-none'); - } - if (iconMinimize) { - iconMinimize.classList.remove('d-none'); - } - this._element.dispatchEvent(event); - } - outFullscreen() { - const event = new Event(EVENT_MINIMIZED); - const iconMaximize = document.querySelector(SELECTOR_MAXIMIZE_ICON); - const iconMinimize = document.querySelector(SELECTOR_MINIMIZE_ICON); - void document.exitFullscreen(); - if (iconMaximize) { - iconMaximize.classList.remove('d-none'); - } - if (iconMinimize) { - iconMinimize.classList.add('d-none'); - } - this._element.dispatchEvent(event); - } - toggleFullScreen() { - if (document.fullscreenEnabled) { - if (document.fullscreenElement) { - this.outFullscreen(); - } - else { - this.inFullScreen(); - } - } - } - } - onDOMContentLoaded(() => { - const buttons = document.querySelectorAll(SELECTOR_FULLSCREEN_TOGGLE); - buttons.forEach(btn => { - btn.addEventListener('click', event => { - event.preventDefault(); - const target = event.target; - const button = target.closest(SELECTOR_FULLSCREEN_TOGGLE); - if (button) { - const data = new FullScreen(button, undefined); - data.toggleFullScreen(); - } - }); - }); - }); - - const DATA_KEY = 'lte.push-menu'; - const EVENT_KEY = `.${DATA_KEY}`; - const EVENT_OPEN = `open${EVENT_KEY}`; - const EVENT_COLLAPSE = `collapse${EVENT_KEY}`; - const CLASS_NAME_SIDEBAR_MINI = 'sidebar-mini'; - const CLASS_NAME_SIDEBAR_EXPAND = 'sidebar-expand'; - const CLASS_NAME_SIDEBAR_OVERLAY = 'sidebar-overlay'; - const CLASS_NAME_SIDEBAR_COLLAPSE = 'sidebar-collapse'; - const CLASS_NAME_SIDEBAR_OPEN = 'sidebar-open'; - const SELECTOR_APP_SIDEBAR = '.app-sidebar'; - const SELECTOR_APP_WRAPPER = '.app-wrapper'; - const SELECTOR_SIDEBAR_EXPAND = `[class*="${CLASS_NAME_SIDEBAR_EXPAND}"]`; - const SELECTOR_SIDEBAR_TOGGLE = '[data-lte-toggle="sidebar"]'; - const STORAGE_KEY_SIDEBAR_STATE = 'lte.sidebar.state'; - const Defaults = { - sidebarBreakpoint: 992, - enablePersistence: false - }; - class PushMenu { - _element; - _config; - constructor(element, config) { - this._element = element; - this._config = { ...Defaults, ...config }; - } - isCollapsed() { - return document.body.classList.contains(CLASS_NAME_SIDEBAR_COLLAPSE); - } - isExplicitlyOpen() { - return document.body.classList.contains(CLASS_NAME_SIDEBAR_OPEN); - } - isMiniMode() { - return document.body.classList.contains(CLASS_NAME_SIDEBAR_MINI); - } - isMobileSize() { - return globalThis.innerWidth <= this._config.sidebarBreakpoint; - } - expand() { - document.body.classList.remove(CLASS_NAME_SIDEBAR_COLLAPSE); - if (this.isMobileSize()) { - document.body.classList.add(CLASS_NAME_SIDEBAR_OPEN); - } - this._element.dispatchEvent(new Event(EVENT_OPEN)); - } - collapse() { - document.body.classList.remove(CLASS_NAME_SIDEBAR_OPEN); - document.body.classList.add(CLASS_NAME_SIDEBAR_COLLAPSE); - this._element.dispatchEvent(new Event(EVENT_COLLAPSE)); - } - toggle() { - const isCollapsed = this.isCollapsed(); - if (isCollapsed) { - this.expand(); - } - else { - this.collapse(); - } - if (this._config.enablePersistence) { - this.saveSidebarState(isCollapsed ? CLASS_NAME_SIDEBAR_OPEN : CLASS_NAME_SIDEBAR_COLLAPSE); - } - } - setupSidebarBreakPoint() { - const sidebarExpand = document.querySelector(SELECTOR_SIDEBAR_EXPAND); - if (!sidebarExpand) { - return; - } - const content = globalThis.getComputedStyle(sidebarExpand, '::before') - .getPropertyValue('content'); - if (!content || content === 'none') { - return; - } - const breakpointValue = Number(content.replace(/[^\d.-]/g, '')); - if (Number.isNaN(breakpointValue)) { - return; - } - this._config = { ...this._config, sidebarBreakpoint: breakpointValue }; - } - updateStateByResponsiveLogic() { - if (this.isMobileSize()) { - if (!this.isExplicitlyOpen()) { - this.collapse(); - } - } - else { - if (!(this.isMiniMode() && this.isCollapsed())) { - this.expand(); - } - } - } - saveSidebarState(state) { - if (globalThis.localStorage === undefined) { - return; - } - try { - localStorage.setItem(STORAGE_KEY_SIDEBAR_STATE, state); - } - catch { - } - } - loadSidebarState() { - if (globalThis.localStorage === undefined) { - return; - } - try { - const storedState = localStorage.getItem(STORAGE_KEY_SIDEBAR_STATE); - if (storedState === CLASS_NAME_SIDEBAR_COLLAPSE) { - this.collapse(); - } - else if (storedState === CLASS_NAME_SIDEBAR_OPEN) { - this.expand(); - } - else { - this.updateStateByResponsiveLogic(); - } - } - catch { - this.updateStateByResponsiveLogic(); - } - } - clearSidebarState() { - if (globalThis.localStorage === undefined) { - return; - } - try { - localStorage.removeItem(STORAGE_KEY_SIDEBAR_STATE); - } - catch { - } - } - init() { - this.setupSidebarBreakPoint(); - if (!this._config.enablePersistence) { - this.clearSidebarState(); - } - if (this._config.enablePersistence && !this.isMobileSize()) { - this.loadSidebarState(); - } - else { - this.updateStateByResponsiveLogic(); - } - } - } - onDOMContentLoaded(() => { - const sidebar = document?.querySelector(SELECTOR_APP_SIDEBAR); - if (!sidebar) { - return; - } - const sidebarBreakpointAttr = sidebar.dataset.sidebarBreakpoint; - const enablePersistenceAttr = sidebar.dataset.enablePersistence; - const config = { - sidebarBreakpoint: sidebarBreakpointAttr === undefined ? - Defaults.sidebarBreakpoint : - Number(sidebarBreakpointAttr), - enablePersistence: enablePersistenceAttr === undefined ? - Defaults.enablePersistence : - enablePersistenceAttr === 'true' - }; - const pushMenu = new PushMenu(sidebar, config); - pushMenu.init(); - window.addEventListener('resize', () => { - pushMenu.setupSidebarBreakPoint(); - pushMenu.updateStateByResponsiveLogic(); - }); - const sidebarOverlay = document.createElement('div'); - sidebarOverlay.className = CLASS_NAME_SIDEBAR_OVERLAY; - document.querySelector(SELECTOR_APP_WRAPPER)?.append(sidebarOverlay); - let overlayTouchMoved = false; - sidebarOverlay.addEventListener('touchstart', () => { - overlayTouchMoved = false; - }, { passive: true }); - sidebarOverlay.addEventListener('touchmove', () => { - overlayTouchMoved = true; - }, { passive: true }); - sidebarOverlay.addEventListener('touchend', event => { - if (!overlayTouchMoved) { - event.preventDefault(); - pushMenu.collapse(); - } - overlayTouchMoved = false; - }, { passive: false }); - sidebarOverlay.addEventListener('click', event => { - event.preventDefault(); - pushMenu.collapse(); - }); - const fullBtn = document.querySelectorAll(SELECTOR_SIDEBAR_TOGGLE); - fullBtn.forEach(btn => { - btn.addEventListener('click', event => { - event.preventDefault(); - let button = event.currentTarget; - if (button?.dataset.lteToggle !== 'sidebar') { - button = button?.closest(SELECTOR_SIDEBAR_TOGGLE); - } - if (button) { - event?.preventDefault(); - pushMenu.toggle(); - } - }); - }); - }); - - class AccessibilityManager { - config; - liveRegion = null; - focusHistory = []; - constructor(config = {}) { - this.config = { - announcements: true, - skipLinks: true, - focusManagement: true, - keyboardNavigation: true, - reducedMotion: true, - ...config - }; - this.init(); - } - init() { - if (this.config.announcements) { - this.createLiveRegion(); - } - if (this.config.skipLinks) { - this.addSkipLinks(); - } - if (this.config.focusManagement) { - this.initFocusManagement(); - } - if (this.config.keyboardNavigation) { - this.initKeyboardNavigation(); - } - if (this.config.reducedMotion) { - this.respectReducedMotion(); - } - this.initErrorAnnouncements(); - this.initTableAccessibility(); - this.initFormAccessibility(); - } - createLiveRegion() { - if (this.liveRegion) - return; - this.liveRegion = document.createElement('div'); - this.liveRegion.id = 'live-region'; - this.liveRegion.className = 'live-region'; - this.liveRegion.setAttribute('aria-live', 'polite'); - this.liveRegion.setAttribute('aria-atomic', 'true'); - this.liveRegion.setAttribute('role', 'status'); - document.body.append(this.liveRegion); - } - addSkipLinks() { - const skipLinksContainer = document.createElement('div'); - skipLinksContainer.className = 'skip-links'; - const skipToMain = document.createElement('a'); - skipToMain.href = '#main'; - skipToMain.className = 'skip-link'; - skipToMain.textContent = 'Skip to main content'; - const skipToNav = document.createElement('a'); - skipToNav.href = '#navigation'; - skipToNav.className = 'skip-link'; - skipToNav.textContent = 'Skip to navigation'; - skipLinksContainer.append(skipToMain); - skipLinksContainer.append(skipToNav); - document.body.insertBefore(skipLinksContainer, document.body.firstChild); - this.ensureSkipTargets(); - } - ensureSkipTargets() { - const main = document.querySelector('#main, main, [role="main"]'); - if (main && !main.id) { - main.id = 'main'; - } - if (main && !main.hasAttribute('tabindex')) { - main.setAttribute('tabindex', '-1'); - } - const nav = document.querySelector('#navigation, nav, [role="navigation"]'); - if (nav && !nav.id) { - nav.id = 'navigation'; - } - if (nav && !nav.hasAttribute('tabindex')) { - nav.setAttribute('tabindex', '-1'); - } - } - initFocusManagement() { - document.addEventListener('keydown', (event) => { - if (event.key === 'Tab') { - this.handleTabNavigation(event); - } - if (event.key === 'Escape') { - this.handleEscapeKey(event); - } - }); - this.initModalFocusManagement(); - this.initDropdownFocusManagement(); - } - handleTabNavigation(event) { - const focusableElements = this.getFocusableElements(); - const currentIndex = focusableElements.indexOf(document.activeElement); - if (event.shiftKey) { - if (currentIndex <= 0) { - event.preventDefault(); - focusableElements.at(-1)?.focus(); - } - } - else if (currentIndex >= focusableElements.length - 1) { - event.preventDefault(); - focusableElements[0]?.focus(); - } - } - getFocusableElements() { - const selector = [ - 'a[href]', - 'button:not([disabled])', - 'input:not([disabled])', - 'select:not([disabled])', - 'textarea:not([disabled])', - '[tabindex]:not([tabindex="-1"])', - '[contenteditable="true"]' - ].join(', '); - return Array.from(document.querySelectorAll(selector)); - } - handleEscapeKey(event) { - const activeModal = document.querySelector('.modal.show'); - if (activeModal) { - return; - } - const activeDropdown = document.querySelector('.dropdown-menu.show'); - if (activeDropdown) { - const toggleButton = document.querySelector('[data-bs-toggle="dropdown"][aria-expanded="true"]'); - toggleButton?.click(); - event.preventDefault(); - } - } - initKeyboardNavigation() { - document.addEventListener('keydown', (event) => { - const target = event.target; - if (target.closest('.nav, .navbar-nav, .dropdown-menu')) { - this.handleMenuNavigation(event); - } - if ((event.key === 'Enter' || event.key === ' ') && target.hasAttribute('role') && target.getAttribute('role') === 'button' && !target.matches('button, input[type="button"], input[type="submit"]')) { - event.preventDefault(); - target.click(); - } - }); - } - handleMenuNavigation(event) { - if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key)) { - return; - } - const currentElement = event.target; - const menuItems = Array.from(currentElement.closest('.nav, .navbar-nav, .dropdown-menu')?.querySelectorAll('a, button') || []); - const currentIndex = menuItems.indexOf(currentElement); - let nextIndex; - switch (event.key) { - case 'ArrowDown': - case 'ArrowRight': { - nextIndex = currentIndex < menuItems.length - 1 ? currentIndex + 1 : 0; - break; - } - case 'ArrowUp': - case 'ArrowLeft': { - nextIndex = currentIndex > 0 ? currentIndex - 1 : menuItems.length - 1; - break; - } - case 'Home': { - nextIndex = 0; - break; - } - case 'End': { - nextIndex = menuItems.length - 1; - break; - } - default: { - return; - } - } - event.preventDefault(); - menuItems[nextIndex]?.focus(); - } - respectReducedMotion() { - const prefersReducedMotion = globalThis.matchMedia('(prefers-reduced-motion: reduce)').matches; - if (prefersReducedMotion) { - document.body.classList.add('reduce-motion'); - document.documentElement.style.scrollBehavior = 'auto'; - const style = document.createElement('style'); - style.textContent = ` - *, *::before, *::after { - animation-duration: 0.01ms !important; - animation-iteration-count: 1 !important; - transition-duration: 0.01ms !important; - } - `; - document.head.append(style); - } - } - initErrorAnnouncements() { - const observer = new MutationObserver((mutations) => { - mutations.forEach((mutation) => { - mutation.addedNodes.forEach((node) => { - if (node.nodeType === Node.ELEMENT_NODE) { - const element = node; - if (element.matches('.alert-danger, .invalid-feedback, .error')) { - this.announce(element.textContent || 'Error occurred', 'assertive'); - } - if (element.matches('.alert-success, .success')) { - this.announce(element.textContent || 'Success', 'polite'); - } - } - }); - }); - }); - observer.observe(document.body, { - childList: true, - subtree: true - }); - } - initTableAccessibility() { - document.querySelectorAll('table').forEach((table) => { - if (!table.hasAttribute('role')) { - table.setAttribute('role', 'table'); - } - table.querySelectorAll('th').forEach((th) => { - if (!th.hasAttribute('scope')) { - const isInThead = th.closest('thead'); - const isFirstColumn = th.cellIndex === 0; - if (isInThead) { - th.setAttribute('scope', 'col'); - } - else if (isFirstColumn) { - th.setAttribute('scope', 'row'); - } - } - }); - if (!table.querySelector('caption') && table.hasAttribute('title')) { - const caption = document.createElement('caption'); - caption.textContent = table.getAttribute('title') || ''; - table.insertBefore(caption, table.firstChild); - } - }); - } - initFormAccessibility() { - document.querySelectorAll('input, select, textarea').forEach((input) => { - const htmlInput = input; - if (!htmlInput.labels?.length && !htmlInput.hasAttribute('aria-label') && !htmlInput.hasAttribute('aria-labelledby')) { - const placeholder = htmlInput.getAttribute('placeholder'); - if (placeholder) { - htmlInput.setAttribute('aria-label', placeholder); - } - } - if (htmlInput.hasAttribute('required')) { - const label = htmlInput.labels?.[0]; - if (label && !label.querySelector('.required-indicator')) { - const indicator = document.createElement('span'); - indicator.className = 'required-indicator sr-only'; - indicator.textContent = ' (required)'; - label.append(indicator); - } - } - if (!htmlInput.classList.contains('disable-adminlte-validations')) { - htmlInput.addEventListener('invalid', () => { - this.handleFormError(htmlInput); - }); - } - }); - } - handleFormError(input) { - const errorId = `${input.id || input.name}-error`; - let errorElement = document.getElementById(errorId); - if (!errorElement) { - errorElement = document.createElement('div'); - errorElement.id = errorId; - errorElement.className = 'invalid-feedback'; - errorElement.setAttribute('role', 'alert'); - input.parentNode?.append(errorElement); - } - errorElement.textContent = input.validationMessage; - input.setAttribute('aria-describedby', errorId); - input.classList.add('is-invalid'); - this.announce(`Error in ${input.labels?.[0]?.textContent || input.name}: ${input.validationMessage}`, 'assertive'); - } - initModalFocusManagement() { - document.addEventListener('shown.bs.modal', (event) => { - const modal = event.target; - const focusableElements = modal.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'); - if (focusableElements.length > 0) { - focusableElements[0].focus(); - } - this.focusHistory.push(document.activeElement); - }); - document.addEventListener('hidden.bs.modal', () => { - const previousElement = this.focusHistory.pop(); - if (previousElement) { - previousElement.focus(); - } - }); - } - initDropdownFocusManagement() { - document.addEventListener('shown.bs.dropdown', (event) => { - const dropdown = event.target; - const menu = dropdown.querySelector('.dropdown-menu'); - const firstItem = menu?.querySelector('a, button'); - if (firstItem) { - firstItem.focus(); - } - }); - } - announce(message, priority = 'polite') { - if (!this.liveRegion) { - this.createLiveRegion(); - } - if (this.liveRegion) { - this.liveRegion.setAttribute('aria-live', priority); - this.liveRegion.textContent = message; - setTimeout(() => { - if (this.liveRegion) { - this.liveRegion.textContent = ''; - } - }, 1000); - } - } - focusElement(selector) { - const element = document.querySelector(selector); - if (element) { - element.focus(); - element.scrollIntoView({ behavior: 'smooth', block: 'center' }); - } - } - trapFocus(container) { - const focusableElements = container.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'); - const focusableArray = Array.from(focusableElements); - const firstElement = focusableArray[0]; - const lastElement = focusableArray.at(-1); - container.addEventListener('keydown', (event) => { - if (event.key === 'Tab') { - if (event.shiftKey) { - if (document.activeElement === firstElement) { - lastElement?.focus(); - event.preventDefault(); - } - } - else if (document.activeElement === lastElement) { - firstElement.focus(); - event.preventDefault(); - } - } - }); - } - addLandmarks() { - const main = document.querySelector('main'); - if (!main) { - const appMain = document.querySelector('.app-main'); - if (appMain) { - appMain.setAttribute('role', 'main'); - appMain.id = 'main'; - } - } - document.querySelectorAll('.navbar-nav, .nav').forEach((nav, index) => { - if (!nav.hasAttribute('role')) { - nav.setAttribute('role', 'navigation'); - } - if (!nav.hasAttribute('aria-label')) { - nav.setAttribute('aria-label', `Navigation ${index + 1}`); - } - }); - const searchForm = document.querySelector('form[role="search"], .navbar-search'); - if (searchForm && !searchForm.hasAttribute('role')) { - searchForm.setAttribute('role', 'search'); - } - } - } - const initAccessibility = (config) => { - return new AccessibilityManager(config); - }; - - onDOMContentLoaded(() => { - const accessibilityManager = initAccessibility({ - announcements: true, - skipLinks: true, - focusManagement: true, - keyboardNavigation: true, - reducedMotion: true - }); - accessibilityManager.addLandmarks(); - }); - - exports.CardWidget = CardWidget; - exports.DirectChat = DirectChat; - exports.FullScreen = FullScreen; - exports.Layout = Layout; - exports.PushMenu = PushMenu; - exports.Treeview = Treeview; - exports.initAccessibility = initAccessibility; - -})); -//# sourceMappingURL=adminlte.js.map diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.js.map b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.js.map deleted file mode 100644 index 4344c78f..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"adminlte.js","sources":["../../src/ts/util/index.ts","../../src/ts/layout.ts","../../src/ts/card-widget.ts","../../src/ts/treeview.ts","../../src/ts/direct-chat.ts","../../src/ts/fullscreen.ts","../../src/ts/push-menu.ts","../../src/ts/accessibility.ts","../../src/ts/adminlte.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["DATA_KEY","EVENT_KEY","EVENT_COLLAPSED","EVENT_EXPANDED","EVENT_MAXIMIZED","EVENT_MINIMIZED","Default","SELECTOR_DATA_TOGGLE"],"mappings":"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"} \ No newline at end of file diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.min.js b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.min.js deleted file mode 100644 index 9182ae35..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * AdminLTE v4.0.0 (https://adminlte.io) - * Copyright 2014-2026 Colorlib - * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE) - */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).adminlte={})}(this,function(e){"use strict";const t=[],n=e=>{"loading"===document.readyState?(t.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of t)e()}),t.push(e)):e()},i=(e,t=500)=>{t<=1?e.style.display="none":(e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=`${t}ms`,e.style.boxSizing="border-box",e.style.height=`${e.offsetHeight}px`,e.style.overflow="hidden",globalThis.setTimeout(()=>{e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.marginTop="0",e.style.marginBottom="0"},1),globalThis.setTimeout(()=>{e.style.display="none",e.style.removeProperty("height"),e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property")},t))},o=(e,t=500)=>{e.style.removeProperty("display");let{display:n}=globalThis.getComputedStyle(e);if("none"===n&&(n="block"),e.style.display=n,t<=1)return;const i=e.offsetHeight;e.style.overflow="hidden",e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.marginTop="0",e.style.marginBottom="0",globalThis.setTimeout(()=>{e.style.boxSizing="border-box",e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=`${t}ms`,e.style.height=`${i}px`,e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom")},1),globalThis.setTimeout(()=>{e.style.removeProperty("height"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property")},t)},s="hold-transition";class a{_element;_holdTransitionTimer;constructor(e){this._element=e,this._holdTransitionTimer=void 0}holdTransition(e=100){this._holdTransitionTimer&&clearTimeout(this._holdTransitionTimer),document.body.classList.add(s),this._holdTransitionTimer=setTimeout(()=>{document.body.classList.remove(s)},e)}}n(()=>{const e=new a(document.body);window.addEventListener("resize",()=>e.holdTransition(200)),setTimeout(()=>{document.body.classList.add("app-loaded")},400)});const r=".lte.card-widget",l=`collapsed${r}`,c=`expanded${r}`,d=`remove${r}`,u=`maximized${r}`,m=`minimized${r}`,h="card",p="collapsed-card",g="collapsing-card",v="expanding-card",y="was-collapsed",b="maximized-card",f='[data-lte-toggle="card-remove"]',E='[data-lte-toggle="card-collapse"]',S='[data-lte-toggle="card-maximize"]',_=`.${h}`,L=".card-body",A=".card-footer",w={animationSpeed:500,collapseTrigger:E,removeTrigger:f,maximizeTrigger:S};class x{_element;_parent;_clone;_config;constructor(e,t){this._element=e,this._parent=e.closest(_),e.classList.contains(h)&&(this._parent=e),this._config={...w,...t}}collapse(){const e=new Event(l);if(this._parent){this._parent.classList.add(g);const e=this._parent?.querySelectorAll(`:scope > ${L}, :scope > ${A}`);e.forEach(e=>{e instanceof HTMLElement&&i(e,this._config.animationSpeed)}),setTimeout(()=>{this._parent&&(this._parent.classList.add(p),this._parent.classList.remove(g))},this._config.animationSpeed)}this._element?.dispatchEvent(e)}expand(){const e=new Event(c);if(this._parent){this._parent.classList.add(v);const e=this._parent?.querySelectorAll(`:scope > ${L}, :scope > ${A}`);e.forEach(e=>{e instanceof HTMLElement&&o(e,this._config.animationSpeed)}),setTimeout(()=>{this._parent&&this._parent.classList.remove(p,v)},this._config.animationSpeed)}this._element?.dispatchEvent(e)}remove(){const e=new Event(d);this._parent&&i(this._parent,this._config.animationSpeed),this._element?.dispatchEvent(e)}toggle(){this._parent?.classList.contains(p)?this.expand():this.collapse()}maximize(){const e=new Event(u);this._parent&&(this._parent.style.height=`${this._parent.offsetHeight}px`,this._parent.style.width=`${this._parent.offsetWidth}px`,this._parent.style.transition="all .15s",setTimeout(()=>{const e=document.querySelector("html");e&&e.classList.add(b),this._parent&&(this._parent.classList.add(b),this._parent.classList.contains(p)&&this._parent.classList.add(y))},150)),this._element?.dispatchEvent(e)}minimize(){const e=new Event(m);this._parent&&(this._parent.style.height="auto",this._parent.style.width="auto",this._parent.style.transition="all .15s",setTimeout(()=>{const e=document.querySelector("html");e&&e.classList.remove(b),this._parent&&(this._parent.classList.remove(b),this._parent?.classList.contains(y)&&this._parent.classList.remove(y))},10)),this._element?.dispatchEvent(e)}toggleMaximize(){this._parent?.classList.contains(b)?this.minimize():this.maximize()}}n(()=>{document.querySelectorAll(E).forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();const t=e.target;new x(t,w).toggle()})}),document.querySelectorAll(f).forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();const t=e.target;new x(t,w).remove()})}),document.querySelectorAll(S).forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();const t=e.target;new x(t,w).toggleMaximize()})})});const k=".lte.treeview",T=`expanded${k}`,q=`collapsed${k}`,M=`load${k}`,$="menu-open",P=".nav-item",N=".nav-treeview",R={animationSpeed:300,accordion:!0};class D{_element;_config;constructor(e,t){this._element=e,this._config={...R,...t}}open(){const e=new Event(T);if(this._config.accordion){const e=this._element.parentElement?.querySelectorAll(`${P}.${$}`);e?.forEach(e=>{if(e!==this._element.parentElement){e.classList.remove($);const t=e?.querySelector(N);t&&i(t,this._config.animationSpeed)}})}this._element.classList.add($);const t=this._element?.querySelector(N);t&&o(t,this._config.animationSpeed),this._element.dispatchEvent(e)}close(){const e=new Event(q);this._element.classList.remove($);const t=this._element?.querySelector(N);t&&i(t,this._config.animationSpeed),this._element.dispatchEvent(e)}toggle(){this._element.classList.contains($)?this.close():this.open()}}n(()=>{document.querySelectorAll(`${P}.${$}`).forEach(e=>{const t=e.querySelector(N);if(t){o(t,0);const n=new Event(M);e.dispatchEvent(n)}}),document.querySelectorAll('[data-lte-toggle="treeview"]').forEach(e=>{e.addEventListener("click",e=>{const t=e.target,n=t.closest(P),i=t.closest(".nav-link"),o=n?.querySelector(N),s=e.currentTarget;if(o&&("#"!==t?.getAttribute("href")&&"#"!==i?.getAttribute("href")||e.preventDefault(),n)){const e=s.dataset.accordion,t=s.dataset.animationSpeed,i={accordion:void 0===e?R.accordion:"true"===e,animationSpeed:void 0===t?R.animationSpeed:Number(t)};new D(n,i).toggle()}})})});const z=".lte.direct-chat",B=`expanded${z}`,F=`collapsed${z}`,C="direct-chat-contacts-open";class H{_element;constructor(e){this._element=e}toggle(){if(this._element.classList.contains(C)){const e=new Event(F);this._element.classList.remove(C),this._element.dispatchEvent(e)}else{const e=new Event(B);this._element.classList.add(C),this._element.dispatchEvent(e)}}}n(()=>{document.querySelectorAll('[data-lte-toggle="chat-pane"]').forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();const t=e.target.closest(".direct-chat");t&&new H(t).toggle()})})});const O=".lte.fullscreen",I=`maximized${O}`,K=`minimized${O}`,W='[data-lte-toggle="fullscreen"]',j='[data-lte-icon="maximize"]',U='[data-lte-icon="minimize"]';class V{_element;_config;constructor(e,t){this._element=e,this._config=t}inFullScreen(){const e=new Event(I),t=document.querySelector(j),n=document.querySelector(U);document.documentElement.requestFullscreen(),t&&t.classList.add("d-none"),n&&n.classList.remove("d-none"),this._element.dispatchEvent(e)}outFullscreen(){const e=new Event(K),t=document.querySelector(j),n=document.querySelector(U);document.exitFullscreen(),t&&t.classList.remove("d-none"),n&&n.classList.add("d-none"),this._element.dispatchEvent(e)}toggleFullScreen(){document.fullscreenEnabled&&(document.fullscreenElement?this.outFullscreen():this.inFullScreen())}}n(()=>{document.querySelectorAll(W).forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();const t=e.target.closest(W);t&&new V(t,void 0).toggleFullScreen()})})});const G=".lte.push-menu",J=`open${G}`,Q=`collapse${G}`,X="sidebar-collapse",Y="sidebar-open",Z='[data-lte-toggle="sidebar"]',ee="lte.sidebar.state",te={sidebarBreakpoint:992,enablePersistence:!1};class ne{_element;_config;constructor(e,t){this._element=e,this._config={...te,...t}}isCollapsed(){return document.body.classList.contains(X)}isExplicitlyOpen(){return document.body.classList.contains(Y)}isMiniMode(){return document.body.classList.contains("sidebar-mini")}isMobileSize(){return globalThis.innerWidth<=this._config.sidebarBreakpoint}expand(){document.body.classList.remove(X),this.isMobileSize()&&document.body.classList.add(Y),this._element.dispatchEvent(new Event(J))}collapse(){document.body.classList.remove(Y),document.body.classList.add(X),this._element.dispatchEvent(new Event(Q))}toggle(){const e=this.isCollapsed();e?this.expand():this.collapse(),this._config.enablePersistence&&this.saveSidebarState(e?Y:X)}setupSidebarBreakPoint(){const e=document.querySelector('[class*="sidebar-expand"]');if(!e)return;const t=globalThis.getComputedStyle(e,"::before").getPropertyValue("content");if(!t||"none"===t)return;const n=Number(t.replace(/[^\d.-]/g,""));Number.isNaN(n)||(this._config={...this._config,sidebarBreakpoint:n})}updateStateByResponsiveLogic(){this.isMobileSize()?this.isExplicitlyOpen()||this.collapse():this.isMiniMode()&&this.isCollapsed()||this.expand()}saveSidebarState(e){if(void 0!==globalThis.localStorage)try{localStorage.setItem(ee,e)}catch{}}loadSidebarState(){if(void 0!==globalThis.localStorage)try{const e=localStorage.getItem(ee);e===X?this.collapse():e===Y?this.expand():this.updateStateByResponsiveLogic()}catch{this.updateStateByResponsiveLogic()}}clearSidebarState(){if(void 0!==globalThis.localStorage)try{localStorage.removeItem(ee)}catch{}}init(){this.setupSidebarBreakPoint(),this._config.enablePersistence||this.clearSidebarState(),this._config.enablePersistence&&!this.isMobileSize()?this.loadSidebarState():this.updateStateByResponsiveLogic()}}n(()=>{const e=document?.querySelector(".app-sidebar");if(!e)return;const t=e.dataset.sidebarBreakpoint,n=e.dataset.enablePersistence,i={sidebarBreakpoint:void 0===t?te.sidebarBreakpoint:Number(t),enablePersistence:void 0===n?te.enablePersistence:"true"===n},o=new ne(e,i);o.init(),window.addEventListener("resize",()=>{o.setupSidebarBreakPoint(),o.updateStateByResponsiveLogic()});const s=document.createElement("div");s.className="sidebar-overlay",document.querySelector(".app-wrapper")?.append(s);let a=!1;s.addEventListener("touchstart",()=>{a=!1},{passive:!0}),s.addEventListener("touchmove",()=>{a=!0},{passive:!0}),s.addEventListener("touchend",e=>{a||(e.preventDefault(),o.collapse()),a=!1},{passive:!1}),s.addEventListener("click",e=>{e.preventDefault(),o.collapse()}),document.querySelectorAll(Z).forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();let t=e.currentTarget;"sidebar"!==t?.dataset.lteToggle&&(t=t?.closest(Z)),t&&(e?.preventDefault(),o.toggle())})})});class ie{config;liveRegion=null;focusHistory=[];constructor(e={}){this.config={announcements:!0,skipLinks:!0,focusManagement:!0,keyboardNavigation:!0,reducedMotion:!0,...e},this.init()}init(){this.config.announcements&&this.createLiveRegion(),this.config.skipLinks&&this.addSkipLinks(),this.config.focusManagement&&this.initFocusManagement(),this.config.keyboardNavigation&&this.initKeyboardNavigation(),this.config.reducedMotion&&this.respectReducedMotion(),this.initErrorAnnouncements(),this.initTableAccessibility(),this.initFormAccessibility()}createLiveRegion(){this.liveRegion||(this.liveRegion=document.createElement("div"),this.liveRegion.id="live-region",this.liveRegion.className="live-region",this.liveRegion.setAttribute("aria-live","polite"),this.liveRegion.setAttribute("aria-atomic","true"),this.liveRegion.setAttribute("role","status"),document.body.append(this.liveRegion))}addSkipLinks(){const e=document.createElement("div");e.className="skip-links";const t=document.createElement("a");t.href="#main",t.className="skip-link",t.textContent="Skip to main content";const n=document.createElement("a");n.href="#navigation",n.className="skip-link",n.textContent="Skip to navigation",e.append(t),e.append(n),document.body.insertBefore(e,document.body.firstChild),this.ensureSkipTargets()}ensureSkipTargets(){const e=document.querySelector('#main, main, [role="main"]');e&&!e.id&&(e.id="main"),e&&!e.hasAttribute("tabindex")&&e.setAttribute("tabindex","-1");const t=document.querySelector('#navigation, nav, [role="navigation"]');t&&!t.id&&(t.id="navigation"),t&&!t.hasAttribute("tabindex")&&t.setAttribute("tabindex","-1")}initFocusManagement(){document.addEventListener("keydown",e=>{"Tab"===e.key&&this.handleTabNavigation(e),"Escape"===e.key&&this.handleEscapeKey(e)}),this.initModalFocusManagement(),this.initDropdownFocusManagement()}handleTabNavigation(e){const t=this.getFocusableElements(),n=t.indexOf(document.activeElement);e.shiftKey?n<=0&&(e.preventDefault(),t.at(-1)?.focus()):n>=t.length-1&&(e.preventDefault(),t[0]?.focus())}getFocusableElements(){const e=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])','[contenteditable="true"]'].join(", ");return Array.from(document.querySelectorAll(e))}handleEscapeKey(e){if(!document.querySelector(".modal.show")&&document.querySelector(".dropdown-menu.show")){const t=document.querySelector('[data-bs-toggle="dropdown"][aria-expanded="true"]');t?.click(),e.preventDefault()}}initKeyboardNavigation(){document.addEventListener("keydown",e=>{const t=e.target;t.closest(".nav, .navbar-nav, .dropdown-menu")&&this.handleMenuNavigation(e),"Enter"!==e.key&&" "!==e.key||!t.hasAttribute("role")||"button"!==t.getAttribute("role")||t.matches('button, input[type="button"], input[type="submit"]')||(e.preventDefault(),t.click())})}handleMenuNavigation(e){if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;const t=e.target,n=Array.from(t.closest(".nav, .navbar-nav, .dropdown-menu")?.querySelectorAll("a, button")||[]),i=n.indexOf(t);let o;switch(e.key){case"ArrowDown":case"ArrowRight":o=i0?i-1:n.length-1;break;case"Home":o=0;break;case"End":o=n.length-1;break;default:return}e.preventDefault(),n[o]?.focus()}respectReducedMotion(){if(globalThis.matchMedia("(prefers-reduced-motion: reduce)").matches){document.body.classList.add("reduce-motion"),document.documentElement.style.scrollBehavior="auto";const e=document.createElement("style");e.textContent="\n *, *::before, *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n ",document.head.append(e)}}initErrorAnnouncements(){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if(e.nodeType===Node.ELEMENT_NODE){const t=e;t.matches(".alert-danger, .invalid-feedback, .error")&&this.announce(t.textContent||"Error occurred","assertive"),t.matches(".alert-success, .success")&&this.announce(t.textContent||"Success","polite")}})})}).observe(document.body,{childList:!0,subtree:!0})}initTableAccessibility(){document.querySelectorAll("table").forEach(e=>{if(e.hasAttribute("role")||e.setAttribute("role","table"),e.querySelectorAll("th").forEach(e=>{if(!e.hasAttribute("scope")){const t=e.closest("thead"),n=0===e.cellIndex;t?e.setAttribute("scope","col"):n&&e.setAttribute("scope","row")}}),!e.querySelector("caption")&&e.hasAttribute("title")){const t=document.createElement("caption");t.textContent=e.getAttribute("title")||"",e.insertBefore(t,e.firstChild)}})}initFormAccessibility(){document.querySelectorAll("input, select, textarea").forEach(e=>{const t=e;if(!t.labels?.length&&!t.hasAttribute("aria-label")&&!t.hasAttribute("aria-labelledby")){const e=t.getAttribute("placeholder");e&&t.setAttribute("aria-label",e)}if(t.hasAttribute("required")){const e=t.labels?.[0];if(e&&!e.querySelector(".required-indicator")){const t=document.createElement("span");t.className="required-indicator sr-only",t.textContent=" (required)",e.append(t)}}t.classList.contains("disable-adminlte-validations")||t.addEventListener("invalid",()=>{this.handleFormError(t)})})}handleFormError(e){const t=`${e.id||e.name}-error`;let n=document.getElementById(t);n||(n=document.createElement("div"),n.id=t,n.className="invalid-feedback",n.setAttribute("role","alert"),e.parentNode?.append(n)),n.textContent=e.validationMessage,e.setAttribute("aria-describedby",t),e.classList.add("is-invalid"),this.announce(`Error in ${e.labels?.[0]?.textContent||e.name}: ${e.validationMessage}`,"assertive")}initModalFocusManagement(){document.addEventListener("shown.bs.modal",e=>{const t=e.target.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');t.length>0&&t[0].focus(),this.focusHistory.push(document.activeElement)}),document.addEventListener("hidden.bs.modal",()=>{const e=this.focusHistory.pop();e&&e.focus()})}initDropdownFocusManagement(){document.addEventListener("shown.bs.dropdown",e=>{const t=e.target.querySelector(".dropdown-menu"),n=t?.querySelector("a, button");n&&n.focus()})}announce(e,t="polite"){this.liveRegion||this.createLiveRegion(),this.liveRegion&&(this.liveRegion.setAttribute("aria-live",t),this.liveRegion.textContent=e,setTimeout(()=>{this.liveRegion&&(this.liveRegion.textContent="")},1e3))}focusElement(e){const t=document.querySelector(e);t&&(t.focus(),t.scrollIntoView({behavior:"smooth",block:"center"}))}trapFocus(e){const t=e.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),n=Array.from(t),i=n[0],o=n.at(-1);e.addEventListener("keydown",e=>{"Tab"===e.key&&(e.shiftKey?document.activeElement===i&&(o?.focus(),e.preventDefault()):document.activeElement===o&&(i.focus(),e.preventDefault()))})}addLandmarks(){if(!document.querySelector("main")){const e=document.querySelector(".app-main");e&&(e.setAttribute("role","main"),e.id="main")}document.querySelectorAll(".navbar-nav, .nav").forEach((e,t)=>{e.hasAttribute("role")||e.setAttribute("role","navigation"),e.hasAttribute("aria-label")||e.setAttribute("aria-label",`Navigation ${t+1}`)});const e=document.querySelector('form[role="search"], .navbar-search');e&&!e.hasAttribute("role")&&e.setAttribute("role","search")}}const oe=e=>new ie(e);n(()=>{oe({announcements:!0,skipLinks:!0,focusManagement:!0,keyboardNavigation:!0,reducedMotion:!0}).addLandmarks()}),e.CardWidget=x,e.DirectChat=H,e.FullScreen=V,e.Layout=a,e.PushMenu=ne,e.Treeview=D,e.initAccessibility=oe}); -//# sourceMappingURL=adminlte.min.js.map \ No newline at end of file diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.min.js.map b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.min.js.map deleted file mode 100644 index 8d1f43a3..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/js/adminlte.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["domContentLoadedCallbacks","onDOMContentLoaded","callback","document","readyState","length","addEventListener","push","slideUp","target","duration","style","display","transitionProperty","transitionDuration","boxSizing","height","offsetHeight","overflow","globalThis","setTimeout","paddingTop","paddingBottom","marginTop","marginBottom","removeProperty","slideDown","getComputedStyle","CLASS_NAME_HOLD_TRANSITIONS","Layout","_element","_holdTransitionTimer","constructor","element","this","undefined","holdTransition","time","clearTimeout","body","classList","add","remove","layout","window","EVENT_KEY","EVENT_COLLAPSED","EVENT_EXPANDED","EVENT_REMOVE","EVENT_MAXIMIZED","EVENT_MINIMIZED","CLASS_NAME_CARD","CLASS_NAME_COLLAPSED","CLASS_NAME_COLLAPSING","CLASS_NAME_EXPANDING","CLASS_NAME_WAS_COLLAPSED","CLASS_NAME_MAXIMIZED","SELECTOR_DATA_REMOVE","SELECTOR_DATA_COLLAPSE","SELECTOR_DATA_MAXIMIZE","SELECTOR_CARD","SELECTOR_CARD_BODY","SELECTOR_CARD_FOOTER","Default","animationSpeed","collapseTrigger","removeTrigger","maximizeTrigger","CardWidget","_parent","_clone","_config","config","closest","contains","collapse","event","Event","elm","querySelectorAll","forEach","el","HTMLElement","dispatchEvent","expand","toggle","maximize","width","offsetWidth","transition","htmlTag","querySelector","minimize","toggleMaximize","btn","preventDefault","EVENT_LOAD_DATA_API","CLASS_NAME_MENU_OPEN","SELECTOR_NAV_ITEM","SELECTOR_TREEVIEW_MENU","accordion","Treeview","open","openMenuList","parentElement","openMenu","childElement","close","menuItem","targetItem","targetLink","targetTreeviewMenu","lteToggleElement","currentTarget","getAttribute","accordionAttr","dataset","animationSpeedAttr","Number","CLASS_NAME_DIRECT_CHAT_OPEN","DirectChat","chatPane","SELECTOR_FULLSCREEN_TOGGLE","SELECTOR_MAXIMIZE_ICON","SELECTOR_MINIMIZE_ICON","FullScreen","inFullScreen","iconMaximize","iconMinimize","documentElement","requestFullscreen","outFullscreen","exitFullscreen","toggleFullScreen","fullscreenEnabled","fullscreenElement","button","EVENT_OPEN","EVENT_COLLAPSE","CLASS_NAME_SIDEBAR_COLLAPSE","CLASS_NAME_SIDEBAR_OPEN","SELECTOR_SIDEBAR_TOGGLE","STORAGE_KEY_SIDEBAR_STATE","Defaults","sidebarBreakpoint","enablePersistence","PushMenu","isCollapsed","isExplicitlyOpen","isMiniMode","isMobileSize","innerWidth","saveSidebarState","setupSidebarBreakPoint","sidebarExpand","content","getPropertyValue","breakpointValue","replace","isNaN","updateStateByResponsiveLogic","state","localStorage","setItem","loadSidebarState","storedState","getItem","clearSidebarState","removeItem","init","sidebar","sidebarBreakpointAttr","enablePersistenceAttr","pushMenu","sidebarOverlay","createElement","className","append","overlayTouchMoved","passive","lteToggle","AccessibilityManager","liveRegion","focusHistory","announcements","skipLinks","focusManagement","keyboardNavigation","reducedMotion","createLiveRegion","addSkipLinks","initFocusManagement","initKeyboardNavigation","respectReducedMotion","initErrorAnnouncements","initTableAccessibility","initFormAccessibility","id","setAttribute","skipLinksContainer","skipToMain","href","textContent","skipToNav","insertBefore","firstChild","ensureSkipTargets","main","hasAttribute","nav","key","handleTabNavigation","handleEscapeKey","initModalFocusManagement","initDropdownFocusManagement","focusableElements","getFocusableElements","currentIndex","indexOf","activeElement","shiftKey","at","focus","selector","join","Array","from","toggleButton","click","handleMenuNavigation","matches","includes","currentElement","menuItems","nextIndex","matchMedia","scrollBehavior","head","MutationObserver","mutations","mutation","addedNodes","node","nodeType","Node","ELEMENT_NODE","announce","observe","childList","subtree","table","th","isInThead","isFirstColumn","cellIndex","caption","input","htmlInput","labels","placeholder","label","indicator","handleFormError","errorId","name","errorElement","getElementById","parentNode","validationMessage","previousElement","pop","menu","firstItem","message","priority","focusElement","scrollIntoView","behavior","block","trapFocus","container","focusableArray","firstElement","lastElement","addLandmarks","appMain","index","searchForm","initAccessibility"],"sources":["../../src/ts/util/index.ts","../../src/ts/layout.ts","../../src/ts/card-widget.ts","../../src/ts/treeview.ts","../../src/ts/direct-chat.ts","../../src/ts/fullscreen.ts","../../src/ts/push-menu.ts","../../src/ts/accessibility.ts","../../src/ts/adminlte.ts"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_accessibility.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_accessibility.scss deleted file mode 100644 index a07fc9bd..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_accessibility.scss +++ /dev/null @@ -1,337 +0,0 @@ -/* ========================================================================== - AdminLTE Accessibility Styles - WCAG 2.1 AA Compliance - ========================================================================== */ - -/* Skip Links - WCAG 2.4.1: Bypass Blocks */ -.skip-link { - position: absolute; - top: -40px; - left: 6px; - z-index: 999999; - padding: 8px 16px; - font-weight: 600; - color: var(--bs-white); - text-decoration: none; - background: var(--bs-primary); - - &:focus { - top: 0; - outline: 3px solid var(--bs-warning); - outline-offset: 2px; - } - - &:hover { - color: var(--bs-white); - text-decoration: none; - background: var(--bs-primary-emphasis); - } -} - -/* Enhanced Focus Indicators - WCAG 2.4.7: Focus Visible */ -.focus-enhanced { - &:focus { - outline: 3px solid var(--bs-focus-ring-color, #0d6efd); - outline-offset: 2px; - box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25); - } -} - -/* High Contrast Mode Support */ -@media (prefers-contrast: high) { - .card { - border: 2px solid; - } - - .btn { - border-width: 2px; - } - - .nav-link { - border: 1px solid transparent; - - &:hover, - &:focus { - border-color: currentcolor; - } - } -} - -/* Reduced Motion Support - WCAG 2.3.3: Animation from Interactions */ -@media (prefers-reduced-motion: reduce) { - *, - *::before, - *::after { - transition-duration: .01ms !important; - animation-duration: .01ms !important; - animation-iteration-count: 1 !important; - scroll-behavior: auto !important; - } - - .fade { - opacity: 1 !important; - /* stylelint-disable-next-line property-disallowed-list */ - transition: none !important; - } - - .collapse { - /* stylelint-disable-next-line property-disallowed-list */ - transition: none !important; - } - - .modal.fade .modal-dialog { - transform: none !important; - } -} - -/* Screen Reader Only Content */ -.sr-only { - position: absolute !important; - width: 1px !important; - height: 1px !important; - padding: 0 !important; - margin: -1px !important; - overflow: hidden !important; - clip: rect(0, 0, 0, 0) !important; - white-space: nowrap !important; - border: 0 !important; -} - -.sr-only-focusable:focus { - position: static !important; - width: auto !important; - height: auto !important; - padding: inherit !important; - margin: inherit !important; - overflow: visible !important; - clip: auto !important; - white-space: normal !important; -} - -/* Focus Trap Utilities */ -.focus-trap { - &:focus { - box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25); - } -} - -/* Accessible Color Combinations - WCAG 1.4.3: Contrast (Minimum) */ -.text-accessible-primary { - color: #003d82; /* 4.5:1 contrast on white */ -} - -.text-accessible-success { - color: #0f5132; /* 4.5:1 contrast on white */ -} - -.text-accessible-danger { - color: #842029; /* 4.5:1 contrast on white */ -} - -.text-accessible-warning { - color: #664d03; /* 4.5:1 contrast on white */ -} - -/* ARIA Live Regions */ -.live-region { - position: absolute; - left: -10000px; - width: 1px; - height: 1px; - overflow: hidden; - - &.live-region-visible { - position: static; - left: auto; - width: auto; - height: auto; - overflow: visible; - } -} - -/* Enhanced Error States - WCAG 3.3.1: Error Identification */ -.form-control.is-invalid { - border-color: var(--bs-danger); - - &:focus { - border-color: var(--bs-danger); - box-shadow: 0 0 0 .25rem rgba(220, 53, 69, .25); - } -} - -.invalid-feedback { - &[role="alert"] { - font-weight: 600; - } -} - -/* Target Size - WCAG 2.5.8: Target Size (Minimum) */ -.touch-target { - min-width: 44px; - min-height: 44px; - - &.touch-target-small { - min-width: 24px; - min-height: 24px; - } -} - -/* Table Accessibility */ -.table-accessible { - th { - font-weight: 600; - background-color: var(--bs-secondary-bg); - - &[scope="col"] { - border-bottom: 2px solid var(--bs-border-color); - } - - &[scope="row"] { - border-right: 2px solid var(--bs-border-color); - } - } - - caption { - padding: .75rem; - font-weight: 600; - color: var(--bs-secondary); - text-align: left; - caption-side: top; - } -} - -/* Navigation Landmarks */ -nav[role="navigation"] { - &:not([aria-label]):not([aria-labelledby]) { - &::before { - position: absolute; - left: -10000px; - content: "Navigation"; - } - } -} - -/* Form Fieldset Styling */ -fieldset { - padding: 1rem; - margin-bottom: 1rem; - border: 1px solid var(--bs-border-color); - - legend { - padding: 0 .5rem; - margin-bottom: .5rem; - font-size: 1.1em; - font-weight: 600; - } -} - -/* Loading States */ -.loading[aria-busy="true"] { - position: relative; - pointer-events: none; - - &::after { - position: absolute; - top: 50%; - left: 50%; - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - content: ""; - border: 2px solid var(--bs-primary); - border-top-color: transparent; - animation: spin 1s linear infinite; - } - - @media (prefers-reduced-motion: reduce) { - &::after { - border-top-color: var(--bs-primary); - animation: none; - } - } -} - -@keyframes spin { - to { - transform: rotate(360deg); - } -} - -/* Dark Mode Accessibility */ -[data-bs-theme="dark"] { - .text-accessible-primary { - color: #6ea8fe; - } - - .text-accessible-success { - color: #75b798; - } - - .text-accessible-danger { - color: #f1aeb5; - } - - .text-accessible-warning { - color: #ffda6a; - } -} - -/* Print Accessibility */ -@media print { - .skip-link, - .btn, - .nav-link { - color: #000 !important; - background: transparent !important; - border: 1px solid #000 !important; - } - - a[href^="http"]::after { - font-size: .8em; - content: " (" attr(href) ")"; - } - - /* Print Layout Fix - Ensure sidebar and main content are both visible */ - .app-wrapper { - display: grid !important; - grid-template-rows: auto 1fr auto !important; - grid-template-columns: auto 1fr !important; - } - - .sidebar-overlay { - display: none !important; - } - - .app-sidebar { - position: static !important; - display: block !important; - min-width: 200px !important; - max-width: 200px !important; - max-height: none !important; - margin-left: 0 !important; - overflow: visible !important; - } - - .sidebar-wrapper { - height: auto !important; - overflow: visible !important; - } - - .app-header { - position: static !important; - } - - .app-main { - width: auto !important; - max-width: 100% !important; - overflow: visible !important; - } - - .app-content { - overflow: visible !important; - } - - .app-footer { - position: static !important; - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-content.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-content.scss deleted file mode 100644 index d9dfcb9b..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-content.scss +++ /dev/null @@ -1,3 +0,0 @@ -.app-content { - padding: $lte-content-padding-y $lte-content-padding-x; -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-footer.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-footer.scss deleted file mode 100644 index afa9e037..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-footer.scss +++ /dev/null @@ -1,32 +0,0 @@ -// -// Core: Main Footer -// - -.app-footer { - grid-area: #{$lte-prefix}app-footer; - width: inherit; - max-width: 100vw; - min-height: 3rem; - padding: $lte-app-footer-padding; - color: $lte-app-footer-color; - background-color: $lte-app-footer-bg; - border-top: $lte-app-footer-border-top; - @include transition($lte-transition-speed $lte-transition-fn); -} - -.fixed-footer { - .app-footer { - position: sticky; - bottom: 0; - z-index: $lte-zindex-fixed-footer; - } - - // When layout-fixed is used, app-main has overflow: auto which prevents - // position: sticky from working on the footer. Ensure the grid keeps the - // footer pinned at the bottom while app-main scrolls independently. - &.layout-fixed { - .app-main { - min-height: 0; - } - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-header.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-header.scss deleted file mode 100644 index 0d9aff9b..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-header.scss +++ /dev/null @@ -1,61 +0,0 @@ -// -// Core: Main Header -// - -.app-header { - z-index: $lte-zindex-app-header; - grid-area: #{$lte-prefix}app-header; - max-width: 100vw; - border-bottom: $lte-app-header-bottom-border; - @include transition($lte-transition-speed $lte-transition-fn); - - .nav-link { - position: relative; - height: $nav-link-height; - } -} - -// Navbar badge -.navbar-badge { - position: absolute; - top: 9px; - right: 5px; - padding: 2px 4px; - font-size: .6rem; - font-weight: 400; -} - -.fixed-header { - .app-header { - position: sticky; - top: 0; - z-index: $lte-zindex-fixed-header; - } - - // Fixes #6020: when only `fixed-header` is used (without `layout-fixed`), - // the sidebar — including its branding — used to scroll with the page - // because nothing made it sticky. Pin the sidebar so the brand and menu - // stay visible while the page content scrolls beneath the fixed header. - // Only applied on `sidebar-expand-*` breakpoints, since the mobile sidebar - // is an off-canvas overlay that handles its own positioning. - @each $breakpoint in map-keys($grid-breakpoints) { - $next: breakpoint-next($breakpoint, $grid-breakpoints); - $infix: breakpoint-infix($next, $grid-breakpoints); - - &.sidebar-expand#{$infix} { - @include media-breakpoint-up($next) { - .app-sidebar { - position: sticky; - top: 0; - max-height: 100vh; - - .sidebar-wrapper { - height: subtract(100vh, add($lte-app-header-height, 1px)); - overflow-x: hidden; - overflow-y: auto; - } - } - } - } - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-main.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-main.scss deleted file mode 100644 index 617cf045..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-main.scss +++ /dev/null @@ -1,41 +0,0 @@ -.app-main { - position: relative; - display: flex; - flex-direction: column; - grid-area: #{$lte-prefix}app-main; - max-width: 100vw; - padding-bottom: $lte-app-main-padding-bottom; - @include transition($lte-transition-speed $lte-transition-fn); - - .app-content-header { - padding: 1rem $lte-content-padding-x; - - .breadcrumb { - padding: 0; - margin-bottom: 0; - line-height: 2.5rem; - - a { - text-decoration: none; - } - } - } - - .app-content-top-area, - .app-content-bottom-area { - color: $lte-app-content-bottom-area-color; - background-color: $lte-app-content-bottom-area-bg; - } - - .app-content-top-area { - padding: $lte-app-content-top-area-padding-y $lte-app-content-top-area-padding-x; - border-bottom: $lte-app-content-top-area-top-border; - } - - .app-content-bottom-area { - padding: $lte-app-content-bottom-area-padding-y $lte-app-content-bottom-area-padding-x; - margin-top: auto; - margin-bottom: $lte-app-content-bottom-area-margin-bottom; - border-top: $lte-app-content-bottom-area-top-border; - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-sidebar.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-sidebar.scss deleted file mode 100644 index 5bf4ff05..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-sidebar.scss +++ /dev/null @@ -1,619 +0,0 @@ -.app-sidebar { - --#{$lte-prefix}sidebar-hover-bg: #{$lte-sidebar-hover-bg}; - --#{$lte-prefix}sidebar-color: #{$lte-sidebar-color}; - --#{$lte-prefix}sidebar-hover-color: #{$lte-sidebar-hover-color}; - --#{$lte-prefix}sidebar-active-color: #{$lte-sidebar-active-color}; - --#{$lte-prefix}sidebar-menu-active-bg: #{$lte-sidebar-menu-active-bg}; - --#{$lte-prefix}sidebar-menu-active-color: #{$lte-sidebar-menu-active-color}; - --#{$lte-prefix}sidebar-submenu-bg: #{$lte-sidebar-submenu-bg}; - --#{$lte-prefix}sidebar-submenu-color: #{$lte-sidebar-submenu-color}; - --#{$lte-prefix}sidebar-submenu-hover-color: #{$lte-sidebar-submenu-hover-color}; - --#{$lte-prefix}sidebar-submenu-hover-bg: #{$lte-sidebar-submenu-hover-bg}; - --#{$lte-prefix}sidebar-submenu-active-color: #{$lte-sidebar-submenu-active-color}; - --#{$lte-prefix}sidebar-submenu-active-bg: #{$lte-sidebar-submenu-active-bg}; - --#{$lte-prefix}sidebar-header-color: #{$lte-sidebar-header-color}; - - z-index: $lte-zindex-sidebar; - grid-area: #{$lte-prefix}app-sidebar; - min-width: var(--#{$lte-prefix}sidebar-width); - max-width: var(--#{$lte-prefix}sidebar-width); - @include transition($lte-sidebar-transition); -} - -.sidebar-brand { - display: flex; - align-items: center; - justify-content: center; - height: $lte-app-header-height; - padding: $lte-brand-link-padding-y $lte-brand-link-padding-x; - overflow: hidden; - font-size: $navbar-brand-font-size; - white-space: nowrap; - border-bottom: $lte-brand-link-border-buttom solid var(--#{$prefix}border-color); - @include transition(width $lte-transition-speed $lte-transition-fn); - - .brand-link { - display: flex; - align-items: center; - text-decoration: none; - - .brand-image { - float: left; - width: auto; - max-height: 33px; - line-height: .8; - } - - .brand-image-xs { - float: left; - width: auto; - max-height: 33px; - margin-top: -.1rem; - line-height: .8; - } - - .brand-image-xl { - width: auto; - max-height: 40px; - line-height: .8; - - &.single { - margin-top: -.3rem; - } - } - } - - .brand-text { - margin-left: .5rem; - color: rgba(var(--#{$prefix}emphasis-color-rgb), .8); - @include transition(flex $lte-transition-speed $lte-transition-fn, width $lte-transition-speed $lte-transition-fn); - &:hover { - color: var(--#{$prefix}emphasis-color); - } - } -} - -.sidebar-wrapper { - padding-top: $lte-sidebar-padding-y; - padding-right: $lte-sidebar-padding-x; - padding-bottom: $lte-sidebar-padding-y; - padding-left: $lte-sidebar-padding-x; - overscroll-behavior: contain; - @include scrollbar-color-gray(); - @include scrollbar-width-thin(); - - .nav-item { - max-width: 100%; - } - - .nav-link { - display: flex; - justify-content: flex-start; - - p { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - } - .nav-icon { - display: flex; - align-items: center; - justify-content: center; - min-width: 1.5rem; - max-width: 1.5rem; - } - - // Sidebar Menu. First level links - .sidebar-menu > .nav-item { - // links - > .nav-link { - color: var(--#{$lte-prefix}sidebar-color); - - &:hover, - &:focus { - color: var(--#{$lte-prefix}sidebar-hover-color); - background-color: var(--#{$lte-prefix}sidebar-hover-bg); - } - - &.active { - color: var(--#{$lte-prefix}sidebar-menu-active-color); - background-color: var(--#{$lte-prefix}sidebar-menu-active-bg); - } - } - - // Open state - &.menu-open > .nav-link { - color: var(--#{$lte-prefix}sidebar-hover-color); - background-color: var(--#{$lte-prefix}sidebar-hover-bg); - - &.active { - color: var(--#{$lte-prefix}sidebar-menu-active-color); - background-color: var(--#{$lte-prefix}sidebar-menu-active-bg); - } - } - - // First Level Submenu - > .nav-treeview { - background-color: var(--#{$lte-prefix}sidebar-submenu-bg); - } - } - - // Section Heading - .nav-header { - display: inline; - overflow: hidden; - color: var(--#{$lte-prefix}sidebar-header-color); - text-overflow: ellipsis; - background-color: inherit; - } - - // All links within the sidebar menu - a { - color: var(--#{$lte-prefix}sidebar-color); - } - - // All submenus - .nav-treeview { - > .nav-item { - > .nav-link { - color: var(--#{$lte-prefix}sidebar-submenu-color); - - &:hover, - &:focus { - color: var(--#{$lte-prefix}sidebar-submenu-hover-color); - background-color: var(--#{$lte-prefix}sidebar-submenu-hover-bg); - } - - &.active { - color: var(--#{$lte-prefix}sidebar-submenu-active-color); - background-color: var(--#{$lte-prefix}sidebar-submenu-active-bg); - } - } - } - } -} - -// Sidebar navigation menu -.sidebar-menu { - // All levels - .nav-item { - > .nav-link { - margin-bottom: .2rem; - - .nav-arrow { - @include transition(transform $lte-transition-fn $lte-transition-speed); - transform: translateY(-50%) #{"/*rtl:append:rotate(180deg)*/"}; - animation-name: fadeIn; - animation-duration: $lte-transition-speed; - animation-fill-mode: both; - } - } - } - - // All levels - .nav-link > .nav-badge, - .nav-link > p > .nav-badge { - position: absolute; - top: 50%; - right: 1rem; - transform: translateY(-50%); - } - - .nav-link > .nav-arrow, - .nav-link > p > .nav-arrow { - position: absolute; - top: 50%; - right: 1rem; - } - - .nav-link { - position: relative; - width: 100%; - @include transition(width $lte-transition-fn $lte-transition-speed); - @include border-radius($border-radius); - - p { - display: inline; - padding-left: .5rem; - margin: 0; - } - } - - .nav-header { - position: relative; - width: 100%; - padding: $nav-link-padding-y ($nav-link-padding-y * 1.5); - font-size: .9rem; - @include transition(width $lte-transition-fn $lte-transition-speed); - } - - // Tree view menu - .nav-treeview { - display: none; - padding: 0; - list-style: none; - } - - .menu-open { - > .nav-treeview { - display: block; - } - - > .nav-link { - .nav-arrow { - transform: translateY(-50%) rotate(90deg) #{"/*rtl:ignore*/"}; - } - } - } - - // Override: ensure badges/arrows are aligned to the end (right in LTR, left in RTL) - .nav-link > .nav-badge, - .nav-link > p > .nav-badge, - .nav-link > .nav-arrow, - .nav-link > p > .nav-arrow { - right: 1rem !important; // place at end in LTR - left: auto !important; - } -} - -.nav-indent { - .nav-treeview { - padding-left: $lte-sidebar-padding-x; - } -} - -.nav-compact.nav-indent { - .nav-treeview { - padding-left: 0; - - .nav-item { - padding-left: $lte-sidebar-padding-x; - } - } -} - -.sidebar-mini.sidebar-collapse.nav-indent { - .app-sidebar:hover { - .nav-treeview { - padding-left: 0; - - .nav-item { - padding-left: $lte-sidebar-padding-x; - } - } - } -} - -.sidebar-collapse { - &.nav-compact.nav-indent { - .nav-treeview { - .nav-item { - padding-left: 0; - } - } - } -} - -.nav-compact .nav-link { - @include border-radius(0); - margin-bottom: 0 !important; -} - -// A fix for text overflow while transitioning from sidebar mini to full sidebar -.sidebar-menu, -.sidebar-menu > .nav-header, -.sidebar-menu .nav-link { - white-space: nowrap; -} - -// Logo style -.logo-xs, -.logo-xl { - position: absolute; - visibility: visible; - opacity: 1; - - &.brand-image-xs { - top: 12px; - left: 18px; - } - - &.brand-image-xl { - top: 6px; - left: 12px; - } -} - -.logo-xs { - visibility: hidden; - opacity: 0; - - &.brand-image-xl { - top: 8px; - left: 16px; - } -} - -.brand-link { - &.logo-switch { - &::before { - content: "\00a0"; - } - } -} - -.sidebar-mini.sidebar-collapse { - .app-sidebar { - min-width: $lte-sidebar-mini-width; - max-width: $lte-sidebar-mini-width; - } - - // Make the sidebar headers - .sidebar-menu .nav-header { - display: none; - } - - .sidebar-menu { - .nav-link { - width: $lte-sidebar-mini-width - $lte-sidebar-padding-x * 2; - - p { - display: inline-block; - width: 0; - white-space: nowrap; - } - } - .nav-badge, - .nav-arrow { - display: none; - animation-name: fadeOut; - animation-duration: $lte-transition-speed; - animation-fill-mode: both; - } - } - - .brand-text { - display: inline-block; - max-width: 0; - overflow: hidden; - } - - .sidebar-menu .nav-link p, - .brand-text, - .logo-xl, - .nav-arrow { - visibility: hidden; - animation-name: fadeOut; - animation-duration: $lte-transition-speed; - animation-fill-mode: both; - } - - - .logo-xs { - display: inline-block; - visibility: visible; - animation-name: fadeIn; - animation-duration: $lte-transition-speed; - animation-fill-mode: both; - } - - &:not(.sidebar-without-hover) { - .app-sidebar:hover { - min-width: var(--#{$lte-prefix}sidebar-width); - max-width: var(--#{$lte-prefix}sidebar-width); - - .sidebar-menu .nav-header { - display: inline; - } - - .sidebar-menu .nav-link { - width: auto; - } - - .sidebar-menu .nav-link p, - .brand-text, - .logo-xl { - width: auto; - margin-left: 0; - visibility: visible; - animation-name: fadeIn; - animation-duration: $lte-transition-speed; - animation-fill-mode: both; - } - - .brand-text { - display: inline; - max-width: inherit; - margin-left: .5rem; - animation-name: fadeIn; - animation-duration: $lte-transition-speed; - animation-fill-mode: both; - } - - .nav-badge, - .nav-arrow { - display: inline-block; - visibility: visible; - animation-name: fadeIn; - animation-duration: $lte-transition-speed; - animation-fill-mode: both; - animation-delay: $lte-transition-speed; - } - - .nav-link p { - padding-left: .5rem; - } - - .logo-xs { - visibility: hidden; - animation-name: fadeOut; - animation-duration: $lte-transition-speed; - animation-fill-mode: both; - } - } - } -} - -.sidebar-collapse:not(.sidebar-mini) { - .app-sidebar { - margin-left: calc(var(--#{$lte-prefix}sidebar-width) * -1); // stylelint-disable-line function-disallowed-list - } -} - -.sidebar-expand { - @each $breakpoint in map-keys($grid-breakpoints) { - $next: breakpoint-next($breakpoint, $grid-breakpoints); - $infix: breakpoint-infix($next, $grid-breakpoints); - - /* stylelint-disable-next-line scss/selector-no-union-class-name */ - &#{$infix} { - @include media-breakpoint-up($next) { - &.layout-fixed { - .app-main-wrapper { - display: flex; - flex-direction: column; - min-height: 100vh; - } - .app-sidebar-wrapper { - position: relative; - } - .app-main { - flex: 1 1 auto; - overflow: auto; - } - .app-sidebar { - position: sticky; - top: 0; - bottom: 0; - max-height: 100vh; - - .sidebar-wrapper { - height: subtract(100vh, add($lte-app-header-height, 1px)); - overflow-x: hidden; - overflow-y: auto; - } - } - } - - &.sidebar-open { - .nav-link > .nav-badge, - .nav-link > p > .nav-badge { - animation-name: fadeIn; - animation-duration: $lte-transition-speed; - animation-fill-mode: both; - animation-delay: $lte-transition-speed; - } - .nav-link > .nav-arrow, - .nav-link > p > .nav-arrow { - animation-name: fadeIn; - animation-duration: $lte-transition-speed; - animation-fill-mode: both; - animation-delay: $lte-transition-speed; - } - } - } - - @include media-breakpoint-down($next) { - $max: breakpoint-max($next); - - &::before { - display: none; - content: "#{$max}"; - } - - .app-sidebar { - position: fixed; - top: 0; - bottom: 0; - max-height: 100vh; - margin-left: calc(var(--#{$lte-prefix}sidebar-width) * -1); // stylelint-disable-line function-disallowed-list - - .sidebar-wrapper { - height: subtract(100vh, add($lte-app-header-height, 1px)); - overflow-x: hidden; - overflow-y: auto; - } - } - - &.sidebar-open { - .app-sidebar { - margin-left: 0; - } - - .sidebar-overlay { - position: absolute; - inset: 0; - z-index: $lte-zindex-sidebar-overlay; - width: 100%; - height: 100%; - cursor: pointer; - visibility: visible; - background-color: rgba(0, 0, 0, .2); - animation-name: fadeIn; - animation-fill-mode: both; - } - } - } - } - } -} - -.sidebar-menu .nav-link p, -.app-sidebar .brand-text, -.app-sidebar .logo-xs, -.app-sidebar .logo-xl { - @include transition(margin-left $lte-transition-speed linear, opacity $lte-transition-speed ease, visibility $lte-transition-speed ease); -} - -// To prevent onload transition and animation -.app-loaded { - &.sidebar-mini.sidebar-collapse { - .sidebar-menu .nav-link p, - .brand-text { - animation-duration: $lte-transition-speed; - } - } -} -body:not(.app-loaded) { - .app-header, - .app-sidebar, - .app-main, - .app-footer { - @include transition(none !important); - animation-duration: 0s !important; - } -} -.hold-transition { - .app-header, - .app-sidebar, - .app-main, - .app-footer, - .nav-arrow, - .nav-badge { - @include transition(none !important); - animation-duration: 0s !important; - } -} - -@if $enable-dark-mode { - @include color-mode(dark) { - &.app-sidebar, - .app-sidebar { - --#{$lte-prefix}sidebar-hover-bg: #{$lte-sidebar-hover-bg-dark}; - --#{$lte-prefix}sidebar-color: #{$lte-sidebar-color-dark}; - --#{$lte-prefix}sidebar-hover-color: #{$lte-sidebar-hover-color-dark}; - --#{$lte-prefix}sidebar-active-color: #{$lte-sidebar-active-color-dark}; - --#{$lte-prefix}sidebar-menu-active-bg: #{$lte-sidebar-menu-active-bg-dark}; - --#{$lte-prefix}sidebar-menu-active-color: #{$lte-sidebar-menu-active-color-dark}; - --#{$lte-prefix}sidebar-submenu-bg: #{$lte-sidebar-submenu-bg-dark}; - --#{$lte-prefix}sidebar-submenu-color: #{$lte-sidebar-submenu-color-dark}; - --#{$lte-prefix}sidebar-submenu-hover-color: #{$lte-sidebar-submenu-hover-color-dark}; - --#{$lte-prefix}sidebar-submenu-hover-bg: #{$lte-sidebar-submenu-hover-bg-dark}; - --#{$lte-prefix}sidebar-submenu-active-color: #{$lte-sidebar-submenu-active-color-dark}; - --#{$lte-prefix}sidebar-submenu-active-bg: #{$lte-sidebar-submenu-active-bg-dark}; - --#{$lte-prefix}sidebar-header-color: #{$lte-sidebar-header-color-dark}; - } - } -} - diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-wrapper.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-wrapper.scss deleted file mode 100644 index 5ecc611d..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_app-wrapper.scss +++ /dev/null @@ -1,23 +0,0 @@ -// -// Core: Layout -// - -.app-wrapper { - position: relative; - display: grid; - grid-template-areas: - "#{$lte-prefix}app-sidebar #{$lte-prefix}app-header" - "#{$lte-prefix}app-sidebar #{$lte-prefix}app-main" - "#{$lte-prefix}app-sidebar #{$lte-prefix}app-footer"; - grid-template-rows: min-content 1fr min-content; - grid-template-columns: auto 1fr; - grid-gap: 0; - align-content: stretch; - align-items: stretch; - max-width: 100vw; - min-height: 100vh; - - > * { - min-width: 0; - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_bootstrap-variables.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_bootstrap-variables.scss deleted file mode 100644 index d4c851a9..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_bootstrap-variables.scss +++ /dev/null @@ -1,1766 +0,0 @@ -// AdminLTE Custom Variables Changes. -// Some of the variables are modified of Bootstrap Original Variables. -// You can find modified variables easily by searching keyword "// adminlte-modified" - -// Variables -// -// Variables should follow the `$component-state-property-size` formula for -// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs. - -// Color system - -// scss-docs-start gray-color-variables -$white: #fff !default; -$gray-100: #f8f9fa !default; -$gray-200: #e9ecef !default; -$gray-300: #dee2e6 !default; -$gray-400: #ced4da !default; -$gray-500: #adb5bd !default; -$gray-600: #6c757d !default; -$gray-700: #495057 !default; -$gray-800: #343a40 !default; -$gray-900: #212529 !default; -$black: #000 !default; -// scss-docs-end gray-color-variables - -// fusv-disable -// scss-docs-start gray-colors-map -$grays: ( - "100": $gray-100, - "200": $gray-200, - "300": $gray-300, - "400": $gray-400, - "500": $gray-500, - "600": $gray-600, - "700": $gray-700, - "800": $gray-800, - "900": $gray-900 -) !default; -// scss-docs-end gray-colors-map -// fusv-enable - -// scss-docs-start color-variables -$blue: #0d6efd !default; -$indigo: #6610f2 !default; -$purple: #6f42c1 !default; -$pink: #d63384 !default; -$red: #dc3545 !default; -$orange: #fd7e14 !default; -$yellow: #ffc107 !default; -$green: #198754 !default; -$teal: #20c997 !default; -$cyan: #0dcaf0 !default; -// scss-docs-end color-variables - -// scss-docs-start colors-map -$colors: ( - "blue": $blue, - "indigo": $indigo, - "purple": $purple, - "pink": $pink, - "red": $red, - "orange": $orange, - "yellow": $yellow, - "green": $green, - "teal": $teal, - "cyan": $cyan, - "black": $black, - "white": $white, - "gray": $gray-600, - "gray-dark": $gray-800 -) !default; -// scss-docs-end colors-map - -// The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.2 are 3, 4.5 and 7. -// See https://www.w3.org/TR/WCAG/#contrast-minimum -$min-contrast-ratio: 4.5 !default; - -// Customize the light and dark text colors for use in our color contrast function. -$color-contrast-dark: $black !default; -$color-contrast-light: $white !default; - -// fusv-disable -$blue-100: tint-color($blue, 80%) !default; -$blue-200: tint-color($blue, 60%) !default; -$blue-300: tint-color($blue, 40%) !default; -$blue-400: tint-color($blue, 20%) !default; -$blue-500: $blue !default; -$blue-600: shade-color($blue, 20%) !default; -$blue-700: shade-color($blue, 40%) !default; -$blue-800: shade-color($blue, 60%) !default; -$blue-900: shade-color($blue, 80%) !default; - -$indigo-100: tint-color($indigo, 80%) !default; -$indigo-200: tint-color($indigo, 60%) !default; -$indigo-300: tint-color($indigo, 40%) !default; -$indigo-400: tint-color($indigo, 20%) !default; -$indigo-500: $indigo !default; -$indigo-600: shade-color($indigo, 20%) !default; -$indigo-700: shade-color($indigo, 40%) !default; -$indigo-800: shade-color($indigo, 60%) !default; -$indigo-900: shade-color($indigo, 80%) !default; - -$purple-100: tint-color($purple, 80%) !default; -$purple-200: tint-color($purple, 60%) !default; -$purple-300: tint-color($purple, 40%) !default; -$purple-400: tint-color($purple, 20%) !default; -$purple-500: $purple !default; -$purple-600: shade-color($purple, 20%) !default; -$purple-700: shade-color($purple, 40%) !default; -$purple-800: shade-color($purple, 60%) !default; -$purple-900: shade-color($purple, 80%) !default; - -$pink-100: tint-color($pink, 80%) !default; -$pink-200: tint-color($pink, 60%) !default; -$pink-300: tint-color($pink, 40%) !default; -$pink-400: tint-color($pink, 20%) !default; -$pink-500: $pink !default; -$pink-600: shade-color($pink, 20%) !default; -$pink-700: shade-color($pink, 40%) !default; -$pink-800: shade-color($pink, 60%) !default; -$pink-900: shade-color($pink, 80%) !default; - -$red-100: tint-color($red, 80%) !default; -$red-200: tint-color($red, 60%) !default; -$red-300: tint-color($red, 40%) !default; -$red-400: tint-color($red, 20%) !default; -$red-500: $red !default; -$red-600: shade-color($red, 20%) !default; -$red-700: shade-color($red, 40%) !default; -$red-800: shade-color($red, 60%) !default; -$red-900: shade-color($red, 80%) !default; - -$orange-100: tint-color($orange, 80%) !default; -$orange-200: tint-color($orange, 60%) !default; -$orange-300: tint-color($orange, 40%) !default; -$orange-400: tint-color($orange, 20%) !default; -$orange-500: $orange !default; -$orange-600: shade-color($orange, 20%) !default; -$orange-700: shade-color($orange, 40%) !default; -$orange-800: shade-color($orange, 60%) !default; -$orange-900: shade-color($orange, 80%) !default; - -$yellow-100: tint-color($yellow, 80%) !default; -$yellow-200: tint-color($yellow, 60%) !default; -$yellow-300: tint-color($yellow, 40%) !default; -$yellow-400: tint-color($yellow, 20%) !default; -$yellow-500: $yellow !default; -$yellow-600: shade-color($yellow, 20%) !default; -$yellow-700: shade-color($yellow, 40%) !default; -$yellow-800: shade-color($yellow, 60%) !default; -$yellow-900: shade-color($yellow, 80%) !default; - -$green-100: tint-color($green, 80%) !default; -$green-200: tint-color($green, 60%) !default; -$green-300: tint-color($green, 40%) !default; -$green-400: tint-color($green, 20%) !default; -$green-500: $green !default; -$green-600: shade-color($green, 20%) !default; -$green-700: shade-color($green, 40%) !default; -$green-800: shade-color($green, 60%) !default; -$green-900: shade-color($green, 80%) !default; - -$teal-100: tint-color($teal, 80%) !default; -$teal-200: tint-color($teal, 60%) !default; -$teal-300: tint-color($teal, 40%) !default; -$teal-400: tint-color($teal, 20%) !default; -$teal-500: $teal !default; -$teal-600: shade-color($teal, 20%) !default; -$teal-700: shade-color($teal, 40%) !default; -$teal-800: shade-color($teal, 60%) !default; -$teal-900: shade-color($teal, 80%) !default; - -$cyan-100: tint-color($cyan, 80%) !default; -$cyan-200: tint-color($cyan, 60%) !default; -$cyan-300: tint-color($cyan, 40%) !default; -$cyan-400: tint-color($cyan, 20%) !default; -$cyan-500: $cyan !default; -$cyan-600: shade-color($cyan, 20%) !default; -$cyan-700: shade-color($cyan, 40%) !default; -$cyan-800: shade-color($cyan, 60%) !default; -$cyan-900: shade-color($cyan, 80%) !default; - -$blues: ( - "blue-100": $blue-100, - "blue-200": $blue-200, - "blue-300": $blue-300, - "blue-400": $blue-400, - "blue-500": $blue-500, - "blue-600": $blue-600, - "blue-700": $blue-700, - "blue-800": $blue-800, - "blue-900": $blue-900 -) !default; - -$indigos: ( - "indigo-100": $indigo-100, - "indigo-200": $indigo-200, - "indigo-300": $indigo-300, - "indigo-400": $indigo-400, - "indigo-500": $indigo-500, - "indigo-600": $indigo-600, - "indigo-700": $indigo-700, - "indigo-800": $indigo-800, - "indigo-900": $indigo-900 -) !default; - -$purples: ( - "purple-100": $purple-100, - "purple-200": $purple-200, - "purple-300": $purple-300, - "purple-400": $purple-400, - "purple-500": $purple-500, - "purple-600": $purple-600, - "purple-700": $purple-700, - "purple-800": $purple-800, - "purple-900": $purple-900 -) !default; - -$pinks: ( - "pink-100": $pink-100, - "pink-200": $pink-200, - "pink-300": $pink-300, - "pink-400": $pink-400, - "pink-500": $pink-500, - "pink-600": $pink-600, - "pink-700": $pink-700, - "pink-800": $pink-800, - "pink-900": $pink-900 -) !default; - -$reds: ( - "red-100": $red-100, - "red-200": $red-200, - "red-300": $red-300, - "red-400": $red-400, - "red-500": $red-500, - "red-600": $red-600, - "red-700": $red-700, - "red-800": $red-800, - "red-900": $red-900 -) !default; - -$oranges: ( - "orange-100": $orange-100, - "orange-200": $orange-200, - "orange-300": $orange-300, - "orange-400": $orange-400, - "orange-500": $orange-500, - "orange-600": $orange-600, - "orange-700": $orange-700, - "orange-800": $orange-800, - "orange-900": $orange-900 -) !default; - -$yellows: ( - "yellow-100": $yellow-100, - "yellow-200": $yellow-200, - "yellow-300": $yellow-300, - "yellow-400": $yellow-400, - "yellow-500": $yellow-500, - "yellow-600": $yellow-600, - "yellow-700": $yellow-700, - "yellow-800": $yellow-800, - "yellow-900": $yellow-900 -) !default; - -$greens: ( - "green-100": $green-100, - "green-200": $green-200, - "green-300": $green-300, - "green-400": $green-400, - "green-500": $green-500, - "green-600": $green-600, - "green-700": $green-700, - "green-800": $green-800, - "green-900": $green-900 -) !default; - -$teals: ( - "teal-100": $teal-100, - "teal-200": $teal-200, - "teal-300": $teal-300, - "teal-400": $teal-400, - "teal-500": $teal-500, - "teal-600": $teal-600, - "teal-700": $teal-700, - "teal-800": $teal-800, - "teal-900": $teal-900 -) !default; - -$cyans: ( - "cyan-100": $cyan-100, - "cyan-200": $cyan-200, - "cyan-300": $cyan-300, - "cyan-400": $cyan-400, - "cyan-500": $cyan-500, - "cyan-600": $cyan-600, - "cyan-700": $cyan-700, - "cyan-800": $cyan-800, - "cyan-900": $cyan-900 -) !default; -// fusv-enable - -// scss-docs-start theme-color-variables -$primary: $blue !default; -$secondary: $gray-600 !default; -$success: $green !default; -$info: $cyan !default; -$warning: $yellow !default; -$danger: $red !default; -$light: $gray-100 !default; -$dark: $gray-900 !default; -// scss-docs-end theme-color-variables - -// scss-docs-start theme-colors-map -$theme-colors: ( - "primary": $primary, - "secondary": $secondary, - "success": $success, - "info": $info, - "warning": $warning, - "danger": $danger, - "light": $light, - "dark": $dark -) !default; -// scss-docs-end theme-colors-map - -// scss-docs-start theme-text-variables -$primary-text-emphasis: shade-color($primary, 60%) !default; -$secondary-text-emphasis: shade-color($secondary, 60%) !default; -$success-text-emphasis: shade-color($success, 60%) !default; -$info-text-emphasis: shade-color($info, 60%) !default; -$warning-text-emphasis: shade-color($warning, 60%) !default; -$danger-text-emphasis: shade-color($danger, 60%) !default; -$light-text-emphasis: $gray-700 !default; -$dark-text-emphasis: $gray-700 !default; -// scss-docs-end theme-text-variables - -// scss-docs-start theme-bg-subtle-variables -$primary-bg-subtle: tint-color($primary, 80%) !default; -$secondary-bg-subtle: tint-color($secondary, 80%) !default; -$success-bg-subtle: tint-color($success, 80%) !default; -$info-bg-subtle: tint-color($info, 80%) !default; -$warning-bg-subtle: tint-color($warning, 80%) !default; -$danger-bg-subtle: tint-color($danger, 80%) !default; -$light-bg-subtle: mix($gray-100, $white) !default; -$dark-bg-subtle: $gray-400 !default; -// scss-docs-end theme-bg-subtle-variables - -// scss-docs-start theme-border-subtle-variables -$primary-border-subtle: tint-color($primary, 60%) !default; -$secondary-border-subtle: tint-color($secondary, 60%) !default; -$success-border-subtle: tint-color($success, 60%) !default; -$info-border-subtle: tint-color($info, 60%) !default; -$warning-border-subtle: tint-color($warning, 60%) !default; -$danger-border-subtle: tint-color($danger, 60%) !default; -$light-border-subtle: $gray-200 !default; -$dark-border-subtle: $gray-500 !default; -// scss-docs-end theme-border-subtle-variables - -// Characters which are escaped by the escape-svg function -$escaped-characters: ( - ("<", "%3c"), - (">", "%3e"), - ("#", "%23"), - ("(", "%28"), - (")", "%29"), -) !default; - -// Options -// -// Quickly modify global styling by enabling or disabling optional features. - -$enable-caret: true !default; -$enable-rounded: true !default; -$enable-shadows: true !default; // adminlte-modified -$enable-gradients: false !default; -$enable-transitions: true !default; -$enable-reduced-motion: true !default; -$enable-smooth-scroll: true !default; -$enable-grid-classes: true !default; -$enable-container-classes: true !default; -$enable-cssgrid: false !default; -$enable-button-pointers: true !default; -$enable-rfs: true !default; -$enable-validation-icons: true !default; -$enable-negative-margins: true !default; // adminlte-modified -$enable-deprecation-messages: true !default; -$enable-important-utilities: true !default; - -$enable-dark-mode: true !default; -$color-mode-type: data !default; // `data` or `media-query` - -// Prefix for :root CSS variables - -$variable-prefix: bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix` -$prefix: $variable-prefix !default; - -// Gradient -// -// The gradient which is added to components if `$enable-gradients` is `true` -// This gradient is also added to elements with `.bg-gradient` -// scss-docs-start variable-gradient -$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default; -// scss-docs-end variable-gradient - -// Spacing -// -// Control the default styling of most Bootstrap elements by modifying these -// variables. Mostly focused on spacing. -// You can add more entries to the $spacers map, should you need more variation. - -// scss-docs-start spacer-variables-maps -$spacer: 1rem !default; -$spacers: ( - 0: 0, - 1: $spacer * .25, - 2: $spacer * .5, - 3: $spacer, - 4: $spacer * 1.5, - 5: $spacer * 3, -) !default; -// scss-docs-end spacer-variables-maps - -// Position -// -// Define the edge positioning anchors of the position utilities. - -// scss-docs-start position-map -$position-values: ( - 0: 0, - 50: 50%, - 100: 100% -) !default; -// scss-docs-end position-map - -// Body -// -// Settings for the `` element. - -$body-text-align: null !default; -$body-color: $gray-900 !default; -$body-bg: $white !default; - -$body-secondary-color: rgba($body-color, .75) !default; -$body-secondary-bg: $gray-200 !default; - -$body-tertiary-color: rgba($body-color, .5) !default; -$body-tertiary-bg: $gray-100 !default; - -$body-emphasis-color: $black !default; - -// Links -// -// Style anchor elements. - -$link-color: $primary !default; -$link-decoration: underline !default; -$link-shade-percentage: 20% !default; -$link-hover-color: shift-color($link-color, $link-shade-percentage) !default; -$link-hover-decoration: null !default; - -$stretched-link-pseudo-element: after !default; -$stretched-link-z-index: 1 !default; - -// Icon links -// scss-docs-start icon-link-variables -$icon-link-gap: .375rem !default; -$icon-link-underline-offset: .25em !default; -$icon-link-icon-size: 1em !default; -$icon-link-icon-transition: .2s ease-in-out transform !default; -$icon-link-icon-transform: translate3d(.25em, 0, 0) !default; -// scss-docs-end icon-link-variables - -// Paragraphs -// -// Style p element. - -$paragraph-margin-bottom: 1rem !default; - - -// Grid breakpoints -// -// Define the minimum dimensions at which your layout will change, -// adapting to different screen sizes, for use in media queries. - -// scss-docs-start grid-breakpoints -$grid-breakpoints: ( - xs: 0, - sm: 576px, - md: 768px, - lg: 992px, - xl: 1200px, - xxl: 1400px -) !default; -// scss-docs-end grid-breakpoints - -@include _assert-ascending($grid-breakpoints, "$grid-breakpoints"); -@include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints"); - - -// Grid containers -// -// Define the maximum width of `.container` for different screen sizes. - -// scss-docs-start container-max-widths -$container-max-widths: ( - sm: 540px, - md: 720px, - lg: 960px, - xl: 1140px, - xxl: 1320px -) !default; -// scss-docs-end container-max-widths - -@include _assert-ascending($container-max-widths, "$container-max-widths"); - - -// Grid columns -// -// Set the number of columns and specify the width of the gutters. - -$grid-columns: 12 !default; -$grid-gutter-width: 1.5rem !default; -$grid-row-columns: 6 !default; - -// Container padding - -$container-padding-x: $grid-gutter-width !default; - - -// Components -// -// Define common padding and border radius sizes and more. - -// scss-docs-start border-variables -$border-width: 1px !default; -$border-widths: ( - 1: 1px, - 2: 2px, - 3: 3px, - 4: 4px, - 5: 5px -) !default; -$border-style: solid !default; -$border-color: $gray-300 !default; -$border-color-translucent: rgba($black, .175) !default; -// scss-docs-end border-variables - -// scss-docs-start border-radius-variables -$border-radius: .375rem !default; -$border-radius-sm: .25rem !default; -$border-radius-lg: .5rem !default; -$border-radius-xl: 1rem !default; -$border-radius-xxl: 2rem !default; -$border-radius-pill: 50rem !default; -// scss-docs-end border-radius-variables -// fusv-disable -$border-radius-2xl: $border-radius-xxl !default; // Deprecated in v5.3.0 -// fusv-enable - -// scss-docs-start box-shadow-variables -$box-shadow: 0 .5rem 1rem rgba($black, .15) !default; -$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default; -$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default; -$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default; -// scss-docs-end box-shadow-variables - -$component-active-color: $white !default; -$component-active-bg: $primary !default; - -// scss-docs-start focus-ring-variables -$focus-ring-width: .25rem !default; -$focus-ring-opacity: .25 !default; -$focus-ring-color: rgba($primary, $focus-ring-opacity) !default; -$focus-ring-blur: 0 !default; -$focus-ring-box-shadow: 0 0 $focus-ring-blur $focus-ring-width $focus-ring-color !default; -// scss-docs-end focus-ring-variables - -// scss-docs-start caret-variables -$caret-width: .3em !default; -$caret-vertical-align: $caret-width * .85 !default; -$caret-spacing: $caret-width * .85 !default; -// scss-docs-end caret-variables - -$transition-base: all .2s ease-in-out !default; -$transition-fade: opacity .15s linear !default; -// scss-docs-start collapse-transition -$transition-collapse: height .35s ease !default; -$transition-collapse-width: width .35s ease !default; -// scss-docs-end collapse-transition - -// stylelint-disable function-disallowed-list -// scss-docs-start aspect-ratios -$aspect-ratios: ( - "1x1": 100%, - "4x3": calc(3 / 4 * 100%), - "16x9": calc(9 / 16 * 100%), - "21x9": calc(9 / 21 * 100%) -) !default; -// scss-docs-end aspect-ratios -// stylelint-enable function-disallowed-list - -// Typography -// -// Font, line-height, and color for body text, headings, and more. - -// scss-docs-start font-variables -// stylelint-disable value-keyword-case -$font-family-sans-serif: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default; // adminlte-modified -$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default; -// stylelint-enable value-keyword-case -$font-family-base: var(--#{$prefix}font-sans-serif) !default; -$font-family-code: var(--#{$prefix}font-monospace) !default; - -// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins -// $font-size-base affects the font size of the body text -$font-size-root: null !default; -$font-size-base: 1rem !default; // Assumes the browser default, typically `16px` -$font-size-sm: $font-size-base * .875 !default; -$font-size-lg: $font-size-base * 1.25 !default; -$font-size-xs: $font-size-base * .75 !default; // adminlte-modified -$font-size-xl: $font-size-base * 2 !default; // adminlte-modified - -$font-weight-lighter: lighter !default; -$font-weight-light: 300 !default; -$font-weight-normal: 400 !default; -$font-weight-medium: 500 !default; -$font-weight-semibold: 600 !default; -$font-weight-bold: 700 !default; -$font-weight-bolder: bolder !default; - -$font-weight-base: $font-weight-normal !default; - -$line-height-base: 1.5 !default; -$line-height-sm: 1.25 !default; -$line-height-lg: 2 !default; - -$h1-font-size: $font-size-base * 2.5 !default; -$h2-font-size: $font-size-base * 2 !default; -$h3-font-size: $font-size-base * 1.75 !default; -$h4-font-size: $font-size-base * 1.5 !default; -$h5-font-size: $font-size-base * 1.25 !default; -$h6-font-size: $font-size-base !default; -$h7-font-size: $font-size-sm !default; // adminlte-modified -$h8-font-size: $font-size-xs !default; // adminlte-modified -// scss-docs-end font-variables - -// scss-docs-start font-sizes -$font-sizes: ( - 1: $h1-font-size, - 2: $h2-font-size, - 3: $h3-font-size, - 4: $h4-font-size, - 5: $h5-font-size, - 6: $h6-font-size, - 7: $h7-font-size, // adminlte-modified - 8: $h8-font-size // adminlte-modified -) !default; -// scss-docs-end font-sizes - -// scss-docs-start headings-variables -$headings-margin-bottom: $spacer * .5 !default; -$headings-font-family: null !default; -$headings-font-style: null !default; -$headings-font-weight: 500 !default; -$headings-line-height: 1.2 !default; -$headings-color: inherit !default; -// scss-docs-end headings-variables - -// scss-docs-start display-headings -$display-font-sizes: ( - 1: 5rem, - 2: 4.5rem, - 3: 4rem, - 4: 3.5rem, - 5: 3rem, - 6: 2.5rem -) !default; - -$display-font-family: null !default; -$display-font-style: null !default; -$display-font-weight: 300 !default; -$display-line-height: $headings-line-height !default; -// scss-docs-end display-headings - -// scss-docs-start type-variables -$lead-font-size: $font-size-base * 1.25 !default; -$lead-font-weight: 300 !default; - -$small-font-size: .875em !default; - -$sub-sup-font-size: .75em !default; - -// fusv-disable -$text-muted: var(--#{$prefix}secondary-color) !default; // Deprecated in 5.3.0 -// fusv-enable - -$initialism-font-size: $small-font-size !default; - -$blockquote-margin-y: $spacer !default; -$blockquote-font-size: $font-size-base * 1.25 !default; -$blockquote-footer-color: $gray-600 !default; -$blockquote-footer-font-size: $small-font-size !default; - -$hr-margin-y: $spacer !default; -$hr-color: inherit !default; - -// fusv-disable -$hr-bg-color: null !default; // Deprecated in v5.2.0 -$hr-height: null !default; // Deprecated in v5.2.0 -// fusv-enable - -$hr-border-color: null !default; // Allows for inherited colors -$hr-border-width: var(--#{$prefix}border-width) !default; -$hr-opacity: .25 !default; - -// scss-docs-start vr-variables -$vr-border-width: var(--#{$prefix}border-width) !default; -// scss-docs-end vr-variables - -$legend-margin-bottom: .5rem !default; -$legend-font-size: 1.5rem !default; -$legend-font-weight: null !default; - -$dt-font-weight: $font-weight-bold !default; - -$list-inline-padding: .5rem !default; - -$mark-padding: .1875em !default; -$mark-color: $body-color !default; -$mark-bg: $yellow-100 !default; -// scss-docs-end type-variables - - -// Tables -// -// Customizes the `.table` component with basic values, each used across all table variations. - -// scss-docs-start table-variables -$table-cell-padding-y: .5rem !default; -$table-cell-padding-x: .5rem !default; -$table-cell-padding-y-sm: .25rem !default; -$table-cell-padding-x-sm: .25rem !default; - -$table-cell-vertical-align: top !default; - -$table-color: var(--#{$prefix}emphasis-color) !default; -$table-bg: var(--#{$prefix}body-bg) !default; -$table-accent-bg: transparent !default; - -$table-th-font-weight: null !default; - -$table-striped-color: $table-color !default; -$table-striped-bg-factor: .05 !default; -$table-striped-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-striped-bg-factor) !default; - -$table-active-color: $table-color !default; -$table-active-bg-factor: .1 !default; -$table-active-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-active-bg-factor) !default; - -$table-hover-color: $table-color !default; -$table-hover-bg-factor: .075 !default; -$table-hover-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-hover-bg-factor) !default; - -$table-border-factor: .2 !default; -$table-border-width: var(--#{$prefix}border-width) !default; -$table-border-color: var(--#{$prefix}border-color) !default; - -$table-striped-order: odd !default; -$table-striped-columns-order: even !default; - -$table-group-separator-color: currentcolor !default; - -$table-caption-color: var(--#{$prefix}secondary-color) !default; - -$table-bg-scale: -80% !default; -// scss-docs-end table-variables - -// scss-docs-start table-loop -$table-variants: ( - "primary": shift-color($primary, $table-bg-scale), - "secondary": shift-color($secondary, $table-bg-scale), - "success": shift-color($success, $table-bg-scale), - "info": shift-color($info, $table-bg-scale), - "warning": shift-color($warning, $table-bg-scale), - "danger": shift-color($danger, $table-bg-scale), - "light": $light, - "dark": $dark, -) !default; -// scss-docs-end table-loop - - -// Buttons + Forms -// -// Shared variables that are reassigned to `$input-` and `$btn-` specific variables. - -// scss-docs-start input-btn-variables -$input-btn-padding-y: .375rem !default; -$input-btn-padding-x: .75rem !default; -$input-btn-font-family: null !default; -$input-btn-font-size: $font-size-base !default; -$input-btn-line-height: $line-height-base !default; - -$input-btn-focus-width: $focus-ring-width !default; -$input-btn-focus-color-opacity: $focus-ring-opacity !default; -$input-btn-focus-color: $focus-ring-color !default; -$input-btn-focus-blur: $focus-ring-blur !default; -$input-btn-focus-box-shadow: $focus-ring-box-shadow !default; - -$input-btn-padding-y-sm: .25rem !default; -$input-btn-padding-x-sm: .5rem !default; -$input-btn-font-size-sm: $font-size-sm !default; - -$input-btn-padding-y-lg: .5rem !default; -$input-btn-padding-x-lg: 1rem !default; -$input-btn-font-size-lg: $font-size-lg !default; - -$input-btn-border-width: var(--#{$prefix}border-width) !default; -// scss-docs-end input-btn-variables - - -// Buttons -// -// For each of Bootstrap's buttons, define text, background, and border color. - -// scss-docs-start btn-variables -$btn-color: var(--#{$prefix}body-color) !default; -$btn-padding-y: $input-btn-padding-y !default; -$btn-padding-x: $input-btn-padding-x !default; -$btn-font-family: $input-btn-font-family !default; -$btn-font-size: $input-btn-font-size !default; -$btn-line-height: $input-btn-line-height !default; -$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping - -$btn-padding-y-sm: $input-btn-padding-y-sm !default; -$btn-padding-x-sm: $input-btn-padding-x-sm !default; -$btn-font-size-sm: $input-btn-font-size-sm !default; - -$btn-padding-y-lg: $input-btn-padding-y-lg !default; -$btn-padding-x-lg: $input-btn-padding-x-lg !default; -$btn-font-size-lg: $input-btn-font-size-lg !default; - -$btn-border-width: $input-btn-border-width !default; - -$btn-font-weight: $font-weight-normal !default; -$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default; -$btn-focus-width: $input-btn-focus-width !default; -$btn-focus-box-shadow: $input-btn-focus-box-shadow !default; -$btn-disabled-opacity: .65 !default; -$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default; - -$btn-link-color: var(--#{$prefix}link-color) !default; -$btn-link-hover-color: var(--#{$prefix}link-hover-color) !default; -$btn-link-disabled-color: $gray-600 !default; -$btn-link-focus-shadow-rgb: to-rgb(mix(color-contrast($link-color), $link-color, 15%)) !default; - -// Allows for customizing button radius independently from global border radius -$btn-border-radius: var(--#{$prefix}border-radius) !default; -$btn-border-radius-sm: var(--#{$prefix}border-radius-sm) !default; -$btn-border-radius-lg: var(--#{$prefix}border-radius-lg) !default; - -$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; - -$btn-hover-bg-shade-amount: 15% !default; -$btn-hover-bg-tint-amount: 15% !default; -$btn-hover-border-shade-amount: 20% !default; -$btn-hover-border-tint-amount: 10% !default; -$btn-active-bg-shade-amount: 20% !default; -$btn-active-bg-tint-amount: 20% !default; -$btn-active-border-shade-amount: 25% !default; -$btn-active-border-tint-amount: 10% !default; -// scss-docs-end btn-variables - - -// Forms - -// scss-docs-start form-text-variables -$form-text-margin-top: .25rem !default; -$form-text-font-size: $small-font-size !default; -$form-text-font-style: null !default; -$form-text-font-weight: null !default; -$form-text-color: var(--#{$prefix}secondary-color) !default; -// scss-docs-end form-text-variables - -// scss-docs-start form-label-variables -$form-label-margin-bottom: .5rem !default; -$form-label-font-size: null !default; -$form-label-font-style: null !default; -$form-label-font-weight: null !default; -$form-label-color: null !default; -// scss-docs-end form-label-variables - -// scss-docs-start form-input-variables -$input-padding-y: $input-btn-padding-y !default; -$input-padding-x: $input-btn-padding-x !default; -$input-font-family: $input-btn-font-family !default; -$input-font-size: $input-btn-font-size !default; -$input-font-weight: $font-weight-base !default; -$input-line-height: $input-btn-line-height !default; - -$input-padding-y-sm: $input-btn-padding-y-sm !default; -$input-padding-x-sm: $input-btn-padding-x-sm !default; -$input-font-size-sm: $input-btn-font-size-sm !default; - -$input-padding-y-lg: $input-btn-padding-y-lg !default; -$input-padding-x-lg: $input-btn-padding-x-lg !default; -$input-font-size-lg: $input-btn-font-size-lg !default; - -$input-bg: var(--#{$prefix}body-bg) !default; -$input-disabled-color: null !default; -$input-disabled-bg: var(--#{$prefix}secondary-bg) !default; -$input-disabled-border-color: null !default; - -$input-color: var(--#{$prefix}body-color) !default; -$input-border-color: var(--#{$prefix}border-color) !default; -$input-border-width: $input-btn-border-width !default; -$input-box-shadow: var(--#{$prefix}box-shadow-inset) !default; - -$input-border-radius: var(--#{$prefix}border-radius) !default; -$input-border-radius-sm: var(--#{$prefix}border-radius-sm) !default; -$input-border-radius-lg: var(--#{$prefix}border-radius-lg) !default; - -$input-focus-bg: $input-bg !default; -$input-focus-border-color: tint-color($component-active-bg, 50%) !default; -$input-focus-color: $input-color !default; -$input-focus-width: $input-btn-focus-width !default; -$input-focus-box-shadow: $input-btn-focus-box-shadow !default; - -$input-placeholder-color: var(--#{$prefix}secondary-color) !default; -$input-plaintext-color: var(--#{$prefix}body-color) !default; - -$input-height-border: calc(#{$input-border-width} * 2) !default; // stylelint-disable-line function-disallowed-list - -$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default; -$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default; -$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default; - -$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default; -$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default; -$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default; - -$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; - -$form-color-width: 3rem !default; -// scss-docs-end form-input-variables - -// scss-docs-start form-check-variables -$form-check-input-width: 1em !default; -$form-check-min-height: $font-size-base * $line-height-base !default; -$form-check-padding-start: $form-check-input-width + .5em !default; -$form-check-margin-bottom: .125rem !default; -$form-check-label-color: null !default; -$form-check-label-cursor: null !default; -$form-check-transition: null !default; - -$form-check-input-active-filter: brightness(90%) !default; - -$form-check-input-bg: $input-bg !default; -$form-check-input-border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color) !default; -$form-check-input-border-radius: .25em !default; -$form-check-radio-border-radius: 50% !default; -$form-check-input-focus-border: $input-focus-border-color !default; -$form-check-input-focus-box-shadow: $focus-ring-box-shadow !default; - -$form-check-input-checked-color: $component-active-color !default; -$form-check-input-checked-bg-color: $component-active-bg !default; -$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default; -$form-check-input-checked-bg-image: url("data:image/svg+xml,") !default; -$form-check-radio-checked-bg-image: url("data:image/svg+xml,") !default; - -$form-check-input-indeterminate-color: $component-active-color !default; -$form-check-input-indeterminate-bg-color: $component-active-bg !default; -$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default; -$form-check-input-indeterminate-bg-image: url("data:image/svg+xml,") !default; - -$form-check-input-disabled-opacity: .5 !default; -$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default; -$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default; - -$form-check-inline-margin-end: 1rem !default; -// scss-docs-end form-check-variables - -// scss-docs-start form-switch-variables -$form-switch-color: rgba($black, .25) !default; -$form-switch-width: 2em !default; -$form-switch-padding-start: $form-switch-width + .5em !default; -$form-switch-bg-image: url("data:image/svg+xml,") !default; -$form-switch-border-radius: $form-switch-width !default; -$form-switch-transition: background-position .15s ease-in-out !default; - -$form-switch-focus-color: $input-focus-border-color !default; -$form-switch-focus-bg-image: url("data:image/svg+xml,") !default; - -$form-switch-checked-color: $component-active-color !default; -$form-switch-checked-bg-image: url("data:image/svg+xml,") !default; -$form-switch-checked-bg-position: right center !default; -// scss-docs-end form-switch-variables - -// scss-docs-start input-group-variables -$input-group-addon-padding-y: $input-padding-y !default; -$input-group-addon-padding-x: $input-padding-x !default; -$input-group-addon-font-weight: $input-font-weight !default; -$input-group-addon-color: $input-color !default; -$input-group-addon-bg: var(--#{$prefix}tertiary-bg) !default; -$input-group-addon-border-color: $input-border-color !default; -// scss-docs-end input-group-variables - -// scss-docs-start form-select-variables -$form-select-padding-y: $input-padding-y !default; -$form-select-padding-x: $input-padding-x !default; -$form-select-font-family: $input-font-family !default; -$form-select-font-size: $input-font-size !default; -$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image -$form-select-font-weight: $input-font-weight !default; -$form-select-line-height: $input-line-height !default; -$form-select-color: $input-color !default; -$form-select-bg: $input-bg !default; -$form-select-disabled-color: null !default; -$form-select-disabled-bg: $input-disabled-bg !default; -$form-select-disabled-border-color: $input-disabled-border-color !default; -$form-select-bg-position: right $form-select-padding-x center !default; -$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions -$form-select-indicator-color: $gray-800 !default; -$form-select-indicator: url("data:image/svg+xml,") !default; - -$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default; -$form-select-feedback-icon-position: center right $form-select-indicator-padding !default; -$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default; - -$form-select-border-width: $input-border-width !default; -$form-select-border-color: $input-border-color !default; -$form-select-border-radius: $input-border-radius !default; -$form-select-box-shadow: var(--#{$prefix}box-shadow-inset) !default; - -$form-select-focus-border-color: $input-focus-border-color !default; -$form-select-focus-width: $input-focus-width !default; -$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default; - -$form-select-padding-y-sm: $input-padding-y-sm !default; -$form-select-padding-x-sm: $input-padding-x-sm !default; -$form-select-font-size-sm: $input-font-size-sm !default; -$form-select-border-radius-sm: $input-border-radius-sm !default; - -$form-select-padding-y-lg: $input-padding-y-lg !default; -$form-select-padding-x-lg: $input-padding-x-lg !default; -$form-select-font-size-lg: $input-font-size-lg !default; -$form-select-border-radius-lg: $input-border-radius-lg !default; - -$form-select-transition: $input-transition !default; -// scss-docs-end form-select-variables - -// scss-docs-start form-range-variables -$form-range-track-width: 100% !default; -$form-range-track-height: .5rem !default; -$form-range-track-cursor: pointer !default; -$form-range-track-bg: var(--#{$prefix}secondary-bg) !default; -$form-range-track-border-radius: 1rem !default; -$form-range-track-box-shadow: var(--#{$prefix}box-shadow-inset) !default; - -$form-range-thumb-width: 1rem !default; -$form-range-thumb-height: $form-range-thumb-width !default; -$form-range-thumb-bg: $component-active-bg !default; -$form-range-thumb-border: 0 !default; -$form-range-thumb-border-radius: 1rem !default; -$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default; -$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default; -$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge -$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default; -$form-range-thumb-disabled-bg: var(--#{$prefix}secondary-color) !default; -$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; -// scss-docs-end form-range-variables - -// scss-docs-start form-file-variables -$form-file-button-color: $input-color !default; -$form-file-button-bg: var(--#{$prefix}tertiary-bg) !default; -$form-file-button-hover-bg: var(--#{$prefix}secondary-bg) !default; -// scss-docs-end form-file-variables - -// scss-docs-start form-floating-variables -$form-floating-height: add(3.5rem, $input-height-border) !default; -$form-floating-line-height: 1.25 !default; -$form-floating-padding-x: $input-padding-x !default; -$form-floating-padding-y: 1rem !default; -$form-floating-input-padding-t: 1.625rem !default; -$form-floating-input-padding-b: .625rem !default; -$form-floating-label-height: 1.5em !default; -$form-floating-label-opacity: .65 !default; -$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default; -$form-floating-label-disabled-color: $gray-600 !default; -$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default; -// scss-docs-end form-floating-variables - -// Form validation - -// scss-docs-start form-feedback-variables -$form-feedback-margin-top: $form-text-margin-top !default; -$form-feedback-font-size: $form-text-font-size !default; -$form-feedback-font-style: $form-text-font-style !default; -$form-feedback-valid-color: $success !default; -$form-feedback-invalid-color: $danger !default; - -$form-feedback-icon-valid-color: $form-feedback-valid-color !default; -$form-feedback-icon-valid: url("data:image/svg+xml,") !default; -$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default; -$form-feedback-icon-invalid: url("data:image/svg+xml,") !default; -// scss-docs-end form-feedback-variables - -// scss-docs-start form-validation-colors -$form-valid-color: $form-feedback-valid-color !default; -$form-valid-border-color: $form-feedback-valid-color !default; -$form-invalid-color: $form-feedback-invalid-color !default; -$form-invalid-border-color: $form-feedback-invalid-color !default; -// scss-docs-end form-validation-colors - -// scss-docs-start form-validation-states -$form-validation-states: ( - "valid": ( - "color": var(--#{$prefix}form-valid-color), - "icon": $form-feedback-icon-valid, - "tooltip-color": #fff, - "tooltip-bg-color": var(--#{$prefix}success), - "focus-box-shadow": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}success-rgb), $input-btn-focus-color-opacity), - "border-color": var(--#{$prefix}form-valid-border-color), - ), - "invalid": ( - "color": var(--#{$prefix}form-invalid-color), - "icon": $form-feedback-icon-invalid, - "tooltip-color": #fff, - "tooltip-bg-color": var(--#{$prefix}danger), - "focus-box-shadow": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}danger-rgb), $input-btn-focus-color-opacity), - "border-color": var(--#{$prefix}form-invalid-border-color), - ) -) !default; -// scss-docs-end form-validation-states - -// Z-index master list -// -// Warning: Avoid customizing these values. They're used for a bird's eye view -// of components dependent on the z-axis and are designed to all work together. - -// scss-docs-start zindex-stack -$zindex-dropdown: 1000 !default; -$zindex-sticky: 1020 !default; -$zindex-fixed: 1030 !default; -$zindex-offcanvas-backdrop: 1040 !default; -$zindex-offcanvas: 1045 !default; -$zindex-modal-backdrop: 1050 !default; -$zindex-modal: 1055 !default; -$zindex-popover: 1070 !default; -$zindex-tooltip: 1080 !default; -$zindex-toast: 1090 !default; -// scss-docs-end zindex-stack - -// scss-docs-start zindex-levels-map -$zindex-levels: ( - n1: -1, - 0: 0, - 1: 1, - 2: 2, - 3: 3 -) !default; -// scss-docs-end zindex-levels-map - - -// Navs - -// scss-docs-start nav-variables -$nav-link-padding-y: .5rem !default; -$nav-link-padding-x: 1rem !default; -$nav-link-font-size: null !default; -$nav-link-font-weight: null !default; -$nav-link-color: var(--#{$prefix}link-color) !default; -$nav-link-hover-color: var(--#{$prefix}link-hover-color) !default; -$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default; -$nav-link-disabled-color: var(--#{$prefix}secondary-color) !default; -$nav-link-focus-box-shadow: $focus-ring-box-shadow !default; - -$nav-tabs-border-color: var(--#{$prefix}border-color) !default; -$nav-tabs-border-width: var(--#{$prefix}border-width) !default; -$nav-tabs-border-radius: var(--#{$prefix}border-radius) !default; -$nav-tabs-link-hover-border-color: var(--#{$prefix}secondary-bg) var(--#{$prefix}secondary-bg) $nav-tabs-border-color !default; -$nav-tabs-link-active-color: var(--#{$prefix}emphasis-color) !default; -$nav-tabs-link-active-bg: var(--#{$prefix}body-bg) !default; -$nav-tabs-link-active-border-color: var(--#{$prefix}border-color) var(--#{$prefix}border-color) $nav-tabs-link-active-bg !default; - -$nav-pills-border-radius: var(--#{$prefix}border-radius) !default; -$nav-pills-link-active-color: $component-active-color !default; -$nav-pills-link-active-bg: $component-active-bg !default; - -$nav-underline-gap: 1rem !default; -$nav-underline-border-width: .125rem !default; -$nav-underline-link-active-color: var(--#{$prefix}emphasis-color) !default; -// scss-docs-end nav-variables - - -// Navbar - -// scss-docs-start navbar-variables -$navbar-padding-y: $spacer * .5 !default; -$navbar-padding-x: null !default; - -$navbar-nav-link-padding-x: 1rem !default; // adminlte-modified - -$navbar-brand-font-size: $font-size-lg !default; -// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link -$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default; -$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default; -$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default; -$navbar-brand-margin-end: 1rem !default; - -$navbar-toggler-padding-y: .25rem !default; -$navbar-toggler-padding-x: .75rem !default; -$navbar-toggler-font-size: $font-size-lg !default; -$navbar-toggler-border-radius: $btn-border-radius !default; -$navbar-toggler-focus-width: $btn-focus-width !default; -$navbar-toggler-transition: box-shadow .15s ease-in-out !default; - -$navbar-light-color: rgba(var(--#{$prefix}emphasis-color-rgb), .65) !default; -$navbar-light-hover-color: rgba(var(--#{$prefix}emphasis-color-rgb), .8) !default; -$navbar-light-active-color: rgba(var(--#{$prefix}emphasis-color-rgb), 1) !default; -$navbar-light-disabled-color: rgba(var(--#{$prefix}emphasis-color-rgb), .3) !default; -$navbar-light-icon-color: rgba($body-color, .75) !default; -$navbar-light-toggler-icon-bg: url("data:image/svg+xml,") !default; -$navbar-light-toggler-border-color: rgba(var(--#{$prefix}emphasis-color-rgb), .15) !default; -$navbar-light-brand-color: $navbar-light-active-color !default; -$navbar-light-brand-hover-color: $navbar-light-active-color !default; -// scss-docs-end navbar-variables - -// scss-docs-start navbar-dark-variables -$navbar-dark-color: rgba($white, .55) !default; -$navbar-dark-hover-color: rgba($white, .75) !default; -$navbar-dark-active-color: $white !default; -$navbar-dark-disabled-color: rgba($white, .25) !default; -$navbar-dark-icon-color: $navbar-dark-color !default; -$navbar-dark-toggler-icon-bg: url("data:image/svg+xml,") !default; -$navbar-dark-toggler-border-color: rgba($white, .1) !default; -$navbar-dark-brand-color: $navbar-dark-active-color !default; -$navbar-dark-brand-hover-color: $navbar-dark-active-color !default; -// scss-docs-end navbar-dark-variables - - -// Dropdowns -// -// Dropdown menu container and contents. - -// scss-docs-start dropdown-variables -$dropdown-min-width: 10rem !default; -$dropdown-padding-x: 0 !default; -$dropdown-padding-y: .5rem !default; -$dropdown-spacer: .125rem !default; -$dropdown-font-size: $font-size-base !default; -$dropdown-color: var(--#{$prefix}body-color) !default; -$dropdown-bg: var(--#{$prefix}body-bg) !default; -$dropdown-border-color: var(--#{$prefix}border-color-translucent) !default; -$dropdown-border-radius: var(--#{$prefix}border-radius) !default; -$dropdown-border-width: var(--#{$prefix}border-width) !default; -$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default; // stylelint-disable-line function-disallowed-list -$dropdown-divider-bg: $dropdown-border-color !default; -$dropdown-divider-margin-y: $spacer * .5 !default; -$dropdown-box-shadow: var(--#{$prefix}box-shadow) !default; - -$dropdown-link-color: var(--#{$prefix}body-color) !default; -$dropdown-link-hover-color: $dropdown-link-color !default; -$dropdown-link-hover-bg: var(--#{$prefix}tertiary-bg) !default; - -$dropdown-link-active-color: $component-active-color !default; -$dropdown-link-active-bg: $component-active-bg !default; - -$dropdown-link-disabled-color: var(--#{$prefix}tertiary-color) !default; - -$dropdown-item-padding-y: $spacer * .25 !default; -$dropdown-item-padding-x: $spacer !default; - -$dropdown-header-color: $gray-600 !default; -$dropdown-header-padding-x: $dropdown-item-padding-x !default; -$dropdown-header-padding-y: $dropdown-padding-y !default; -// fusv-disable -$dropdown-header-padding: $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0 -// fusv-enable -// scss-docs-end dropdown-variables - -// scss-docs-start dropdown-dark-variables -$dropdown-dark-color: $gray-300 !default; -$dropdown-dark-bg: $gray-800 !default; -$dropdown-dark-border-color: $dropdown-border-color !default; -$dropdown-dark-divider-bg: $dropdown-divider-bg !default; -$dropdown-dark-box-shadow: null !default; -$dropdown-dark-link-color: $dropdown-dark-color !default; -$dropdown-dark-link-hover-color: $white !default; -$dropdown-dark-link-hover-bg: rgba($white, .15) !default; -$dropdown-dark-link-active-color: $dropdown-link-active-color !default; -$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default; -$dropdown-dark-link-disabled-color: $gray-500 !default; -$dropdown-dark-header-color: $gray-500 !default; -// scss-docs-end dropdown-dark-variables - - -// Pagination - -// scss-docs-start pagination-variables -$pagination-padding-y: .375rem !default; -$pagination-padding-x: .75rem !default; -$pagination-padding-y-sm: .25rem !default; -$pagination-padding-x-sm: .5rem !default; -$pagination-padding-y-lg: .75rem !default; -$pagination-padding-x-lg: 1.5rem !default; - -$pagination-font-size: $font-size-base !default; - -$pagination-color: var(--#{$prefix}link-color) !default; -$pagination-bg: var(--#{$prefix}body-bg) !default; -$pagination-border-radius: var(--#{$prefix}border-radius) !default; -$pagination-border-width: var(--#{$prefix}border-width) !default; -$pagination-margin-start: calc(-1 * #{$pagination-border-width}) !default; // stylelint-disable-line function-disallowed-list -$pagination-border-color: var(--#{$prefix}border-color) !default; - -$pagination-focus-color: var(--#{$prefix}link-hover-color) !default; -$pagination-focus-bg: var(--#{$prefix}secondary-bg) !default; -$pagination-focus-box-shadow: $focus-ring-box-shadow !default; -$pagination-focus-outline: 0 !default; - -$pagination-hover-color: var(--#{$prefix}link-hover-color) !default; -$pagination-hover-bg: var(--#{$prefix}tertiary-bg) !default; -$pagination-hover-border-color: var(--#{$prefix}border-color) !default; // Todo in v6: remove this? - -$pagination-active-color: $component-active-color !default; -$pagination-active-bg: $component-active-bg !default; -$pagination-active-border-color: $component-active-bg !default; - -$pagination-disabled-color: var(--#{$prefix}secondary-color) !default; -$pagination-disabled-bg: var(--#{$prefix}secondary-bg) !default; -$pagination-disabled-border-color: var(--#{$prefix}border-color) !default; - -$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; - -$pagination-border-radius-sm: var(--#{$prefix}border-radius-sm) !default; -$pagination-border-radius-lg: var(--#{$prefix}border-radius-lg) !default; -// scss-docs-end pagination-variables - - -// Placeholders - -// scss-docs-start placeholders -$placeholder-opacity-max: .5 !default; -$placeholder-opacity-min: .2 !default; -// scss-docs-end placeholders - -// Cards - -// scss-docs-start card-variables -$card-spacer-y: $spacer !default; -$card-spacer-x: $spacer !default; -$card-title-spacer-y: $spacer * .5 !default; -$card-title-color: null !default; -$card-subtitle-color: null !default; -$card-border-width: var(--#{$prefix}border-width) !default; -$card-border-color: var(--#{$prefix}border-color-translucent) !default; -$card-border-radius: var(--#{$prefix}border-radius) !default; -$card-box-shadow: null !default; -$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default; -$card-cap-padding-y: $card-spacer-y * .5 !default; -$card-cap-padding-x: $card-spacer-x !default; -$card-cap-bg: rgba(var(--#{$prefix}body-color-rgb), .03) !default; -$card-cap-color: null !default; -$card-height: null !default; -$card-color: null !default; -$card-bg: var(--#{$prefix}body-bg) !default; -$card-img-overlay-padding: $spacer !default; -$card-group-margin: $grid-gutter-width * .5 !default; -// scss-docs-end card-variables - -// Accordion - -// scss-docs-start accordion-variables -$accordion-padding-y: 1rem !default; -$accordion-padding-x: 1.25rem !default; -$accordion-color: var(--#{$prefix}body-color) !default; -$accordion-bg: var(--#{$prefix}body-bg) !default; -$accordion-border-width: var(--#{$prefix}border-width) !default; -$accordion-border-color: var(--#{$prefix}border-color) !default; -$accordion-border-radius: var(--#{$prefix}border-radius) !default; -$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default; - -$accordion-body-padding-y: $accordion-padding-y !default; -$accordion-body-padding-x: $accordion-padding-x !default; - -$accordion-button-padding-y: $accordion-padding-y !default; -$accordion-button-padding-x: $accordion-padding-x !default; -$accordion-button-color: var(--#{$prefix}body-color) !default; -$accordion-button-bg: var(--#{$prefix}accordion-bg) !default; -$accordion-transition: $btn-transition, border-radius .15s ease !default; -$accordion-button-active-bg: var(--#{$prefix}primary-bg-subtle) !default; -$accordion-button-active-color: var(--#{$prefix}primary-text-emphasis) !default; - -// fusv-disable -$accordion-button-focus-border-color: $input-focus-border-color !default; // Deprecated in v5.3.3 -// fusv-enable -$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default; - -$accordion-icon-width: 1.25rem !default; -$accordion-icon-color: $body-color !default; -$accordion-icon-active-color: $primary-text-emphasis !default; -$accordion-icon-transition: transform .2s ease-in-out !default; -$accordion-icon-transform: rotate(-180deg) !default; - -$accordion-button-icon: url("data:image/svg+xml,") !default; -$accordion-button-active-icon: url("data:image/svg+xml,") !default; -// scss-docs-end accordion-variables - -// Tooltips - -// scss-docs-start tooltip-variables -$tooltip-font-size: $font-size-sm !default; -$tooltip-max-width: 200px !default; -$tooltip-color: var(--#{$prefix}body-bg) !default; -$tooltip-bg: var(--#{$prefix}emphasis-color) !default; -$tooltip-border-radius: var(--#{$prefix}border-radius) !default; -$tooltip-opacity: .9 !default; -$tooltip-padding-y: $spacer * .25 !default; -$tooltip-padding-x: $spacer * .5 !default; -$tooltip-margin: null !default; // TODO: remove this in v6 - -$tooltip-arrow-width: .8rem !default; -$tooltip-arrow-height: .4rem !default; -// fusv-disable -$tooltip-arrow-color: null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables -// fusv-enable -// scss-docs-end tooltip-variables - -// Form tooltips must come after regular tooltips -// scss-docs-start tooltip-feedback-variables -$form-feedback-tooltip-padding-y: $tooltip-padding-y !default; -$form-feedback-tooltip-padding-x: $tooltip-padding-x !default; -$form-feedback-tooltip-font-size: $tooltip-font-size !default; -$form-feedback-tooltip-line-height: null !default; -$form-feedback-tooltip-opacity: $tooltip-opacity !default; -$form-feedback-tooltip-border-radius: $tooltip-border-radius !default; -// scss-docs-end tooltip-feedback-variables - - -// Popovers - -// scss-docs-start popover-variables -$popover-font-size: $font-size-sm !default; -$popover-bg: var(--#{$prefix}body-bg) !default; -$popover-max-width: 276px !default; -$popover-border-width: var(--#{$prefix}border-width) !default; -$popover-border-color: var(--#{$prefix}border-color-translucent) !default; -$popover-border-radius: var(--#{$prefix}border-radius-lg) !default; -$popover-inner-border-radius: calc(#{$popover-border-radius} - #{$popover-border-width}) !default; // stylelint-disable-line function-disallowed-list -$popover-box-shadow: var(--#{$prefix}box-shadow) !default; - -$popover-header-font-size: $font-size-base !default; -$popover-header-bg: var(--#{$prefix}secondary-bg) !default; -$popover-header-color: $headings-color !default; -$popover-header-padding-y: .5rem !default; -$popover-header-padding-x: $spacer !default; - -$popover-body-color: var(--#{$prefix}body-color) !default; -$popover-body-padding-y: $spacer !default; -$popover-body-padding-x: $spacer !default; - -$popover-arrow-width: 1rem !default; -$popover-arrow-height: .5rem !default; -// scss-docs-end popover-variables - -// fusv-disable -// Deprecated in Bootstrap 5.2.0 for CSS variables -$popover-arrow-color: $popover-bg !default; -$popover-arrow-outer-color: var(--#{$prefix}border-color-translucent) !default; -// fusv-enable - - -// Toasts - -// scss-docs-start toast-variables -$toast-max-width: 350px !default; -$toast-padding-x: .75rem !default; -$toast-padding-y: .5rem !default; -$toast-font-size: .875rem !default; -$toast-color: null !default; -$toast-background-color: rgba(var(--#{$prefix}body-bg-rgb), .85) !default; -$toast-border-width: var(--#{$prefix}border-width) !default; -$toast-border-color: var(--#{$prefix}border-color-translucent) !default; -$toast-border-radius: var(--#{$prefix}border-radius) !default; -$toast-box-shadow: var(--#{$prefix}box-shadow) !default; -$toast-spacing: $container-padding-x !default; - -$toast-header-color: var(--#{$prefix}secondary-color) !default; -$toast-header-background-color: rgba(var(--#{$prefix}body-bg-rgb), .85) !default; -$toast-header-border-color: $toast-border-color !default; -// scss-docs-end toast-variables - - -// Badges - -// scss-docs-start badge-variables -$badge-font-size: .75em !default; -$badge-font-weight: $font-weight-bold !default; -$badge-color: $white !default; -$badge-padding-y: .35em !default; -$badge-padding-x: .65em !default; -$badge-border-radius: var(--#{$prefix}border-radius) !default; -// scss-docs-end badge-variables - - -// Modals - -// scss-docs-start modal-variables -$modal-inner-padding: $spacer !default; - -$modal-footer-margin-between: .5rem !default; - -$modal-dialog-margin: .5rem !default; -$modal-dialog-margin-y-sm-up: 1.75rem !default; - -$modal-title-line-height: $line-height-base !default; - -// AdminLTE keeps `$modal-content-color: null` so the modal text colour is -// inherited from the document. Bootstrap's default is `var(--#{$prefix}body-color)`. -$modal-content-color: null !default; -$modal-content-bg: var(--#{$prefix}body-bg) !default; -$modal-content-border-color: var(--#{$prefix}border-color-translucent) !default; -$modal-content-border-width: var(--#{$prefix}border-width) !default; -$modal-content-border-radius: var(--#{$prefix}border-radius-lg) !default; -$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default; -$modal-content-box-shadow-xs: var(--#{$prefix}box-shadow-sm) !default; -$modal-content-box-shadow-sm-up: var(--#{$prefix}box-shadow) !default; - -$modal-backdrop-bg: $black !default; -$modal-backdrop-opacity: .5 !default; - -$modal-header-border-color: var(--#{$prefix}border-color) !default; -$modal-header-border-width: $modal-content-border-width !default; -$modal-header-padding-y: $modal-inner-padding !default; -$modal-header-padding-x: $modal-inner-padding !default; -$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility - -$modal-footer-bg: null !default; -$modal-footer-border-color: $modal-header-border-color !default; -$modal-footer-border-width: $modal-header-border-width !default; - -$modal-sm: 300px !default; -$modal-md: 500px !default; -$modal-lg: 800px !default; -$modal-xl: 1140px !default; - -$modal-fade-transform: translate(0, -50px) !default; -$modal-show-transform: none !default; -$modal-transition: transform .3s ease-out !default; -$modal-scale-transform: scale(1.02) !default; -// scss-docs-end modal-variables - - -// Alerts -// -// Define alert colors, border radius, and padding. - -// scss-docs-start alert-variables -$alert-padding-y: $spacer !default; -$alert-padding-x: $spacer !default; -$alert-margin-bottom: 1rem !default; -$alert-border-radius: var(--#{$prefix}border-radius) !default; -$alert-link-font-weight: $font-weight-bold !default; -$alert-border-width: var(--#{$prefix}border-width) !default; -$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side -// scss-docs-end alert-variables - -// fusv-disable -$alert-bg-scale: -80% !default; // Deprecated in v5.2.0, to be removed in v6 -$alert-border-scale: -70% !default; // Deprecated in v5.2.0, to be removed in v6 -$alert-color-scale: 40% !default; // Deprecated in v5.2.0, to be removed in v6 -// fusv-enable - -// Progress bars - -// scss-docs-start progress-variables -$progress-height: 1rem !default; -$progress-font-size: $font-size-base * .75 !default; -$progress-bg: var(--#{$prefix}secondary-bg) !default; -$progress-border-radius: var(--#{$prefix}border-radius) !default; -$progress-box-shadow: var(--#{$prefix}box-shadow-inset) !default; -$progress-bar-color: $white !default; -$progress-bar-bg: $primary !default; -$progress-bar-animation-timing: 1s linear infinite !default; -$progress-bar-transition: width .6s ease !default; -// scss-docs-end progress-variables - - -// List group - -// scss-docs-start list-group-variables -$list-group-color: var(--#{$prefix}body-color) !default; -$list-group-bg: var(--#{$prefix}body-bg) !default; -$list-group-border-color: var(--#{$prefix}border-color) !default; -$list-group-border-width: var(--#{$prefix}border-width) !default; -$list-group-border-radius: var(--#{$prefix}border-radius) !default; - -$list-group-item-padding-y: $spacer * .5 !default; -$list-group-item-padding-x: $spacer !default; -// fusv-disable -$list-group-item-bg-scale: -80% !default; // Deprecated in v5.3.0 -$list-group-item-color-scale: 40% !default; // Deprecated in v5.3.0 -// fusv-enable - -$list-group-hover-bg: var(--#{$prefix}tertiary-bg) !default; -$list-group-active-color: $component-active-color !default; -$list-group-active-bg: $component-active-bg !default; -$list-group-active-border-color: $list-group-active-bg !default; - -$list-group-disabled-color: var(--#{$prefix}secondary-color) !default; -$list-group-disabled-bg: $list-group-bg !default; - -$list-group-action-color: var(--#{$prefix}secondary-color) !default; -$list-group-action-hover-color: var(--#{$prefix}emphasis-color) !default; - -$list-group-action-active-color: var(--#{$prefix}body-color) !default; -$list-group-action-active-bg: var(--#{$prefix}secondary-bg) !default; -// scss-docs-end list-group-variables - - -// Image thumbnails - -// scss-docs-start thumbnail-variables -$thumbnail-padding: .25rem !default; -$thumbnail-bg: var(--#{$prefix}body-bg) !default; -$thumbnail-border-width: var(--#{$prefix}border-width) !default; -$thumbnail-border-color: var(--#{$prefix}border-color) !default; -$thumbnail-border-radius: var(--#{$prefix}border-radius) !default; -$thumbnail-box-shadow: var(--#{$prefix}box-shadow-sm) !default; -// scss-docs-end thumbnail-variables - - -// Figures - -// scss-docs-start figure-variables -$figure-caption-font-size: $small-font-size !default; -$figure-caption-color: var(--#{$prefix}secondary-color) !default; -// scss-docs-end figure-variables - - -// Breadcrumbs - -// scss-docs-start breadcrumb-variables -$breadcrumb-font-size: null !default; -$breadcrumb-padding-y: 0 !default; -$breadcrumb-padding-x: 0 !default; -$breadcrumb-item-padding-x: .5rem !default; -$breadcrumb-margin-bottom: 1rem !default; -$breadcrumb-bg: null !default; -$breadcrumb-divider-color: var(--#{$prefix}secondary-color) !default; -$breadcrumb-active-color: var(--#{$prefix}secondary-color) !default; -$breadcrumb-divider: quote("/") !default; -$breadcrumb-divider-flipped: $breadcrumb-divider !default; -$breadcrumb-border-radius: null !default; -// scss-docs-end breadcrumb-variables - -// Carousel - -// scss-docs-start carousel-variables -$carousel-control-color: $white !default; -$carousel-control-width: 15% !default; -$carousel-control-opacity: .5 !default; -$carousel-control-hover-opacity: .9 !default; -$carousel-control-transition: opacity .15s ease !default; - -$carousel-indicator-width: 30px !default; -$carousel-indicator-height: 3px !default; -$carousel-indicator-hit-area-height: 10px !default; -$carousel-indicator-spacer: 3px !default; -$carousel-indicator-opacity: .5 !default; -$carousel-indicator-active-bg: $white !default; -$carousel-indicator-active-opacity: 1 !default; -$carousel-indicator-transition: opacity .6s ease !default; - -$carousel-caption-width: 70% !default; -$carousel-caption-color: $white !default; -$carousel-caption-padding-y: 1.25rem !default; -$carousel-caption-spacer: 1.25rem !default; - -$carousel-control-icon-width: 2rem !default; - -$carousel-control-prev-icon-bg: url("data:image/svg+xml,") !default; -$carousel-control-next-icon-bg: url("data:image/svg+xml,") !default; - -$carousel-transition-duration: .6s !default; -$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`) -$carousel-control-icon-filter: null !default; -// scss-docs-end carousel-variables - -// scss-docs-start carousel-dark-variables -// Carousel "dark" variables below have been deprecated in Bootstrap 5.3.4. -// Use the `.carousel` colour-mode rules and `$carousel-control-icon-filter` -// instead. -$carousel-dark-indicator-active-bg: $black !default; // Deprecated in 5.3.4 -$carousel-dark-caption-color: $black !default; // Deprecated in 5.3.4 -$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default; // Deprecated in 5.3.4 -// scss-docs-end carousel-dark-variables - - -// Spinners - -// scss-docs-start spinner-variables -$spinner-width: 2rem !default; -$spinner-height: $spinner-width !default; -$spinner-vertical-align: -.125em !default; -$spinner-border-width: .25em !default; -$spinner-animation-speed: .75s !default; - -$spinner-width-sm: 1rem !default; -$spinner-height-sm: $spinner-width-sm !default; -$spinner-border-width-sm: .2em !default; -// scss-docs-end spinner-variables - - -// Close - -// scss-docs-start close-variables -$btn-close-width: 1em !default; -$btn-close-height: $btn-close-width !default; -$btn-close-padding-x: .25em !default; -$btn-close-padding-y: $btn-close-padding-x !default; -$btn-close-color: $black !default; -$btn-close-bg: url("data:image/svg+xml,") !default; -$btn-close-focus-shadow: $focus-ring-box-shadow !default; -$btn-close-opacity: .5 !default; -$btn-close-hover-opacity: .75 !default; -$btn-close-focus-opacity: 1 !default; -$btn-close-disabled-opacity: .25 !default; -$btn-close-filter: null !default; -$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default; // Deprecated in 5.3.4. Use `$btn-close-filter` with the `.btn-close` colour-mode rules instead. -// scss-docs-end close-variables - - -// Offcanvas - -// scss-docs-start offcanvas-variables -$offcanvas-padding-y: $modal-inner-padding !default; -$offcanvas-padding-x: $modal-inner-padding !default; -$offcanvas-horizontal-width: 400px !default; -$offcanvas-vertical-height: 30vh !default; -$offcanvas-transition-duration: .3s !default; -$offcanvas-border-color: $modal-content-border-color !default; -$offcanvas-border-width: $modal-content-border-width !default; -$offcanvas-title-line-height: $modal-title-line-height !default; -$offcanvas-bg-color: var(--#{$prefix}body-bg) !default; -$offcanvas-color: var(--#{$prefix}body-color) !default; -$offcanvas-box-shadow: $modal-content-box-shadow-xs !default; -$offcanvas-backdrop-bg: $modal-backdrop-bg !default; -$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default; -// scss-docs-end offcanvas-variables - -// Code - -$code-font-size: $small-font-size !default; -$code-color: $pink !default; - -$kbd-padding-y: .1875rem !default; -$kbd-padding-x: .375rem !default; -$kbd-font-size: $code-font-size !default; -$kbd-color: var(--#{$prefix}body-bg) !default; -$kbd-bg: var(--#{$prefix}body-color) !default; -$nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6 - -$pre-color: null !default; diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_callouts.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_callouts.scss deleted file mode 100644 index 21302345..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_callouts.scss +++ /dev/null @@ -1,40 +0,0 @@ -// -// Callouts -// - -.callout { - --#{$prefix}link-color-rgb: var(--#{$lte-prefix}callout-link); - --#{$prefix}code-color: var(--#{$lte-prefix}callout-code-color); - - padding: 1.25rem; - color: var(--#{$lte-prefix}callout-color, inherit); - background-color: var(--#{$lte-prefix}callout-bg, var(--bs-gray-100)); - border-left: .25rem solid var(--#{$lte-prefix}callout-border, var(--bs-gray-300)); - - .callout-link { - font-weight: $lte-callout-link-font-weight; - color: var(--#{$prefix}callout-link-color); - } - - h4 { - margin-bottom: .25rem; - } - - > :last-child { - margin-bottom: 0; - } - - + .callout { - margin-top: -.25rem; - } -} - -// Variations -@each $name, $color in $theme-colors { - .callout-#{$name} { - --#{$lte-prefix}callout-color: var(--#{$prefix}#{$name}-text-emphasis); - --#{$lte-prefix}callout-bg: var(--#{$prefix}#{$name}-bg-subtle); - --#{$lte-prefix}callout-border: var(--#{$prefix}#{$name}-border-subtle); - --#{$prefix}callout-link-color: var(--#{$prefix}#{$name}-text-emphasis); - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_cards.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_cards.scss deleted file mode 100644 index 6d7fc3ab..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_cards.scss +++ /dev/null @@ -1,311 +0,0 @@ -// -// Component: Cards -// - -// Color variants -.card { - @include box-shadow($lte-card-shadow); - - &[class*="card-"]:not(.card-outline), - &[class*="text-bg-"]:not(.card-outline) { - > .card-header { - color: var(--#{$lte-prefix}card-variant-color); - background-color: var(--#{$lte-prefix}card-variant-bg); - - .btn-tool { - --#{$prefix}btn-color: rgba(var(--#{$lte-prefix}card-variant-color-rgb), .8); - --#{$prefix}btn-hover-color: var(--#{$lte-prefix}card-variant-color); - } - } - } - - &.card-outline { - border-top: 3px solid var(--#{$lte-prefix}card-variant-bg); - } - - &.maximized-card { - position: fixed; - top: 0; - left: 0; - z-index: $zindex-modal-backdrop; - width: 100% !important; - max-width: 100% !important; - height: 100% !important; - max-height: 100% !important; - - &.was-collapsed .card-body { - display: block !important; - } - - .card-body { - overflow: auto; - } - - [data-lte-toggle="card-collapse"] { - display: none; - } - - [data-lte-icon="maximize"] { - display: none; - } - - .card-header, - .card-footer { - @include border-radius(0 !important); - } - } - - &:not(.maximized-card) { - [data-lte-icon="minimize"] { - display: none; - } - } - - // collapsed mode - &.collapsed-card { - // Use > .card-header to scope to direct card only, not nested cards - > .card-header [data-lte-icon="collapse"] { - display: none; - } - - > .card-body, - > .card-footer { - display: none; - } - } - - &:not(.collapsed-card) { - // Use > .card-header to scope to direct card only, not nested cards - > .card-header [data-lte-icon="expand"] { - display: none; - } - } - - - .nav.flex-column { - > li { - margin: 0; - border-bottom: 1px solid $card-border-color; - - &:last-of-type { - border-bottom: 0; - } - } - } - - // fixed height to 300px - &.height-control { - .card-body { - max-height: 300px; - overflow: auto; - } - } - - .border-end { - border-right: 1px solid $card-border-color; - } - - .border-start { - border-left: 1px solid $card-border-color; - } - - &.card-tabs { - &:not(.card-outline) { - > .card-header { - border-bottom: 0; - - .nav-item { - &:first-child .nav-link { - border-left-color: transparent; - } - } - } - } - - &.card-outline { - .nav-item { - border-bottom: 0; - - &:first-child .nav-link { - margin-left: 0; - border-left: 0; - } - } - } - - .card-tools { - margin: .3rem .5rem; - } - - &:not(.expanding-card).collapsed-card { - .card-header { - border-bottom: 0; - - .nav-tabs { - border-bottom: 0; - - .nav-item { - margin-bottom: 0; - } - } - } - } - - &.expanding-card { - .card-header { - .nav-tabs { - .nav-item { - margin-bottom: -1px; - } - } - } - } - } - - &.card-outline-tabs { - border-top: 0; - - .card-header { - .nav-item { - &:first-child .nav-link { - margin-left: 0; - border-left: 0; - } - } - - a { - text-decoration: none; - border-top: 3px solid transparent; - - &:hover { - border-top: 3px solid $nav-tabs-border-color; - } - - &.active { - &:hover { - margin-top: 0; - } - } - } - } - - .card-tools { - margin: .5rem .5rem .3rem; - } - - &:not(.expanding-card).collapsed-card .card-header { - border-bottom: 0; - - .nav-tabs { - border-bottom: 0; - - .nav-item { - margin-bottom: 0; - } - } - } - - &.expanding-card { - .card-header { - .nav-tabs { - .nav-item { - margin-bottom: -1px; - } - } - } - } - } - -} - -// Maximized Card Body Scroll fix -html.maximized-card { - overflow: hidden; -} - -// Add clearfix to header, body and footer -.card-header, -.card-body, -.card-footer { - @include clearfix(); -} - -// Box header -.card-header { - position: relative; - padding: (($card-spacer-y * .5) * 2) $card-spacer-x; - background-color: transparent; - border-bottom: 1px solid $card-border-color; - - @if $enable-rounded { - @include border-top-radius($border-radius); - } - - .collapsed-card & { - border-bottom: 0; - } - - > .card-tools { - float: right; - margin-right: -$card-spacer-x * .5; - - .input-group, - .nav, - .pagination { - margin-top: -$card-spacer-y * .4; - margin-bottom: -$card-spacer-y * .4; - } - - [data-bs-toggle="tooltip"] { - position: relative; - } - } -} - -.card-title { - float: left; - margin: 0; - font-size: $lte-card-title-font-size; - font-weight: $lte-card-title-font-weight; -} - -// Box Tools Buttons -.btn-tool { - --#{$prefix}btn-padding-x: .5rem; - --#{$prefix}btn-padding-y: .25rem; - - &:not(.btn-tool-custom) { - --#{$prefix}btn-color: var(--#{$prefix}tertiary-color); - --#{$prefix}btn-bg: transparent; - --#{$prefix}btn-box-shadow: none; - --#{$prefix}btn-hover-color: var(--#{$prefix}secondary-color); - --#{$prefix}btn-active-border-color: transparent; - } - - margin: -$card-spacer-y 0; - font-size: $font-size-sm; -} - -@each $name, $color in $theme-colors { - .card-#{$name}, - .bg-#{$name}, - .text-bg-#{$name} { - --#{$lte-prefix}card-variant-bg: #{$color}; - --#{$lte-prefix}card-variant-bg-rgb: #{to-rgb($color)}; - --#{$lte-prefix}card-variant-color: #{color-contrast($color)}; - --#{$lte-prefix}card-variant-color-rgb: #{to-rgb(color-contrast($color))}; - } -} - -// Box Body -.card-body { - // Tables within the box body - > .table { - margin-bottom: 0; - - > thead > tr > th, - > thead > tr > td { - border-top-width: 0; - } - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_compact-mode.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_compact-mode.scss deleted file mode 100644 index 22cb5ea4..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_compact-mode.scss +++ /dev/null @@ -1,53 +0,0 @@ -.compact-mode { - .app-header { - max-height: $lte-app-header-height-compact; - - .nav-link { - max-height: $nav-link-height-compact; - } - } - - .nav-link { - --bs-nav-link-padding-y: .25rem; - --bs-nav-link-padding-x: .5rem; - } - - &.sidebar-mini.sidebar-collapse { - .app-sidebar:not(:hover) { - min-width: $lte-sidebar-mini-width-compact; - max-width: $lte-sidebar-mini-width-compact; - - .sidebar-menu { - .nav-link { - width: $lte-sidebar-mini-width-compact - $lte-sidebar-padding-x * 2 !important; - } - } - } - } - - .logo-xs, - .logo-xl { - max-height: $lte-app-header-height-compact; - } - - .brand-image { - width: $nav-link-height-compact; - height: $nav-link-height-compact; - } - - .sidebar-brand { - height: $lte-app-header-height-compact; - } - - .app-footer { - padding: $lte-app-footer-padding-compact; - } - - .sidebar-wrapper { - .nav-icon { - min-width: 1.1rem; - max-width: 1.1rem; - } - } -} - diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_direct-chat.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_direct-chat.scss deleted file mode 100644 index ed961f3e..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_direct-chat.scss +++ /dev/null @@ -1,235 +0,0 @@ -// -// Component: Direct Chat -// - -.direct-chat { - .card-body { - position: relative; - padding: 0; - overflow-x: hidden; - } - - &.chat-pane-open { - .direct-chat-contacts { - transform: translate(0, 0); - } - } - - - &.timestamp-light { - .direct-chat-timestamp { - color: rgba(var(--#{$prefix}body-color-rgb), .65); - } - } - - &.timestamp-dark { - .direct-chat-timestamp { - color: rgba(var(--#{$prefix}body-color-rgb), .9); - } - } -} - -.direct-chat-messages { - height: 250px; - padding: 10px; - overflow: auto; - transform: translate(0, 0); -} - -.direct-chat-msg, -.direct-chat-text { - display: block; -} - -.direct-chat-msg { - @include clearfix(); - margin-bottom: 10px; -} - -.direct-chat-messages, -.direct-chat-contacts { - @include transition(transform .5s ease-in-out); -} - -.direct-chat-text { - @if $enable-rounded { - @include border-radius($border-radius-lg); - } - - position: relative; - padding: 5px 10px; - margin: 5px 0 0 50px; - color: $lte-direct-chat-default-font-color; - background-color: $lte-direct-chat-default-msg-bg; - border: 1px solid $lte-direct-chat-default-msg-border-color; - - //Create the arrow - &::after, - &::before { - position: absolute; - top: 15px; - right: 100%; - width: 0; - height: 0; - pointer-events: none; - content: " "; - border: solid transparent; - border-right-color: $lte-direct-chat-default-msg-border-color; - } - - &::after { - margin-top: -5px; - border-width: 5px; - } - - &::before { - margin-top: -6px; - border-width: 6px; - } - - .end & { - margin-right: 50px; - margin-left: 0; - - &::after, - &::before { - right: auto; - left: 100%; - border-right-color: transparent; - border-left-color: $lte-direct-chat-default-msg-border-color; - } - } -} - -.direct-chat-img { - @include border-radius(50%); - float: left; - width: 40px; - height: 40px; - - .end & { - float: right; - } -} - -.direct-chat-infos { - display: block; - margin-bottom: 2px; - font-size: $font-size-sm; -} - -.direct-chat-name { - font-weight: 600; -} - -.direct-chat-timestamp { - color: rgba(var(--#{$prefix}body-color-rgb), .75); -} - -//Direct chat contacts pane -.direct-chat-contacts-open { - .direct-chat-contacts { - transform: translate(0, 0); - } -} - -.direct-chat-contacts { - position: absolute; - top: 0; - bottom: 0; - width: 100%; - height: 250px; - overflow: auto; - color: var(--#{$prefix}body-bg); - background-color: var(--#{$prefix}body-color); - transform: translate(101%, 0); -} - -.direct-chat-contacts-light { - background-color: var(--#{$prefix}light-bg-subtle); - - .contacts-list-name { - color: var(--#{$prefix}body-color); - } - - .contacts-list-date { - color: var(--#{$prefix}secondary-color); - } - - .contacts-list-msg { - color: var(--#{$prefix}secondary-color); - } -} - -//Contacts list -- for displaying contacts in direct chat contacts pane -.contacts-list { - @include list-unstyled(); - - > li { - @include clearfix(); - padding: 10px; - margin: 0; - text-decoration: none; - border-bottom: 1px solid rgba($black, .2); - - &:last-of-type { - border-bottom: 0; - } - - a { - text-decoration: none; - } - } -} - -.contacts-list-img { - @include border-radius(50%); - float: left; - width: 40px; -} - -.contacts-list-info { - margin-left: 45px; - color: var(--#{$prefix}body-bg); -} - -.contacts-list-name, -.contacts-list-status { - display: block; -} - -.contacts-list-name { - font-weight: 600; -} - -.contacts-list-status { - font-size: $font-size-sm; -} - -.contacts-list-date { - font-weight: 400; - color: var(--#{$prefix}secondary-bg); -} - -.contacts-list-msg { - color: var(--#{$prefix}secondary-bg); -} - -.end > .direct-chat-text { - color: var(--#{$lte-prefix}direct-chat-color); - background-color: var(--#{$lte-prefix}direct-chat-bg); - border-color: var(--#{$lte-prefix}direct-chat-bg); - - &::after, - &::before { - border-left-color: var(--#{$lte-prefix}direct-chat-bg); - } -} - -// Color variants -@each $name, $color in $theme-colors { - .direct-chat-#{$name} { - --#{$lte-prefix}direct-chat-color: #{color-contrast($color)}; - --#{$lte-prefix}direct-chat-bg: #{$color}; - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_docs.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_docs.scss deleted file mode 100644 index 4e9bdc10..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_docs.scss +++ /dev/null @@ -1,820 +0,0 @@ -// -// Component: Docs -// -// Visual treatment for documentation pages. Body class `.docs-page` opts in. -// Demo pages are not affected. -// - -// Inline code blocks rendered by MDX (Astro highlight default class) -.astro-code { - padding: .75rem; - @include border-radius($border-radius); -} - -.docs-page { - // Constrain the docs card to a comfortable reading width. - // Tables and code blocks inside can still scroll horizontally if needed. - .app-content > .container-fluid { - max-width: 60rem; // ~960px - - @include media-breakpoint-up(xxl) { - max-width: 64rem; - } - } - - // - // Card body — breathing room + prose typography. - // Only applied inside docs content cards so demo-page card content - // stays unchanged. - // - .card > .card-body { - padding: 1.5rem; - font-size: 1rem; - line-height: 1.7; - color: var(--#{$prefix}body-color); - - @include media-breakpoint-up(md) { - padding: 2.5rem; - } - - // - // Heading hierarchy. The MDX content in src/html/components/docs/ uses - // ##### (h5) as the dominant section heading and ###### (h6) as a - // sub-heading (most visible in FAQ.mdx, where h5 is a topic and h6 is - // a question). Style h5 as a major section and h6 as a sub-section so - // the visual hierarchy matches the semantic one. - // - h1, - h2, - h3, - h4, - h5, - h6, - .h1, - .h2, - .h3, - .h4, - .h5, - .h6 { - margin-top: 2em; - margin-bottom: .5em; - font-weight: 600; - line-height: 1.3; - color: var(--#{$prefix}emphasis-color); - scroll-margin-top: 4rem; // anchor-link friendly - - &:first-child { - margin-top: 0; - } - } - - h2, - .h2 { - padding-bottom: .35em; - font-size: 1.75rem; - border-bottom: 1px solid var(--#{$prefix}border-color); - } - - h3, - .h3 { - font-size: 1.4rem; - } - - h4, - .h4 { - font-size: 1.2rem; - } - - // h5 is the dominant section heading across docs MDX files. Give it - // a visible separator above so sections are easy to scan. - h5, - .h5 { - padding-top: 1.5em; - margin-top: 2.5em; - font-size: 1.3rem; - border-top: 1px solid var(--#{$prefix}border-color); - - &:first-child { - padding-top: 0; - border-top: 0; - } - } - - // h6 is the sub-section / FAQ question style. Smaller than h5 but - // still distinctly heading-like, with a touch of accent colour to - // separate from body text. - h6, - .h6 { - margin-top: 1.75em; - font-size: 1.08rem; - color: var(--#{$prefix}emphasis-color); - } - - // - // Paragraphs and lists. - // - p, - ul, - ol, - dl, - blockquote, - table { - margin-bottom: 1.1rem; - } - - ul, - ol { - padding-left: 1.5rem; - - li { - margin-bottom: .35rem; - } - - // Tighter nested lists - ul, - ol { - margin-top: .35rem; - margin-bottom: 0; - } - } - - // Lead-style first paragraph (just after a heading) - h2 + p, - h3 + p, - h5 + p { - margin-top: 0; - } - - // - // Inline code — pill style that complements MDX's syntax-highlighted blocks. - // - p code, - li code, - td code, - th code, - h2 code, - h3 code, - h4 code, - h5 code, - h6 code { - padding: .15em .4em; - font-size: .875em; - color: var(--#{$prefix}emphasis-color); - background: var(--#{$prefix}tertiary-bg); - border: 1px solid var(--#{$prefix}border-color); - @include border-radius($border-radius-sm); - } - - // - // Code blocks. - // - pre.astro-code, - pre { - padding: 1rem 1.25rem; - margin-top: 1.25rem; - margin-bottom: 1.5rem; - overflow-x: auto; - font-size: .875rem; - line-height: 1.6; - @include border-radius($border-radius); - - code { - padding: 0; - background: transparent; - border: 0; - } - } - - // - // Tables — reference-doc styling with hairline borders. - // - table { - width: 100%; - margin-top: 1.25rem; - margin-bottom: 1.5rem; - overflow: hidden; - font-size: .95rem; - border-collapse: collapse; - border: 1px solid var(--#{$prefix}border-color); - @include border-radius($border-radius-sm); - - th, - td { - padding: .65rem .9rem; - text-align: left; - vertical-align: top; - border-bottom: 1px solid var(--#{$prefix}border-color); - } - - th { - font-weight: 600; - color: var(--#{$prefix}emphasis-color); - background: var(--#{$prefix}tertiary-bg); - } - - tr:last-child td { - border-bottom: 0; - } - - code { - white-space: nowrap; - } - } - - // - // Blockquotes used as info callouts. - // - blockquote { - padding: .85rem 1.1rem; - margin-top: 1.25rem; - color: var(--#{$prefix}emphasis-color); - background: var(--#{$prefix}info-bg-subtle); - border-left: 4px solid var(--#{$prefix}info-border-subtle); - @include border-radius($border-radius-sm); - - p:last-child { - margin-bottom: 0; - } - - code { - background: rgba(0, 0, 0, .05); - } - } - - // - // Prose links — stand out more than Bootstrap defaults. - // - a:not(.btn):not(.nav-link) { - color: var(--#{$prefix}primary); - text-decoration: underline; - text-decoration-thickness: 1px; - text-underline-offset: 3px; - - &:hover { - text-decoration-thickness: 2px; - } - } - - // - // Horizontal rule — used as additional section separator. - // - hr { - margin: 2.5rem 0; - border: 0; - border-top: 1px solid var(--#{$prefix}border-color); - opacity: 1; - } - - // - // Lead paragraph — the first paragraph in any doc is a summary. - // Visually heavier so it functions as a deck. - // - > p:first-child, - > p:first-of-type { - margin-bottom: 2rem; - font-size: 1.125rem; - line-height: 1.6; - color: var(--#{$prefix}body-color); - } - - // - // FAQ / disclosure accordion — uses native
/. - // Add `.faq-item` to
to opt in. - // - details.faq-item { - margin-bottom: .5rem; - overflow: hidden; - background: var(--#{$prefix}body-bg); - border: 1px solid var(--#{$prefix}border-color); - @include border-radius($border-radius); - @include transition(border-color .15s ease, box-shadow .15s ease); - - &:hover { - border-color: var(--#{$prefix}primary-border-subtle); - } - - &[open] { - background: var(--#{$prefix}body-bg); - border-color: var(--#{$prefix}primary-border-subtle); - box-shadow: 0 1px 3px rgba(0, 0, 0, .04); - } - - summary { - position: relative; - padding: .9rem 3rem .9rem 1.1rem; - font-size: 1rem; - font-weight: 600; - color: var(--#{$prefix}emphasis-color); - list-style: none; - cursor: pointer; - user-select: none; - @include transition(color .15s ease); - - // Hide the default disclosure triangle in Webkit/Blink - &::-webkit-details-marker { - display: none; - } - - // Hide the marker in modern Firefox too - &::marker { - content: ""; - } - - &:hover { - color: var(--#{$prefix}primary); - } - - // Right-side chevron, rotates on open - &::after { - position: absolute; - top: 50%; - right: 1.1rem; - display: inline-block; - width: .55rem; - height: .55rem; - margin-top: -.4rem; - content: ""; - border-right: 2px solid currentcolor; - border-bottom: 2px solid currentcolor; - opacity: .55; - transform: rotate(45deg); - @include transition(transform .2s ease); - } - } - - &[open] > summary { - color: var(--#{$prefix}primary); - border-bottom: 1px solid var(--#{$prefix}border-color); - - &::after { - margin-top: -.15rem; - opacity: 1; - transform: rotate(-135deg); - } - } - - // Content (everything after ) gets the inner padding - > *:not(summary) { - padding-right: 1.1rem; - padding-left: 1.1rem; - } - - > *:not(summary):first-of-type { - padding-top: 1rem; - } - - > *:not(summary):last-child { - padding-bottom: 1rem; - } - - // Tighten paragraphs/lists inside an FAQ answer - p, - ul, - ol { - margin-bottom: .65rem; - } - - > *:last-child p:last-child, - > p:last-child, - > ul:last-child, - > ol:last-child { - margin-bottom: 0; - } - - // Code blocks inside an FAQ answer get a less-distracting bg - pre.astro-code, - pre { - margin-right: 0; - margin-left: 0; - } - } - } - - // Dark-mode tweak: blockquote info bg needs more contrast on dark - &[data-bs-theme="dark"], - [data-bs-theme="dark"] & { - .card > .card-body blockquote code { - background: rgba(255, 255, 255, .08); - } - } -} - -// -// FAQ page — custom layout that breaks out of the standard docs card -// to give the FAQ a more distinctive visual identity. Opt in via -// body.faq-page (set in pages/docs/faq.astro). -// - -.faq-page { - // The FAQ doesn't use the standard card wrapper used by other docs, - // so the container can stretch wider for the chip strip and section - // grid. - .app-content > .container-fluid { - max-width: 64rem; - - @include media-breakpoint-up(xxl) { - max-width: 72rem; - } - } - - // --- Hero ------------------------------------------------------------- - .faq-hero { - position: relative; - padding: 3rem 1.5rem 2.5rem; - margin-top: 1rem; - overflow: hidden; - background: radial-gradient(ellipse at top left, rgba(var(--#{$prefix}primary-rgb), .12), transparent 60%), radial-gradient(ellipse at bottom right, rgba(var(--#{$prefix}info-rgb), .1), transparent 65%), var(--#{$prefix}body-bg); - border: 1px solid var(--#{$prefix}border-color); - @include border-radius($border-radius-xl); - } - - .faq-hero-eyebrow { - display: inline-flex; - gap: .4rem; - align-items: center; - padding: .35rem .85rem; - margin-bottom: 1rem; - font-size: .75rem; - font-weight: 600; - color: var(--#{$prefix}primary); - text-transform: uppercase; - letter-spacing: .08em; - background: var(--#{$prefix}primary-bg-subtle); - border: 1px solid var(--#{$prefix}primary-border-subtle); - @include border-radius(50rem); - - .bi { - font-size: .9rem; - } - } - - .faq-hero-title { - margin: 0 0 .5rem; - font-size: 2.25rem; - font-weight: 700; - line-height: 1.15; - color: var(--#{$prefix}emphasis-color); - - @include media-breakpoint-up(md) { - font-size: 2.75rem; - } - } - - .faq-hero-lead { - max-width: 36rem; - margin: 0 auto 1.75rem; - font-size: 1.05rem; - line-height: 1.55; - color: var(--#{$prefix}secondary-color); - } - - .faq-search { - position: relative; - max-width: 32rem; - margin: 0 auto; - - .form-control { - height: 3rem; - padding-right: 3rem; - padding-left: 3rem; - font-size: 1rem; - background: var(--#{$prefix}body-bg); - @include border-radius(50rem); - @include transition(box-shadow .15s ease, border-color .15s ease); - - &:focus { - box-shadow: 0 0 0 .25rem rgba(var(--#{$prefix}primary-rgb), .15); - } - } - } - - .faq-search-icon { - position: absolute; - top: 50%; - left: 1.2rem; - color: var(--#{$prefix}secondary-color); - pointer-events: none; - transform: translateY(-50%); - } - - .faq-search-clear { - position: absolute; - top: 50%; - right: .65rem; - display: inline-flex; - align-items: center; - justify-content: center; - width: 2rem; - height: 2rem; - padding: 0; - color: var(--#{$prefix}secondary-color); - background: var(--#{$prefix}tertiary-bg); - border: 0; - transform: translateY(-50%); - @include border-radius(50%); - @include transition(background .15s ease, color .15s ease); - - &:hover { - color: var(--#{$prefix}body-color); - background: var(--#{$prefix}secondary-bg); - } - } - - .faq-empty-state { - max-width: 32rem; - padding: 1rem; - margin: 1.5rem auto 0; - font-size: .95rem; - color: var(--#{$prefix}secondary-color); - background: var(--#{$prefix}tertiary-bg); - @include border-radius($border-radius); - - .bi { - margin-right: .35rem; - } - } - - // --- Section nav chips ------------------------------------------------ - .faq-chips { - display: flex; - flex-wrap: wrap; - gap: .5rem; - justify-content: center; - } - - .faq-chip { - display: inline-flex; - gap: .45rem; - align-items: center; - padding: .45rem .85rem; - font-size: .875rem; - font-weight: 500; - color: var(--#{$prefix}body-color); - text-decoration: none; - background: var(--#{$prefix}body-bg); - border: 1px solid var(--#{$prefix}border-color); - @include border-radius(50rem); - @include transition(transform .15s ease, border-color .15s ease, background-color .15s ease, color .15s ease); - - &:hover { - color: var(--#{$prefix}emphasis-color); - background: var(--#{$prefix}tertiary-bg); - transform: translateY(-1px); - } - - .bi { - font-size: 1rem; - } - } - - .faq-chip-count { - padding: 0 .45rem; - font-size: .7rem; - font-weight: 600; - color: var(--#{$prefix}secondary-color); - background: var(--#{$prefix}tertiary-bg); - @include border-radius(50rem); - } - - // Per-section chip accent on hover/active - @each $tone in (primary, info, warning, success, danger, secondary) { - .faq-chip-#{$tone}:hover { - color: var(--#{$prefix}#{$tone}-text-emphasis); - background: var(--#{$prefix}#{$tone}-bg-subtle); - border-color: var(--#{$prefix}#{$tone}-border-subtle); - - .faq-chip-count { - color: var(--#{$prefix}#{$tone}-text-emphasis); - background: rgba(0, 0, 0, .06); - } - } - } - - // --- Sections --------------------------------------------------------- - .faq-section { - margin-bottom: 2.5rem; - scroll-margin-top: 5rem; - } - - .faq-section-header { - display: flex; - gap: 1rem; - align-items: center; - padding: 1rem 1.25rem; - margin-bottom: 1rem; - background: var(--#{$prefix}body-bg); - border: 1px solid var(--#{$prefix}border-color); - border-left: 4px solid var(--#{$prefix}primary); - @include border-radius($border-radius); - } - - .faq-section-icon { - display: inline-flex; - flex-shrink: 0; - align-items: center; - justify-content: center; - width: 2.75rem; - height: 2.75rem; - font-size: 1.35rem; - color: var(--#{$prefix}primary); - background: var(--#{$prefix}primary-bg-subtle); - @include border-radius($border-radius); - } - - .faq-section-title { - margin: 0; - font-size: 1.4rem; - font-weight: 600; - line-height: 1.2; - color: var(--#{$prefix}emphasis-color); - } - - .faq-section-count { - margin: .1rem 0 0; - font-size: .8rem; - color: var(--#{$prefix}secondary-color); - } - - // Per-section tone accents - @each $tone in (primary, info, warning, success, danger, secondary) { - .faq-section-#{$tone} { - border-left-color: var(--#{$prefix}#{$tone}); - - .faq-section-icon { - color: var(--#{$prefix}#{$tone}-text-emphasis); - background: var(--#{$prefix}#{$tone}-bg-subtle); - } - } - } - - // --- FAQ items (override the generic .docs-page details styling) ------ - .faq-section-items .faq-item { - margin-bottom: .5rem; - overflow: hidden; - background: var(--#{$prefix}body-bg); - border: 1px solid var(--#{$prefix}border-color); - @include border-radius($border-radius); - @include transition(border-color .15s ease, box-shadow .15s ease, transform .15s ease); - - &:hover { - border-color: var(--#{$prefix}primary-border-subtle); - transform: translateX(2px); - } - - &[open] { - border-color: var(--#{$prefix}primary-border-subtle); - box-shadow: 0 2px 8px rgba(0, 0, 0, .04); - transform: none; - } - - summary { - display: flex; - gap: .85rem; - align-items: center; - padding: 1rem 1.25rem; - font-size: 1rem; - font-weight: 500; - color: var(--#{$prefix}emphasis-color); - list-style: none; - cursor: pointer; - user-select: none; - - &::-webkit-details-marker { - display: none; - } - - &::marker { - content: ""; - } - - &::after { - content: none; // disable the generic chevron, we use our own - } - } - - .faq-q-icon { - display: inline-flex; - flex-shrink: 0; - align-items: center; - justify-content: center; - width: 1.75rem; - height: 1.75rem; - font-size: .85rem; - color: var(--#{$prefix}primary); - background: var(--#{$prefix}primary-bg-subtle); - @include border-radius(50%); - } - - .faq-q-text { - flex-grow: 1; - } - - .faq-q-chevron { - flex-shrink: 0; - color: var(--#{$prefix}secondary-color); - @include transition(transform .2s ease, color .2s ease); - } - - &[open] .faq-q-chevron { - color: var(--#{$prefix}primary); - transform: rotate(180deg); - } - - &[open] summary { - color: var(--#{$prefix}primary); - border-bottom: 1px solid var(--#{$prefix}border-color); - } - - .faq-answer { - padding: 1.1rem 1.25rem 1.1rem 3.85rem; // align with the question text (icon + gap) - font-size: .95rem; - line-height: 1.65; - color: var(--#{$prefix}body-color); - - p:last-child, - ul:last-child, - ol:last-child, - pre:last-child { - margin-bottom: 0; - } - - a { - color: var(--#{$prefix}primary); - text-decoration: underline; - text-underline-offset: 2px; - - &:hover { - text-decoration-thickness: 2px; - } - } - - code { - padding: .12em .35em; - font-size: .875em; - color: var(--#{$prefix}emphasis-color); - background: var(--#{$prefix}tertiary-bg); - border: 1px solid var(--#{$prefix}border-color); - @include border-radius($border-radius-sm); - } - - pre.astro-code, - pre { - padding: .85rem 1rem; - margin-top: .75rem; - margin-bottom: .75rem; - overflow-x: auto; - font-size: .85rem; - line-height: 1.55; - @include border-radius($border-radius-sm); - - code { - padding: 0; - background: transparent; - border: 0; - } - } - } - } - - // --- CTA footer ------------------------------------------------------- - .faq-cta { - padding: 2.5rem 1.5rem; - text-align: center; - background: radial-gradient(ellipse at top, rgba(var(--#{$prefix}primary-rgb), .08), transparent 60%), var(--#{$prefix}body-bg); - border: 1px solid var(--#{$prefix}border-color); - @include border-radius($border-radius-xl); - } - - .faq-cta-icon { - display: inline-flex; - align-items: center; - justify-content: center; - width: 3.5rem; - height: 3.5rem; - margin-bottom: 1rem; - font-size: 1.6rem; - color: var(--#{$prefix}primary); - background: var(--#{$prefix}primary-bg-subtle); - @include border-radius(50%); - } - - .faq-cta h2 { - margin: 0 0 .5rem; - font-size: 1.5rem; - font-weight: 600; - color: var(--#{$prefix}emphasis-color); - } - - .faq-cta p { - max-width: 32rem; - margin: 0 auto 1.5rem; - color: var(--#{$prefix}secondary-color); - } - - .faq-cta-actions { - display: inline-flex; - flex-wrap: wrap; - gap: .5rem; - justify-content: center; - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_dropdown.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_dropdown.scss deleted file mode 100644 index 9ddf2f7c..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_dropdown.scss +++ /dev/null @@ -1,225 +0,0 @@ -// -// Component: Dropdown -// - -// General Dropdown Rules - -// Ensure children cannot overflow and break the dropdown border radius -.dropdown-menu { - overflow: hidden; -} - -.fs-7 { - .dropdown-menu { - font-size: $font-size-sm !important; - } - - .dropdown-toggle::after { - vertical-align: .2rem; - } -} - -.dropdown-item-title { - margin: 0; - font-size: $font-size-base; -} - -.dropdown-icon { - &::after { - margin-left: 0; - } -} - -// Dropdown Sizes -.dropdown-menu-lg { - min-width: 280px; - max-width: 300px; - padding: 0; - - .dropdown-divider { - margin: 0; - } - - .dropdown-item { - padding: $dropdown-padding-y $dropdown-item-padding-x; - } - - p { - margin: 0; - word-wrap: break-word; - white-space: normal; - } -} - -// Dropdown Submenu -.dropdown-submenu { - position: relative; - - > a::after { - @include caret-end(); - float: right; - margin-top: .5rem; - margin-left: .5rem; - } - - > .dropdown-menu { - top: 0; - left: 100%; - margin-top: 0; - margin-left: 0; - } -} - -// Dropdown Hover -.dropdown-hover { - &:hover, - &.nav-item.dropdown:hover, - .dropdown-submenu:hover, - &.dropdown-submenu:hover { - > .dropdown-menu { - display: block; - } - } -} - - -// Dropdown Sizes -.dropdown-menu-xl { - min-width: 360px; - max-width: 420px; - padding: 0; - - .dropdown-divider { - margin: 0; - } - - .dropdown-item { - padding: $dropdown-padding-y $dropdown-item-padding-x; - } - - p { - margin: 0; - word-wrap: break-word; - white-space: normal; - } -} - -// Dropdown header and footer -.dropdown-footer, -.dropdown-header { - display: block; - padding: .5rem $dropdown-item-padding-x; - font-size: $font-size-sm; - text-align: center; -} - -// Add fade animation to dropdown menus by appending -// the class .animated-dropdown-menu to the .dropdown-menu ul (or ol) -.open:not(.dropup) > .animated-dropdown-menu { - animation: flipInX .7s both; - backface-visibility: visible !important; -} - -// Fix dropdown menu in navbars -.navbar-custom-menu > .navbar-nav { - > li { - position: relative; - > .dropdown-menu { - position: absolute; - right: 0; - left: auto; - } - } -} - -@include media-breakpoint-down(sm) { - .navbar-custom-menu > .navbar-nav { - float: right; - > li { - position: static; - > .dropdown-menu { - position: absolute; - right: 5%; - left: auto; - background-color: var(--#{$prefix}body-bg); - border: 1px solid var(--#{$prefix}border-color); - } - } - } -} - -// User Menu -.navbar-nav > .user-menu { - > .nav-link::after { - content: none; - } - - > .dropdown-menu { - width: 280px; - padding: 0; - - // Header menu - > li.user-header { - min-height: 175px; - padding: 10px; - text-align: center; - - // User image - > img { - z-index: 5; - width: 90px; - height: 90px; - border: 3px solid; - border-color: transparent; - border-color: var(--#{$prefix}border-color-translucent); - } - - > p { - z-index: 5; - margin-top: 10px; - font-size: 17px; - word-wrap: break-word; - - > small { - display: block; - font-size: 12px; - } - } - } - - // Menu Body - > .user-body { - @include clearfix(); - padding: 15px; - border-top: 1px solid var(--#{$prefix}border-color); - border-bottom: 1px solid var(--#{$prefix}border-color-translucent); - - a { - text-decoration: none; - } - } - - // Menu Footer - > .user-footer { - @include clearfix(); - padding: 10px; - background-color: var(--#{$prefix}light-bg); - } - } - - .user-image { - @include media-breakpoint-up(sm) { - float: none; - margin-top: -8px; - margin-right: .4rem; - line-height: 10px; - } - - float: left; - width: $lte-sidebar-user-image-width; - height: $lte-sidebar-user-image-width; - margin-top: -2px; - // margin-right: 10px; - @include border-radius(50%); - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_info-box.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_info-box.scss deleted file mode 100644 index ad65d71e..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_info-box.scss +++ /dev/null @@ -1,131 +0,0 @@ -// -// Component: Info Box -// - -.info-box { - @include box-shadow($lte-card-shadow); - @include border-radius($border-radius); - - position: relative; - display: flex; - width: 100%; - min-height: 80px; - padding: .5rem; - margin-bottom: map-get($spacers, 3); - color: var(--#{$prefix}body-color); - background-color: var(--#{$prefix}body-bg); - - .progress { - height: 2px; - margin: 5px 0; - background-color: rgba(var(--#{$lte-prefix}card-variant-color-rgb), .125); - - .progress-bar { - background-color: var(--#{$lte-prefix}card-variant-color); - } - } - - .info-box-icon { - display: flex; - align-items: center; - justify-content: center; - width: 70px; - font-size: 1.875rem; - text-align: center; - @include border-radius($border-radius); - - > img { - max-width: 100%; - } - } - - .info-box-content { - display: flex; - flex: 1; - flex-direction: column; - justify-content: center; - padding: 0 10px; - line-height: 1.8; - } - - .info-box-number { - display: block; - margin-top: .25rem; - font-weight: $font-weight-bold; - } - - .progress-description, - .info-box-text { - display: block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - .info-box-more { - display: block; - } - - .progress-description { - margin: 0; - - } - - @include media-breakpoint-up(md) { - .col-xl-2 &, - .col-lg-2 &, - .col-md-2 & { - .progress-description { - display: none; - } - } - - .col-xl-3 &, - .col-lg-3 &, - .col-md-3 & { - .progress-description { - display: none; - } - } - } - - @include media-breakpoint-up(lg) { - .col-xl-2 &, - .col-lg-2 &, - .col-md-2 & { - .progress-description { - @include font-size(.75rem); - display: block; - } - } - - .col-xl-3 &, - .col-lg-3 &, - .col-md-3 & { - .progress-description { - @include font-size(.75rem); - display: block; - } - } - } - - @include media-breakpoint-up(xl) { - .col-xl-2 &, - .col-lg-2 &, - .col-md-2 & { - .progress-description { - @include font-size(1rem); - display: block; - } - } - - .col-xl-3 &, - .col-lg-3 &, - .col-md-3 & { - .progress-description { - @include font-size(1rem); - display: block; - } - } - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_miscellaneous.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_miscellaneous.scss deleted file mode 100644 index e04ec287..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_miscellaneous.scss +++ /dev/null @@ -1,22 +0,0 @@ -// -// Misc: Miscellaneous -// - -// Image sizes -.img-size-64, -.img-size-50, -.img-size-32 { - height: auto; -} - -.img-size-64 { - width: 64px; -} - -.img-size-50 { - width: 50px; -} - -.img-size-32 { - width: 32px; -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_mixins.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_mixins.scss deleted file mode 100644 index 44f6c188..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_mixins.scss +++ /dev/null @@ -1,6 +0,0 @@ -// -// General: Mixins -// - -@import "mixins/animations"; -@import "mixins/scrollbar"; diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_progress-bars.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_progress-bars.scss deleted file mode 100644 index c99605da..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_progress-bars.scss +++ /dev/null @@ -1,66 +0,0 @@ -// -// Component: Progress Bar -// - -//General CSS -.progress { - @include box-shadow(null); - @include border-radius($lte-progress-bar-border-radius); - - // Vertical bars - &.vertical { - position: relative; - display: inline-block; - width: 30px; - height: 200px; - margin-right: 10px; - - > .progress-bar { - position: absolute; - bottom: 0; - width: 100%; - } - - //Sizes - &.sm, - &.progress-sm { - width: 20px; - } - - &.xs, - &.progress-xs { - width: 10px; - } - - &.xxs, - &.progress-xxs { - width: 3px; - } - } -} - -.progress-group { - margin-bottom: map-get($spacers, 2); -} - -// size variation -.progress-sm { - height: 10px; -} - -.progress-xs { - height: 7px; -} - -.progress-xxs { - height: 3px; -} - -// Remove margins from progress bars when put in a table -.table { - tr > td { - .progress { - margin: 0; - } - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_root.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_root.scss deleted file mode 100644 index 2633fbd2..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_root.scss +++ /dev/null @@ -1,5 +0,0 @@ -:root, -[data-bs-theme="light"] { - // Sidebar - --#{$lte-prefix}sidebar-width: #{$lte-sidebar-width}; -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_small-box.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_small-box.scss deleted file mode 100644 index ce2e4863..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_small-box.scss +++ /dev/null @@ -1,127 +0,0 @@ -// -// Component: Small Box -// - -.small-box { - @include border-radius($border-radius); - @include box-shadow($lte-card-shadow); - position: relative; - display: block; - margin-bottom: 1.25rem; - --bs-link-color-rgb: none; - --bs-link-hover-color-rgb: none; - --bs-heading-color: none; - - // content wrapper - > .inner { - padding: 10px; - } - - > .small-box-footer { - position: relative; - z-index: 10; - display: block; - padding: 3px 0; - text-align: center; - background-color: rgba($black, .07); - - &:hover { - background-color: rgba($black, .1); - } - } - - h3 { - @include font-size(2.2rem); - padding: 0; - margin: 0 0 10px; - font-weight: 700; - white-space: nowrap; - } - - @include media-breakpoint-up(lg) { - .col-xl-2 &, - .col-lg-2 &, - .col-md-2 & { - h3 { - @include font-size(1.6rem); - } - } - - .col-xl-3 &, - .col-lg-3 &, - .col-md-3 & { - h3 { - @include font-size(1.6rem); - } - } - } - - @include media-breakpoint-up(xl) { - .col-xl-2 &, - .col-lg-2 &, - .col-md-2 & { - h3 { - @include font-size(2.2rem); - } - } - - .col-xl-3 &, - .col-lg-3 &, - .col-md-3 & { - h3 { - @include font-size(2.2rem); - } - } - } - - p { - font-size: 1rem; - - > small { - display: block; - margin-top: 5px; - font-size: .9rem; - color: $gray-100; - } - } - - h3, - p { - z-index: 5; - } - - // the icon - .small-box-icon { - position: absolute; - top: 15px; - right: 15px; - z-index: 0; - height: 70px; - font-size: 70px; - color: rgba($black, .15); - @include transition(transform $lte-transition-speed linear); - } - - // Small box hover state - &:hover { - // Animate icons on small box hover - .small-box-icon { - transform: scale(1.1); - } - } -} - -@include media-breakpoint-down(sm) { - // No need for icons on very small devices - .small-box { - text-align: center; - - .small-box-icon { - display: none; - } - - p { - font-size: 12px; - } - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_table.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_table.scss deleted file mode 100644 index 2bac75b7..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_table.scss +++ /dev/null @@ -1,67 +0,0 @@ -// -// Component: Table -// - -.table { - &:not(.table-dark) { - color: inherit; - } - - // fixed table head - // Uses Bootstrap CSS variables so the sticky header follows light/dark mode - // automatically. Fixes #6026. - &.table-head-fixed { - thead tr:nth-child(1) th { - position: sticky; - top: 0; - z-index: 10; - background-color: var(--bs-body-bg, #{$white}); - border-bottom: 0; - box-shadow: inset 0 1px 0 var(--bs-border-color, #{$table-border-color}), inset 0 -1px 0 var(--bs-border-color, #{$table-border-color}); - } - } - - // no border - &.no-border { - &, - td, - th { - border: 0; - } - } - - // .text-center in tables - &.text-center { - &, - td, - th { - text-align: center; - } - } - - &.table-valign-middle { - thead > tr > th, - thead > tr > td, - tbody > tr > th, - tbody > tr > td { - vertical-align: middle; - } - } - - .card-body.p-0 & { - thead > tr > th, - thead > tr > td, - tfoot > tr > th, - tfoot > tr > td, - tbody > tr > th, - tbody > tr > td { - &:first-of-type { - padding-left: map-get($spacers, 4); - } - - &:last-of-type { - padding-right: map-get($spacers, 4); - } - } - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_timeline.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_timeline.scss deleted file mode 100644 index f1521aee..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_timeline.scss +++ /dev/null @@ -1,121 +0,0 @@ -// -// Component: Timeline -// - -.timeline { - position: relative; - padding: 0; - margin: 0 0 45px; - // The line - &::before { - @include border-radius($border-radius); - position: absolute; - top: 0; - bottom: 0; - left: 31px; - width: 4px; - margin: 0; - content: ""; - background-color: var(--#{$prefix}border-color); - } - // Element - > div { - &::before, - &::after { - display: table; - content: ""; - } - - position: relative; - margin-right: 10px; - margin-bottom: 15px; - // The content - > .timeline-item { - @include box-shadow($lte-card-shadow); - @include border-radius($border-radius); - position: relative; - padding: 0; - margin-top: 0; - margin-right: 15px; - margin-left: 60px; - color: var(--#{$prefix}body-color); - background-color: var(--#{$prefix}body-bg); - // The time and header - > .time { - float: right; - padding: 10px; - font-size: 12px; - color: var(--#{$prefix}secondary-color); - } - // Header - > .timeline-header { - padding: 10px; - margin: 0; - font-size: 16px; - line-height: 1.1; - color: var(--#{$prefix}secondary-color); - border-bottom: 1px solid var(--#{$prefix}border-color); - // Link in header - > a { - font-weight: 600; - text-decoration: none; - } - } - // Item body and footer - > .timeline-body, - > .timeline-footer { - padding: 10px; - } - - > .timeline-body { - > img { - margin: 10px; - } - > dl, - ol, - ul { - margin: 0; - } - } - - - } - - .timeline-icon { - position: absolute; - top: 0; - left: 18px; - width: 30px; - height: 30px; - font-size: 16px; - line-height: 30px; - text-align: center; - background-color: var(--#{$prefix}secondary-bg); - border-radius: 50%; // stylelint-disable-line property-disallowed-list - } - } - // Time label - > .time-label { - > span { - @include border-radius(4px); - display: inline-block; - padding: 5px; - font-weight: 600; - background-color: var(--#{$prefix}body-bg); - } - } -} - -.timeline-inverse { - > div { - > .timeline-item { - @include box-shadow(none); - background-color: var(--#{$prefix}tertiary-bg); - border: 1px solid var(--#{$prefix}border-color); - - > .timeline-header { - border-bottom-color: var(--#{$prefix}border-color); - } - } - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_toasts.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_toasts.scss deleted file mode 100644 index 14be1ce6..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_toasts.scss +++ /dev/null @@ -1,33 +0,0 @@ -// -// Toast -// - -@each $name, $color in $theme-colors { - .toast-#{$name} { - --#{$prefix}toast-header-color: #{color-contrast($color)}; - --#{$prefix}toast-header-bg: #{$color}; - --#{$prefix}toast-header-border-color: #{$color}; - --#{$prefix}toast-border-color: #{$color}; - --#{$prefix}toast-bg: var(--#{$prefix}#{$name}-bg-subtle); - - @if color-contrast($color) == $color-contrast-light { - .btn-close { - @include btn-close-white(); - } - } - } -} - -@if $enable-dark-mode { - @include color-mode(dark) { - @each $name, $color in $theme-colors { - .toast-#{$name} { - @if color-contrast($color) == $color-contrast-dark { - .btn-close { - --#{$prefix}btn-close-white-filter: none; - } - } - } - } - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_variables-dark.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_variables-dark.scss deleted file mode 100644 index 9bd8681f..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_variables-dark.scss +++ /dev/null @@ -1,16 +0,0 @@ -// SIDEBAR SKINS -// -------------------------------------------------------- - -$lte-sidebar-hover-bg-dark: rgba(255, 255, 255, .1) !default; -$lte-sidebar-color-dark: #c2c7d0 !default; -$lte-sidebar-hover-color-dark: $white !default; -$lte-sidebar-active-color-dark: $white !default; -$lte-sidebar-menu-active-bg-dark: rgba(255, 255, 255, .1) !default; -$lte-sidebar-menu-active-color-dark: $white !default; -$lte-sidebar-submenu-bg-dark: transparent !default; -$lte-sidebar-submenu-color-dark: #c2c7d0 !default; -$lte-sidebar-submenu-hover-color-dark: $white !default; -$lte-sidebar-submenu-hover-bg-dark: rgba(255, 255, 255, .1) !default; -$lte-sidebar-submenu-active-color-dark: $white !default; -$lte-sidebar-submenu-active-bg-dark: rgba(255, 255, 255, .1) !default; -$lte-sidebar-header-color-dark: tint-color(#c2c7d0, 5%) !default; diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_variables.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_variables.scss deleted file mode 100644 index 35675327..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/_variables.scss +++ /dev/null @@ -1,131 +0,0 @@ -// -// Custom AdminLTE Variables -// - -// Prefix for :root CSS variables and others. -$lte-prefix: lte- !default; - -// TRANSITIONS SETTINGS -// -------------------------------------------------------- -// Transition global options -$lte-transition-speed: .3s !default; -$lte-transition-fn: ease-in-out !default; - -// SIDEBAR -// -------------------------------------------------------- -$lte-sidebar-width: 250px !default; -$lte-sidebar-breakpoint: lg !default; -$lte-sidebar-padding-x: .5rem !default; -$lte-sidebar-padding-x-compact: .5rem !default; -$lte-sidebar-padding-y: .5rem !default; -$lte-sidebar-padding-y-compact: .25rem !default; -$lte-sidebar-transition: min-width $lte-transition-speed $lte-transition-fn, - max-width $lte-transition-speed $lte-transition-fn, - margin-left $lte-transition-speed $lte-transition-fn, - margin-right $lte-transition-speed $lte-transition-fn !default; - -// SIDEBAR SKINS -// -------------------------------------------------------- - -$lte-sidebar-hover-bg: rgba($black, .1) !default; -$lte-sidebar-color: $gray-800 !default; -$lte-sidebar-hover-color: $gray-900 !default; -$lte-sidebar-active-color: $black !default; -$lte-sidebar-menu-active-bg: rgba($black, .1) !default; -$lte-sidebar-menu-active-color: $black !default; -$lte-sidebar-submenu-bg: transparent !default; -$lte-sidebar-submenu-color: #777 !default; -$lte-sidebar-submenu-hover-color: $black !default; -$lte-sidebar-submenu-hover-bg: rgba($black, .1) !default; -$lte-sidebar-submenu-active-color: $gray-900 !default; -$lte-sidebar-submenu-active-bg: rgba($black, .1) !default; -$lte-sidebar-header-color: shade-color($gray-800, 5%) !default; - -// SIDEBAR MINI -// -------------------------------------------------------- -$nav-link-padding-x-compact: .25rem !default; -$lte-sidebar-mini-width: ($nav-link-padding-x + $lte-sidebar-padding-x + .8rem) * 2 !default; -$lte-sidebar-mini-width-compact: ($nav-link-padding-x-compact + $lte-sidebar-padding-x-compact + .8rem) * 2 !default; -$lte-sidebar-nav-icon-width: $lte-sidebar-mini-width - (($lte-sidebar-padding-x + $nav-link-padding-x) * 2) !default; -$lte-sidebar-user-image-width: $lte-sidebar-nav-icon-width + ($nav-link-padding-x * .4) !default; - -// MAIN HEADER -// -------------------------------------------------------- -$nav-link-height-compact: 1.75rem !default; -$lte-app-header-bottom-border-width: $border-width !default; -$lte-app-header-bottom-border-color: var(--#{$prefix}border-color) !default; -$lte-app-header-bottom-border: $lte-app-header-bottom-border-width solid $lte-app-header-bottom-border-color !default; -$lte-app-header-link-padding-y: $navbar-padding-y !default; -$lte-app-header-height: ($nav-link-height + ($lte-app-header-link-padding-y * 2)) !default; -$lte-app-header-height-compact: ($nav-link-height-compact + ($lte-app-header-link-padding-y * 2)) !default; -$lte-zindex-fixed-header: $zindex-fixed !default; - -// APP MAIN -// -------------------------------------------------------- -$lte-app-main-padding-bottom: $grid-gutter-width * .5 !default; - -// CONTENT PADDING -// -------------------------------------------------------- -$lte-content-padding-y: 0 !default; -$lte-content-padding-x: .5rem !default; - -// MAIN FOOTER -// -------------------------------------------------------- -$lte-app-footer-padding: 1rem !default; -$lte-app-footer-padding-compact: .5rem !default; -$lte-app-footer-border-top-width: 1px !default; -$lte-app-footer-border-top-color: var(--#{$prefix}border-color) !default; -$lte-app-footer-border-top: $lte-app-footer-border-top-width solid $lte-app-footer-border-top-color !default; -$lte-app-footer-bg: var(--#{$prefix}body-bg) !default; -$lte-app-footer-color: var(--#{$prefix}secondary-color) !default; -$lte-zindex-fixed-footer: $zindex-fixed !default; -// CONTENT BOTTOM AREA -// -------------------------------------------------------- -$lte-app-content-bottom-area-margin-bottom: -$lte-app-main-padding-bottom !default; -$lte-app-content-bottom-area-color: $lte-app-footer-color !default; -$lte-app-content-bottom-area-bg: $lte-app-footer-bg !default; -$lte-app-content-bottom-area-top-border: $lte-app-footer-border-top !default; -$lte-app-content-bottom-area-padding-y: $lte-app-footer-padding !default; -$lte-app-content-bottom-area-padding-x: 0 !default; - -// CONTENT TOP AREA -// -------------------------------------------------------- -$lte-app-content-top-area-top-border: $lte-app-footer-border-top !default; -$lte-app-content-top-area-padding-y: $lte-app-footer-padding !default; -$lte-app-content-top-area-padding-x: 0 !default; - -// BRAND LINK -// -------------------------------------------------------- -$navbar-brand-padding-y-compact: $navbar-brand-padding-y * .75 !default; -$navbar-padding-y-compact: $navbar-padding-y * .5 !default; -$lte-brand-link-padding-y: $navbar-brand-padding-y + $navbar-padding-y !default; -$lte-brand-link-padding-y-compact: $navbar-brand-padding-y-compact + $navbar-padding-y-compact !default; -$lte-brand-link-padding-x: $lte-sidebar-padding-x !default; -$lte-brand-link-padding-x-compact: $lte-sidebar-padding-x-compact !default; -$lte-brand-link-border-buttom: 1px !default; - -// CARDS -// -------------------------------------------------------- -$lte-card-shadow: 0 0 1px rgba(var(--#{$prefix}body-color-rgb), .125), 0 1px 3px rgba(var(--#{$prefix}body-color-rgb), .2) !default; -$lte-card-title-font-size: 1.1rem !default; -$lte-card-title-font-weight: $font-weight-normal !default; - -// PROGRESS BARS -// -------------------------------------------------------- -$lte-progress-bar-border-radius: 1px !default; - -// CALLOUTS -// -------------------------------------------------------- -$lte-callout-link-font-weight: $alert-link-font-weight !default; - -// DIRECT CHAT -// -------------------------------------------------------- -$lte-direct-chat-default-msg-bg: var(--#{$prefix}secondary-bg) !default; -$lte-direct-chat-default-font-color: var(--#{$prefix}emphasis-color) !default; -$lte-direct-chat-default-msg-border-color: var(--#{$prefix}border-color) !default; - -// Z-INDEX -// -------------------------------------------------------- -$lte-zindex-app-header: $zindex-fixed + 4 !default; -$lte-zindex-sidebar: $zindex-fixed + 8 !default; -$lte-zindex-sidebar-overlay: $lte-zindex-sidebar - 1 !default; diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/adminlte.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/adminlte.scss deleted file mode 100644 index 47a13250..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/adminlte.scss +++ /dev/null @@ -1,81 +0,0 @@ -/*! - * AdminLTE v4.0.0 - * Author: Colorlib - * Website: AdminLTE.io - * License: Open source - MIT - */ - -// Bootstrap Configuration -// --------------------------------------------------- -@import "bootstrap/scss/functions"; - -// AdminLTE Configuration -// --------------------------------------------------- -@import "bootstrap-variables"; // little modified are here - -// Bootstrap Configuration -// --------------------------------------------------- -@import "bootstrap/scss/variables"; -@import "bootstrap/scss/variables-dark"; -@import "bootstrap/scss/maps"; -@import "bootstrap/scss/mixins"; -@import "bootstrap/scss/utilities"; - -// Bootstrap Layout & components -@import "bootstrap/scss/root"; -@import "bootstrap/scss/reboot"; -@import "bootstrap/scss/type"; -@import "bootstrap/scss/images"; -@import "bootstrap/scss/containers"; -@import "bootstrap/scss/grid"; -@import "bootstrap/scss/tables"; -@import "bootstrap/scss/forms"; -@import "bootstrap/scss/buttons"; -@import "bootstrap/scss/transitions"; -@import "bootstrap/scss/dropdown"; -@import "bootstrap/scss/button-group"; -@import "bootstrap/scss/nav"; -@import "bootstrap/scss/navbar"; -@import "bootstrap/scss/card"; -@import "bootstrap/scss/accordion"; -@import "bootstrap/scss/breadcrumb"; -@import "bootstrap/scss/pagination"; -@import "bootstrap/scss/badge"; -@import "bootstrap/scss/alert"; -@import "bootstrap/scss/progress"; -@import "bootstrap/scss/list-group"; -@import "bootstrap/scss/close"; -@import "bootstrap/scss/toasts"; -@import "bootstrap/scss/modal"; -@import "bootstrap/scss/tooltip"; -@import "bootstrap/scss/popover"; -@import "bootstrap/scss/carousel"; -@import "bootstrap/scss/spinners"; -@import "bootstrap/scss/offcanvas"; -@import "bootstrap/scss/placeholders"; - -// Bootstrap Helpers -@import "bootstrap/scss/helpers"; - -// Bootstrap Utilities -@import "bootstrap/scss/utilities/api"; - -// AdminLTE Configuration -// --------------------------------------------------- -@import "variables"; -@import "variables-dark"; -@import "mixins"; - -// AdiminLTE Parts -// --------------------------------------------------- -@import "parts/core"; -@import "parts/components"; -@import "parts/extra-components"; -@import "parts/pages"; -@import "parts/miscellaneous"; - -// AdminLTE Accessibility Styles - WCAG 2.1 AA Compliance -@import "accessibility"; - -// AdminLTE Documentation Styles (only applies to pages with body.docs-page) -@import "docs"; diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/mixins/_animations.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/mixins/_animations.scss deleted file mode 100644 index 5a403175..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/mixins/_animations.scss +++ /dev/null @@ -1,116 +0,0 @@ -// -// Mixins: Animation -// - - -@keyframes flipInX { - 0% { - opacity: 0; - transition-timing-function: ease-in; - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - } - - 40% { - transition-timing-function: ease-in; - transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - } - - 60% { - opacity: 1; - transform: perspective(400px) rotate3d(1, 0, 0, 10deg); - } - - 80% { - transform: perspective(400px) rotate3d(1, 0, 0, -5deg); - } - - 100% { - transform: perspective(400px); - } -} - -@keyframes fadeIn { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} - -@keyframes fadeOut { - from { - opacity: 1; - } - - to { - opacity: 0; - } -} - -@keyframes shake { - 0% { - transform: translate(2px, 1px) rotate(0deg); - } - 10% { - transform: translate(-1px, -2px) rotate(-2deg); - } - 20% { - transform: translate(-3px, 0) rotate(3deg); - } - 30% { - transform: translate(0, 2px) rotate(0deg); - } - 40% { - transform: translate(1px, -1px) rotate(1deg); - } - 50% { - transform: translate(-1px, 2px) rotate(-1deg); - } - 60% { - transform: translate(-3px, 1px) rotate(0deg); - } - 70% { - transform: translate(2px, 1px) rotate(-2deg); - } - 80% { - transform: translate(-1px, -1px) rotate(4deg); - } - 90% { - transform: translate(2px, 2px) rotate(0deg); - } - 100% { - transform: translate(1px, -2px) rotate(-1deg); - } -} - -@keyframes wobble { - 0% { - transform: none; - } - - 15% { - transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); - } - - 30% { - transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); - } - - 45% { - transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); - } - - 60% { - transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); - } - - 75% { - transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); - } - - 100% { - transform: none; - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/mixins/_scrollbar.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/mixins/_scrollbar.scss deleted file mode 100644 index 65c3b53d..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/mixins/_scrollbar.scss +++ /dev/null @@ -1,36 +0,0 @@ -// -// Mixins: Scrollbar -// - -@mixin scrollbar-color-gray() { - scrollbar-color: var(--#{$prefix}secondary-bg) transparent; - - &::-webkit-scrollbar-thumb { - background-color: var(--#{$prefix}secondary-bg); - } - - &::-webkit-scrollbar-track { - background-color: transparent; - } - - &::-webkit-scrollbar-corner { - background-color: transparent; - } -} - -@mixin scrollbar-width-thin() { - scrollbar-width: thin; - - &::-webkit-scrollbar { - width: .5rem; - height: .5rem; - } -} - -@mixin scrollbar-width-none() { - scrollbar-width: none; - - &::-webkit-scrollbar { - width: 0; - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/pages/_lockscreen.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/pages/_lockscreen.scss deleted file mode 100644 index 030e69fd..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/pages/_lockscreen.scss +++ /dev/null @@ -1,75 +0,0 @@ -// -// Pages: Lock Screen -// - -// ADD THIS CLASS TO THE TAG -.lockscreen { - // User name [optional] - .lockscreen-name { - font-weight: 600; - text-align: center; - } - - .lockscreen-logo { - margin-bottom: 25px; - font-size: 35px; - font-weight: 300; - text-align: center; - - a { - color: var(--#{$prefix}emphasis-color); - text-decoration: none; - } - } - - .lockscreen-wrapper { - max-width: 400px; - margin: 0 auto; - margin-top: 10%; - } - - // Will contain the image and the sign in form - .lockscreen-item { - position: relative; - width: 290px; - padding: 0; - margin: 10px auto 30px; - background-color: var(--#{$prefix}body-bg); - @include border-radius(4px); - } - - // User image - .lockscreen-image { - position: absolute; - top: -25px; - left: -10px; - z-index: 10; - padding: 5px; - background-color: var(--#{$prefix}body-bg); - @include border-radius(50%); - - > img { - @include border-radius(50%); - width: 70px; - height: 70px; - } - } - - // Contains the password input and the login button - .lockscreen-credentials { - margin-left: 70px; - - .form-control { - border: 0; - } - - .btn { - padding: 0 10px; - border: 0; - } - } - - .lockscreen-footer { - margin-top: 10px; - } -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/pages/_login_and_register.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/pages/_login_and_register.scss deleted file mode 100644 index cc176307..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/pages/_login_and_register.scss +++ /dev/null @@ -1,100 +0,0 @@ -// -// Pages: Login & Register -// - -.login-logo, -.register-logo { - margin-bottom: .9rem; - font-size: 2.1rem; - font-weight: 300; - text-align: center; - - a { - color: var(--#{$prefix}secondary-color); - text-decoration: none; - } -} - -.login-page, -.register-page { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - min-height: 100vh; -} - -.login-box, -.register-box { - width: 400px; - - @media (max-width: map-get($grid-breakpoints, sm)) { - width: 90%; - margin-top: .5rem; - } - - .card { - margin-bottom: 0; - } -} - -.login-card-body, -.register-card-body { - padding: 20px; - color: var(--#{$prefix}secondary-color); - background-color: var(--#{$prefix}body-bg); - border-top: 0; - - .input-group { - .form-control { - &:focus { - box-shadow: none; - - ~ .input-group-prepend .input-group-text, - ~ .input-group-append .input-group-text { - border-color: $input-focus-border-color; - } - } - - &.is-valid { - &:focus { - box-shadow: none; - } - - ~ .input-group-prepend .input-group-text, - ~ .input-group-append .input-group-text { - border-color: $success; - } - } - - &.is-invalid { - &:focus { - box-shadow: none; - } - - ~ .input-group-append .input-group-text { - border-color: $danger; - } - } - } - - .input-group-text { - color: var(--#{$prefix}secondary-color); - background-color: transparent; - @include border-top-end-radius($border-radius); - @include border-bottom-end-radius($border-radius); - @include transition($input-transition); - } - } -} - -.login-box-msg, -.register-box-msg { - padding: 0 20px 20px; - margin: 0; - text-align: center; -} - -.social-auth-links { - margin: 10px 0; -} diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_components.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_components.scss deleted file mode 100644 index ec223fd9..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_components.scss +++ /dev/null @@ -1,7 +0,0 @@ -// -// Part: Components -// - -@import "../progress-bars"; -@import "../cards"; -@import "../table"; diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_core.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_core.scss deleted file mode 100644 index 255dc03d..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_core.scss +++ /dev/null @@ -1,15 +0,0 @@ -// -// Part: Core -// - -@import "../root"; -@import "../app-wrapper"; -@import "../app-content"; -@import "../app-header"; -@import "../app-sidebar"; -@import "../app-main"; -@import "../app-footer"; -@import "../dropdown"; -@import "../callouts"; -@import "../compact-mode"; -@import "../docs"; diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_extra-components.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_extra-components.scss deleted file mode 100644 index 1028da98..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_extra-components.scss +++ /dev/null @@ -1,9 +0,0 @@ -// -// Part: Extra Components -// - -@import "../small-box"; -@import "../info-box"; -@import "../timeline"; -@import "../direct-chat"; -@import "../toasts"; diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_miscellaneous.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_miscellaneous.scss deleted file mode 100644 index cfdd705a..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_miscellaneous.scss +++ /dev/null @@ -1,5 +0,0 @@ -// -// Part: Miscellaneous -// - -@import "../miscellaneous"; diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_pages.scss b/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_pages.scss deleted file mode 100644 index 01cab17e..00000000 --- a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/scss/parts/_pages.scss +++ /dev/null @@ -1,6 +0,0 @@ -// -// Part: Pages -// - -@import "../pages/login_and_register"; -@import "../pages/lockscreen"; diff --git a/extensions/pagetop-bootsier/assets/bootsier.scss b/extensions/pagetop-bootsier/assets/bootsier.scss index 68b778fa..94fcf61e 100644 --- a/extensions/pagetop-bootsier/assets/bootsier.scss +++ b/extensions/pagetop-bootsier/assets/bootsier.scss @@ -1,13 +1,9 @@ -// AdminLTE v4.0.0 + Bootstrap 5.3.8 - PageTop Bootsier Styles. +// Bootstrap 5.3.8 - PageTop Bootsier Styles. // Bootstrap Configuration // --------------------------------------------------- @import "bootstrap-5.3.8/scss/functions"; -// AdminLTE Configuration (little modified are here) -// --------------------------------------------------- -@import "adminlte-4.0.0/scss/bootstrap-variables"; - // Bootsier Bootstrap variable overrides // --------------------------------------------------- @import "bootsier-variables"; @@ -62,26 +58,6 @@ // Bootstrap Utilities @import "bootstrap-5.3.8/scss/utilities/api"; -// AdminLTE Configuration -// --------------------------------------------------- -@import "adminlte-4.0.0/scss/variables"; -@import "adminlte-4.0.0/scss/variables-dark"; -@import "adminlte-4.0.0/scss/mixins"; - -// AdminLTE Parts -// --------------------------------------------------- -@import "adminlte-4.0.0/scss/parts/core"; -@import "adminlte-4.0.0/scss/parts/components"; -@import "adminlte-4.0.0/scss/parts/extra-components"; -@import "adminlte-4.0.0/scss/parts/pages"; -@import "adminlte-4.0.0/scss/parts/miscellaneous"; - -// AdminLTE Accessibility Styles - WCAG 2.1 AA Compliance -@import "adminlte-4.0.0/scss/accessibility"; - -// AdminLTE Documentation Styles (only applies to pages with body.docs-page) -@import "adminlte-4.0.0/scss/docs"; - // Bootstrap Icons 1.13.1 // --------------------------------------------------- @import "bootsier-icons"; diff --git a/extensions/pagetop-bootsier/assets/bootsier.shell.js b/extensions/pagetop-bootsier/assets/bootsier.theme.js similarity index 73% rename from extensions/pagetop-bootsier/assets/bootsier.shell.js rename to extensions/pagetop-bootsier/assets/bootsier.theme.js index c2b6e2a5..26b672f7 100644 --- a/extensions/pagetop-bootsier/assets/bootsier.shell.js +++ b/extensions/pagetop-bootsier/assets/bootsier.theme.js @@ -1,19 +1,8 @@ (function () { 'use strict'; - // Fullscreen: keeps maximize/minimize icons in sync with the actual fullscreen state. - document.addEventListener('fullscreenchange', function () { - var isFs = !!document.fullscreenElement; - document.querySelectorAll('[data-lte-icon="maximize"]').forEach(function (el) { - el.classList.toggle('d-none', isFs); - }); - document.querySelectorAll('[data-lte-icon="minimize"]').forEach(function (el) { - el.classList.toggle('d-none', !isFs); - }); - }); - // Color mode selector (light / dark / auto). - var STORAGE_KEY = 'lte-theme'; + var STORAGE_KEY = 'bootsier-theme'; var getStored = function () { return localStorage.getItem(STORAGE_KEY); }; var setStored = function (theme) { localStorage.setItem(STORAGE_KEY, theme); }; var prefersDark = function () { @@ -39,8 +28,8 @@ var check = active.querySelector('.bi-check-lg'); if (check) { check.classList.remove('d-none'); } } - document.querySelectorAll('[data-lte-theme-icon]').forEach(function (icon) { - icon.classList.toggle('d-none', icon.dataset.lteThemeIcon !== theme); + document.querySelectorAll('[data-bs-theme-icon]').forEach(function (icon) { + icon.classList.toggle('d-none', icon.dataset.bsThemeIcon !== theme); }); }; diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/fonts/SourceSans3VF-Italic.otf.woff2 b/extensions/pagetop-bootsier/assets/fonts/SourceSans3VF-Italic.otf.woff2 similarity index 100% rename from extensions/pagetop-bootsier/assets/adminlte-4.0.0/fonts/SourceSans3VF-Italic.otf.woff2 rename to extensions/pagetop-bootsier/assets/fonts/SourceSans3VF-Italic.otf.woff2 diff --git a/extensions/pagetop-bootsier/assets/adminlte-4.0.0/fonts/SourceSans3VF-Upright.otf.woff2 b/extensions/pagetop-bootsier/assets/fonts/SourceSans3VF-Upright.otf.woff2 similarity index 100% rename from extensions/pagetop-bootsier/assets/adminlte-4.0.0/fonts/SourceSans3VF-Upright.otf.woff2 rename to extensions/pagetop-bootsier/assets/fonts/SourceSans3VF-Upright.otf.woff2 diff --git a/extensions/pagetop-bootsier/build.rs b/extensions/pagetop-bootsier/build.rs index c8770de0..75e343db 100644 --- a/extensions/pagetop-bootsier/build.rs +++ b/extensions/pagetop-bootsier/build.rs @@ -3,13 +3,13 @@ //! Genera el directorio `static/` a partir de `assets/` y embebe su contenido en el binario: //! //! - `static/css/` - CSS compilado a partir de los archivos SCSS de `assets/`. -//! - `static/js/` - JS copiado desde `assets/`, renombrando AdminLTE a `bootsier.min.js`. +//! - `static/js/` - JS copiado o minificado desde `assets/`. //! - `static/fonts/` - Fuentes copiadas desde `assets/`. //! //! Los archivos `.map` se copian a `static/js/` para uso en desarrollo pero no se incluyen en el //! binario embebido. -use pagetop_build::{StaticFilesBundle, compile_scss, copy_file, copy_file_replacing, minify_js}; +use pagetop_build::{StaticFilesBundle, compile_scss, copy_file, minify_js}; use std::path::Path; @@ -18,7 +18,7 @@ fn main() -> std::io::Result<()> { println!("cargo:rerun-if-changed=assets"); let _ = std::fs::remove_dir_all("static"); - // CSS: Bootstrap 5.3.8 + AdminLTE 4.0.0 + Bootstrap Icons 1.13.1. + // CSS: Bootstrap 5.3.8 + Bootstrap Icons 1.13.1. compile_scss("assets/bootsier.scss", "static/css/bootsier.min.css")?; // JS: Bootstrap bundle. @@ -30,20 +30,10 @@ fn main() -> std::io::Result<()> { "assets/bootstrap-5.3.8/js/bootstrap.bundle.min.js.map", "static/js/bootsier.bundle.min.js.map", )?; - // JS: AdminLTE renombrado a bootsier.extended.min.js. - copy_file_replacing( - "assets/adminlte-4.0.0/js/adminlte.min.js", - "static/js/bootsier.extended.min.js", - &[("adminlte.min.js.map", "bootsier.extended.min.js.map")], - )?; - copy_file( - "assets/adminlte-4.0.0/js/adminlte.min.js.map", - "static/js/bootsier.extended.min.js.map", - )?; - // JS: shell de Bootsier. + // JS: selector de modo de color (claro / oscuro / automático). minify_js( - "assets/bootsier.shell.js", - "static/js/bootsier.shell.min.js", + "assets/bootsier.theme.js", + "static/js/bootsier.theme.min.js", )?; // JS: fix de apilamiento para Dialog. minify_js( @@ -67,11 +57,11 @@ fn main() -> std::io::Result<()> { )?; // Fuentes: Source Sans 3 (SIL OFL 1.1). copy_file( - "assets/adminlte-4.0.0/fonts/SourceSans3VF-Upright.otf.woff2", + "assets/fonts/SourceSans3VF-Upright.otf.woff2", "static/fonts/bootsier.font.woff2", )?; copy_file( - "assets/adminlte-4.0.0/fonts/SourceSans3VF-Italic.otf.woff2", + "assets/fonts/SourceSans3VF-Italic.otf.woff2", "static/fonts/bootsier.font.italic.woff2", )?; diff --git a/extensions/pagetop-bootsier/src/lib.rs b/extensions/pagetop-bootsier/src/lib.rs index 949913ee..c3437f1d 100644 --- a/extensions/pagetop-bootsier/src/lib.rs +++ b/extensions/pagetop-bootsier/src/lib.rs @@ -83,7 +83,6 @@ use pagetop::prelude::*; include_locales!(LOCALES_BOOTSIER); -pub(crate) const ADMINLTE_VERSION: &str = "4.0.0"; const BOOTSTRAP_VERSION: &str = "5.3.8"; pub mod config; @@ -169,7 +168,6 @@ impl Theme for Bootsier { cx: &mut Context, ) -> Option> { render_component!(component, { - layout::Region => |c| theme::bs::layout::region::render(c, cx).await?, layout::Template => |c| theme::bs::layout::template::render(c, cx).await?, Dialog => |c| theme::bs::dialog::render(c, cx).await, Dropdown => |c| theme::bs::dropdown::render(c, cx).await, @@ -201,7 +199,7 @@ impl Theme for Bootsier { ) .alter_assets( StyleSheet::from("/bootsier/css/bootsier.min.css") - .with_version(ADMINLTE_VERSION) + .with_version(BOOTSTRAP_VERSION) .with_weight(-99), ) .alter_assets( @@ -210,8 +208,8 @@ impl Theme for Bootsier { .with_weight(-99), ) .alter_assets( - JavaScript::defer("/bootsier/js/bootsier.extended.min.js") - .with_version(ADMINLTE_VERSION) + JavaScript::defer("/bootsier/js/bootsier.theme.min.js") + .with_version(BOOTSTRAP_VERSION) .with_weight(-99), ) .alter_assets( diff --git a/extensions/pagetop-bootsier/src/locale/en-US/components.ftl b/extensions/pagetop-bootsier/src/locale/en-US/components.ftl index 561513bd..81106ee8 100644 --- a/extensions/pagetop-bootsier/src/locale/en-US/components.ftl +++ b/extensions/pagetop-bootsier/src/locale/en-US/components.ftl @@ -7,8 +7,7 @@ toggle = Toggle navigation # Offcanvas offcanvas_close = Close -# Shell AdminLTE (BootsierTemplates::Admin) -shell_fullscreen = Full screen +# Theme toggle shell_theme_toggle = Color mode selector shell_theme_light = Light shell_theme_dark = Dark diff --git a/extensions/pagetop-bootsier/src/locale/en-US/regions.ftl b/extensions/pagetop-bootsier/src/locale/en-US/regions.ftl deleted file mode 100644 index dfae4ec5..00000000 --- a/extensions/pagetop-bootsier/src/locale/en-US/regions.ftl +++ /dev/null @@ -1,3 +0,0 @@ -# BootsierRegions -region_sidebar = Sidebar -region_navbar = Navigation bar diff --git a/extensions/pagetop-bootsier/src/locale/es-ES/components.ftl b/extensions/pagetop-bootsier/src/locale/es-ES/components.ftl index fcaffe72..aa1836a7 100644 --- a/extensions/pagetop-bootsier/src/locale/es-ES/components.ftl +++ b/extensions/pagetop-bootsier/src/locale/es-ES/components.ftl @@ -7,8 +7,7 @@ toggle = Mostrar/ocultar navegación # Offcanvas offcanvas_close = Cerrar -# Shell AdminLTE (BootsierTemplates::Admin) -shell_fullscreen = Pantalla completa +# Theme toggle shell_theme_toggle = Selector de modo de color shell_theme_light = Claro shell_theme_dark = Oscuro diff --git a/extensions/pagetop-bootsier/src/locale/es-ES/regions.ftl b/extensions/pagetop-bootsier/src/locale/es-ES/regions.ftl deleted file mode 100644 index 1ee281d8..00000000 --- a/extensions/pagetop-bootsier/src/locale/es-ES/regions.ftl +++ /dev/null @@ -1,3 +0,0 @@ -# BootsierRegions -region_sidebar = Barra lateral -region_navbar = Barra de navegación diff --git a/extensions/pagetop-bootsier/src/theme.rs b/extensions/pagetop-bootsier/src/theme.rs index 6879c222..76ecabce 100644 --- a/extensions/pagetop-bootsier/src/theme.rs +++ b/extensions/pagetop-bootsier/src/theme.rs @@ -11,10 +11,12 @@ //! //! # Plantillas //! -//! Bootsier maqueta las dos plantillas de PageTop ([`CoreTemplates`]): `Standard`, con cabecera, -//! contenido y pie, que es la plantilla por defecto de cualquier página; y `Admin`, con la shell -//! completa de administración (barra superior + barra lateral + área de contenido), que se activa -//! creando la página con [`Page::admin()`] en lugar de [`Page::new()`]. +//! Bootsier maqueta las dos plantillas de PageTop ([`CoreTemplates`]) con la misma cabecera, +//! contenido y pie: `Standard`, la plantilla por defecto de cualquier página; y `Admin`, que se +//! activa creando la página con [`Page::admin()`] en lugar de [`Page::new()`]. Ambas se maquetan +//! igual hoy -- la distinción entre página "normal" y de administración no vive en el maquetado, +//! sino en qué extensión registra contenido en cada región y para qué plantilla se autolimita (ver +//! más abajo `pagetop-admin`). //! //! ```rust,no_run //! use pagetop::prelude::*; @@ -33,60 +35,29 @@ //! [`Page::admin()`]: pagetop::response::Page::admin //! [`Page::new()`]: pagetop::response::Page::new //! -//! # Barra lateral +//! # Menú de administración //! -//! Registra elementos en [`BootsierRegions::Sidebar`](bs::BootsierRegions::Sidebar) para poblar la -//! barra lateral de la shell. Los elementos esperados son [`bs::sidebar::Item`] y -//! [`bs::sidebar::Section`]. +//! `pagetop-admin` (si está presente en la aplicación) registra su propio menú de secciones y +//! páginas en [`CoreRegions::Aside`](pagetop::core::theme::CoreRegions::Aside), autolimitado a +//! páginas con la plantilla `Admin` -- no requiere ningún registro por parte de Bootsier. Se +//! construye con [`Navbar`](bs::Navbar)/[`Nav`](bs::Nav)/[`Dropdown`](bs::Dropdown), los mismos +//! componentes disponibles para cualquier página de la aplicación. //! -//! De forma **global** (visibles en todas las páginas de administración): +//! # Selector de modo de color +//! +//! [`bs::theme_toggle()`] crea un ítem de menú con el selector de modo de color (claro / oscuro / +//! automático), pensado para añadirse a cualquier [`Nav`](bs::Nav) de la aplicación, no sólo a las +//! páginas de administración: //! //! ```rust,no_run //! use pagetop::prelude::*; -//! use pagetop_bootsier::theme::bs::{BootsierRegions, sidebar}; +//! use pagetop_bootsier::theme::*; //! -//! fn register_navigation() { -//! InRegion::Global(&BootsierRegions::Sidebar) -//! .add(sidebar::Section::titled(Lc::n("Administración"))) -//! .add(sidebar::Item::link(Lc::n("Usuarios"), "/users", "people")) -//! .add(sidebar::Item::link(Lc::n("Roles"), "/roles", "shield-check")); -//! } -//! ``` -//! -//! O de forma **por página**: -//! -//! ```rust,no_run -//! use pagetop::prelude::*; -//! use pagetop_bootsier::theme::bs::{BootsierRegions, sidebar}; -//! -//! async fn settings(request: HttpRequest) -> Result { -//! Page::admin(request) -//! .with_child_in( -//! &BootsierRegions::Sidebar, -//! sidebar::Item::link(Lc::n("Ajustes"), "/settings", "gear"), -//! ) -//! .with_child(Html::with(|_| html! { h3 { "Ajustes" } })) -//! .render().await -//! } -//! ``` -//! -//! # Barra de navegación superior -//! -//! La barra superior incluye por defecto los controles de pantalla completa y selector de tema. -//! Para añadir elementos adicionales en el lado derecho (por ejemplo, el dropdown de usuario de -//! `pagetop-user`), registra componentes en -//! [`BootsierRegions::Navbar`](bs::BootsierRegions::Navbar): -//! -//! ```rust,no_run -//! use pagetop::prelude::*; -//! use pagetop_bootsier::theme::bs::BootsierRegions; -//! -//! InRegion::Global(&BootsierRegions::Navbar) -//! .add(Html::with(|_| html! { -//! li class="nav-item" { -//! a class="nav-link" href="/logout" { "Cerrar sesión" } -//! } -//! })); +//! let navbar = bs::Navbar::simple().with_item(bs::navbar::Item::nav( +//! bs::Nav::new() +//! .with_item(bs::nav::Item::link(Lc::n("Home"), "/")) +//! .with_item(bs::theme_toggle()), +//! )); //! ``` use pagetop::prelude::*; diff --git a/extensions/pagetop-bootsier/src/theme/bs.rs b/extensions/pagetop-bootsier/src/theme/bs.rs index 7bc36b71..f829537a 100644 --- a/extensions/pagetop-bootsier/src/theme/bs.rs +++ b/extensions/pagetop-bootsier/src/theme/bs.rs @@ -1,7 +1,6 @@ //! Componentes proporcionados por el tema. pub(crate) mod layout; -pub use layout::BootsierRegions; // Badge. pub(crate) mod badge; @@ -81,10 +80,11 @@ pub use offcanvas::Offcanvas; // Pager. pub use pagetop::base::component::{Pager, PagerAlign, PagerVisibility}; -// Sidebar (componentes de navegación de AdminLTE). -pub mod sidebar; - // Table. pub use pagetop::base::component::table; #[doc(inline)] pub use table::Table; + +// Theme toggle. +mod theme_toggle; +pub use theme_toggle::theme_toggle; diff --git a/extensions/pagetop-bootsier/src/theme/bs/layout.rs b/extensions/pagetop-bootsier/src/theme/bs/layout.rs index 8b9b1881..6c2dd810 100644 --- a/extensions/pagetop-bootsier/src/theme/bs/layout.rs +++ b/extensions/pagetop-bootsier/src/theme/bs/layout.rs @@ -1,4 +1 @@ -pub(crate) mod region; -pub use region::BootsierRegions; - pub(crate) mod template; diff --git a/extensions/pagetop-bootsier/src/theme/bs/layout/region.rs b/extensions/pagetop-bootsier/src/theme/bs/layout/region.rs deleted file mode 100644 index 3c3f296a..00000000 --- a/extensions/pagetop-bootsier/src/theme/bs/layout/region.rs +++ /dev/null @@ -1,113 +0,0 @@ -use pagetop::prelude::*; - -use crate::LOCALES_BOOTSIER; - -/// Regiones específicas de la shell de Bootsier. -pub enum BootsierRegions { - /// Barra lateral de navegación (`app-sidebar` de AdminLTE). - /// - /// Los componentes registrados aquí se renderizan directamente dentro del - /// `