admin-lte 4.2.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +18 -1
  3. package/dist/css/adminlte-colors.css +1261 -0
  4. package/dist/css/adminlte-colors.css.map +1 -0
  5. package/dist/css/adminlte-colors.min.css +15 -0
  6. package/dist/css/adminlte-colors.min.css.map +1 -0
  7. package/dist/css/adminlte-colors.rtl.css +1260 -0
  8. package/dist/css/adminlte-colors.rtl.css.map +1 -0
  9. package/dist/css/adminlte-colors.rtl.min.css +15 -0
  10. package/dist/css/adminlte-colors.rtl.min.css.map +1 -0
  11. package/dist/css/adminlte-docs.css +1 -1
  12. package/dist/css/adminlte-docs.css.map +1 -1
  13. package/dist/css/adminlte-docs.min.css +1 -1
  14. package/dist/css/adminlte-docs.min.css.map +1 -1
  15. package/dist/css/adminlte-docs.rtl.css +1 -1
  16. package/dist/css/adminlte-docs.rtl.css.map +1 -1
  17. package/dist/css/adminlte-docs.rtl.min.css +1 -1
  18. package/dist/css/adminlte-docs.rtl.min.css.map +1 -1
  19. package/dist/css/adminlte-select2.css +329 -0
  20. package/dist/css/adminlte-select2.css.map +1 -0
  21. package/dist/css/adminlte-select2.min.css +12 -0
  22. package/dist/css/adminlte-select2.min.css.map +1 -0
  23. package/dist/css/adminlte-select2.rtl.css +328 -0
  24. package/dist/css/adminlte-select2.rtl.css.map +1 -0
  25. package/dist/css/adminlte-select2.rtl.min.css +12 -0
  26. package/dist/css/adminlte-select2.rtl.min.css.map +1 -0
  27. package/dist/css/adminlte.css +323 -19
  28. package/dist/css/adminlte.css.map +1 -1
  29. package/dist/css/adminlte.min.css +2 -2
  30. package/dist/css/adminlte.min.css.map +1 -1
  31. package/dist/css/adminlte.rtl.css +323 -19
  32. package/dist/css/adminlte.rtl.css.map +1 -1
  33. package/dist/css/adminlte.rtl.min.css +2 -2
  34. package/dist/css/adminlte.rtl.min.css.map +1 -1
  35. package/dist/js/adminlte.esm.js +231 -81
  36. package/dist/js/adminlte.esm.js.map +1 -1
  37. package/dist/js/adminlte.esm.min.js +2 -2
  38. package/dist/js/adminlte.esm.min.js.map +1 -1
  39. package/dist/js/adminlte.js +231 -80
  40. package/dist/js/adminlte.js.map +1 -1
  41. package/dist/js/adminlte.min.js +2 -2
  42. package/dist/js/adminlte.min.js.map +1 -1
  43. package/dist/js/types/adminlte.d.ts +2 -1
  44. package/dist/js/types/sidebar-search.d.ts +46 -0
  45. package/package.json +2 -1
  46. package/src/scss/_app-header.scss +49 -1
  47. package/src/scss/_app-sidebar.scss +22 -2
  48. package/src/scss/_mixins.scss +1 -0
  49. package/src/scss/_ribbon.scss +75 -0
  50. package/src/scss/_variables.scss +36 -0
  51. package/src/scss/_widgets.scss +192 -0
  52. package/src/scss/adminlte-colors.scss +35 -0
  53. package/src/scss/adminlte-docs.scss +1 -1
  54. package/src/scss/adminlte-select2.scss +31 -0
  55. package/src/scss/adminlte.scss +1 -1
  56. package/src/scss/colors/_colors.scss +159 -0
  57. package/src/scss/colors/_variables.scss +85 -0
  58. package/src/scss/compat/_select2.scss +476 -0
  59. package/src/scss/mixins/_search-field.scss +46 -0
  60. package/src/scss/parts/_extra-components.scss +2 -0
  61. package/src/ts/accessibility.ts +25 -13
  62. package/src/ts/adminlte.ts +3 -1
  63. package/src/ts/sidebar-search.ts +252 -0
@@ -0,0 +1,12 @@
1
+ @charset "UTF-8";/*!
2
+ * AdminLTE v4.4.0 — Select2 compatibility theme
3
+ * Styling only. AdminLTE bundles neither Select2 nor jQuery; this optional
4
+ * sheet makes a Select2 you load yourself match Bootstrap 5.3 form controls,
5
+ * including `data-bs-theme` dark mode. Load it AFTER select2.css.
6
+ * New code should prefer Tom Select — see docs/integrations.html.
7
+ *
8
+ * Author: Colorlib
9
+ * Website: AdminLTE.io <https://adminlte.io>
10
+ * License: Open source - MIT <https://opensource.org/licenses/MIT>
11
+ */.select2-container{max-width:100%;vertical-align:top}.select2-container--default .select2-selection--single{--lte-select2-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");height:auto;padding:.375rem .75rem .375rem 2.25rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-body-bg);background-image:var(--lte-select2-bg-img);background-repeat:no-repeat;background-position:left .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);box-shadow:var(--bs-box-shadow-inset);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.select2-container--default .select2-selection--single{transition:none}}.select2-container--default .select2-selection--single .select2-selection__rendered{padding:0;line-height:inherit;color:inherit}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--bs-secondary-color)}.select2-container--default .select2-selection--single .select2-selection__arrow{display:none}.select2-container--default .select2-selection--multiple{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center;min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.3125rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);box-shadow:var(--bs-box-shadow-inset);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.select2-container--default .select2-selection--multiple{transition:none}}.select2-container--default .select2-selection--multiple .select2-selection__rendered{display:contents;padding:0;margin:0;line-height:inherit}.select2-container--default .select2-selection--multiple .select2-selection__choice{display:inline-flex;align-items:center;max-width:100%;padding:0;margin:0;overflow:hidden;font-size:.875rem;color:var(--bs-body-color);background-color:var(--bs-secondary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:.25rem}.select2-container--default .select2-selection--multiple .select2-selection__choice__display{padding:.0625rem .375rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{position:static;display:flex;align-items:center;align-self:stretch;padding:0 .375rem;color:var(--bs-secondary-color);background-color:transparent;border:0;border-left:var(--bs-border-width) solid var(--bs-border-color);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{transition:none}}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus-visible,.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:var(--bs-danger-text-emphasis);background-color:var(--bs-danger-bg-subtle)}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.select2-container--default .select2-selection--multiple .select2-search--inline{display:flex;flex:1 1 auto;align-items:center;min-width:3rem}.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field{height:1.5em;min-height:0;padding:0;margin:0;font-family:inherit;font-size:1rem;line-height:1.5;color:inherit}.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field::placeholder{color:var(--bs-secondary-color)}.select2-container--default .select2-selection__clear{padding:0;margin:0;color:var(--bs-secondary-color);background-color:transparent;border:0}.select2-container--default .select2-selection__clear:hover{color:var(--bs-danger)}.select2-container--default .select2-selection--single .select2-selection__clear{float:left;margin-left:.25rem}.select2-container--default .select2-selection--multiple .select2-selection__clear{top:.375rem;margin-top:0;margin-left:.25rem}.select2-container--default.select2-container--focus .select2-selection--multiple,.select2-container--default.select2-container--focus .select2-selection--single,.select2-container--default.select2-container--open .select2-selection--multiple,.select2-container--default.select2-container--open .select2-selection--single{border-color:rgb(52.5490196078%,71.568627451%,99.6078431373%);outline:0;box-shadow:var(--bs-box-shadow-inset),0 0 0 .25rem rgba(13,110,253,.25)}.select2-container--default.select2-container--disabled .select2-selection--multiple,.select2-container--default.select2-container--disabled .select2-selection--single{cursor:default;background-color:var(--bs-secondary-bg)}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default .select2-dropdown{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:rgb(52.5490196078%,71.568627451%,99.6078431373%);border-radius:var(--bs-border-radius);box-shadow:var(--bs-box-shadow)}.select2-container--default .select2-dropdown--below{border-top-right-radius:0;border-top-left-radius:0}.select2-container--default .select2-dropdown--above{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown{padding:.5rem 1rem}.select2-container--default .select2-search--dropdown .select2-search__field{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius-sm);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.select2-container--default .select2-search--dropdown .select2-search__field{transition:none}}.select2-container--default .select2-search--dropdown .select2-search__field:focus{border-color:rgb(52.5490196078%,71.568627451%,99.6078431373%);outline:0;box-shadow:var(--bs-box-shadow-inset),0 0 0 .25rem rgba(13,110,253,.25)}.select2-container--default .select2-results>.select2-results__options{max-height:15rem}.select2-container--default .select2-results__option{padding:.25rem 1rem;font-size:1rem;color:var(--bs-body-color)}.select2-container--default .select2-results__option--selected{color:var(--bs-emphasis-color);background-color:var(--bs-tertiary-bg)}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{color:#fff;background-color:#0d6efd}.select2-container--default .select2-results__option--disabled{color:var(--bs-secondary-color)}.select2-container--default .select2-results__option--group{padding:0}.select2-container--default .select2-results__group{padding:.25rem 1rem;font-size:.875rem;font-weight:600;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.03em}[data-bs-theme=dark] .select2-container--default .select2-selection--single{--lte-select2-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-control-sm+.select2-container--default .select2-selection--single,.form-select-sm+.select2-container--default .select2-selection--single{padding-top:.25rem;padding-bottom:.25rem;padding-right:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm+.select2-container--default .select2-selection--multiple,.form-select-sm+.select2-container--default .select2-selection--multiple{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.1875rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-lg+.select2-container--default .select2-selection--single,.form-select-lg+.select2-container--default .select2-selection--single{padding-top:.5rem;padding-bottom:.5rem;padding-right:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg+.select2-container--default .select2-selection--multiple,.form-select-lg+.select2-container--default .select2-selection--multiple{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.4375rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.is-invalid+.select2-container--default .select2-selection--multiple,.is-invalid+.select2-container--default .select2-selection--single{border-color:var(--bs-form-invalid-border-color)}.is-invalid+.select2-container--default.select2-container--focus .select2-selection--multiple,.is-invalid+.select2-container--default.select2-container--focus .select2-selection--single,.is-invalid+.select2-container--default.select2-container--open .select2-selection--multiple,.is-invalid+.select2-container--default.select2-container--open .select2-selection--single{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.is-valid+.select2-container--default .select2-selection--multiple,.is-valid+.select2-container--default .select2-selection--single{border-color:var(--bs-form-valid-border-color)}.is-valid+.select2-container--default.select2-container--focus .select2-selection--multiple,.is-valid+.select2-container--default.select2-container--focus .select2-selection--single,.is-valid+.select2-container--default.select2-container--open .select2-selection--multiple,.is-valid+.select2-container--default.select2-container--open .select2-selection--single{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.input-group>.select2-container--default{flex:1 1 auto;width:1%!important;min-width:0}.input-group>.select2-container--default:not(:last-child) .select2-selection{border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.select2-container--default:not(:first-child) .select2-selection{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.select2-container--default.select2-container--open{z-index:5}.select2-container--open{z-index:1060}.select2-close-mask{z-index:1059}
12
+ /*# sourceMappingURL=adminlte-select2.rtl.min.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/scss/adminlte-select2.scss","../../src/scss/compat/_select2.scss","../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../node_modules/bootstrap/scss/mixins/_box-shadow.scss","../../node_modules/bootstrap/scss/mixins/_transition.scss","dist/css/adminlte-select2.rtl.css"],"names":[],"mappings":"iBAAA;;;;;;;;;;AC2CA,mBACE,UAAA,KACA,eAAA,IAOA,uDAEE,qBAAA,gOAEA,OAAA,KACA,QAAA,QAAA,OAAA,QAAA,QCsOE,UAAA,KDnOF,YAAA,IACA,YAAA,IACA,MAAA,qBACA,iBAAA,kBACA,iBAAA,0BACA,kBAAA,UACA,oBAAA,KAAA,OAAA,OACA,gBAAA,KAAA,KACA,OAAA,uBAAA,MAAA,uBEjDA,cAAA,wBCCE,WAAA,2BCJA,WAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCJgCJ,uDI/BM,WAAA,MJoDJ,oFACE,QAAA,EACA,YAAA,QACA,MAAA,QAGF,uFACE,MAAA,0BAIF,iFACE,QAAA,KAOJ,yDACE,QAAA,KACA,UAAA,KACA,IAAA,OACA,YAAA,OACA,WAAA,wDACA,QAAA,SAAA,OC6LE,UAAA,KD1LF,YAAA,IACA,YAAA,IACA,MAAA,qBACA,iBAAA,kBACA,OAAA,uBAAA,MAAA,uBEtFA,cAAA,wBCCE,WAAA,2BCJA,WAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCJwEJ,yDIvEM,WAAA,MJ8FJ,sFACE,QAAA,SACA,QAAA,EACA,OAAA,EACA,YAAA,QAGF,oFACE,QAAA,YACA,YAAA,OACA,UAAA,KACA,QAAA,EACA,OAAA,EACA,SAAA,OC+JA,UAAA,QD7JA,MAAA,qBACA,iBAAA,uBACA,OAAA,uBAAA,MAAA,uBEjHF,cAAA,OFuHA,6FACE,QAAA,SAAA,QACA,OAAA,EACA,SAAA,OACA,cAAA,SACA,YAAA,OAGF,4FACE,SAAA,OACA,QAAA,KACA,YAAA,OACA,WAAA,QACA,QAAA,EAAA,QACA,MAAA,0BACA,iBAAA,YACA,OAAA,EACA,YAAA,uBAAA,MAAA,uBExIF,cAAA,EEHE,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,YAIA,uCJ8HF,4FI7HI,WAAA,MJ0IF,0GAAA,kGAEE,MAAA,+BACA,iBAAA,2BAGF,0GACE,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBAIJ,iFACE,QAAA,KACA,KAAA,EAAA,EAAA,KACA,YAAA,OACA,UAAA,KAOF,wGACE,OAAA,MACA,WAAA,EACA,QAAA,EACA,OAAA,EACA,YAAA,QCoGA,UAAA,KDlGA,YAAA,IACA,MAAA,QAEA,qHACE,MAAA,0BAQN,sDACE,QAAA,EACA,OAAA,EACA,MAAA,0BACA,iBAAA,YACA,OAAA,EAEA,4DACE,MAAA,iBAIJ,iFACE,MAAA,KACA,YAAA,OAGF,mFACE,IAAA,QACA,WAAA,EACA,YAAA,OKzDJ,kFLiEI,gFKhEJ,iFADmF,+ELmE7E,aAAA,iDACA,QAAA,EGpNA,WAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,OAAA,qBEuJN,qFL2EI,mFAGE,OAAA,QACA,iBAAA,uBAIF,2FACE,QAAA,KAOJ,8CACE,MAAA,qBACA,iBAAA,kBACA,aAAA,iDEtPA,cAAA,wBCCE,WAAA,qBH2PJ,qDEnPE,wBAAA,EACA,uBAAA,EFsPF,qDEzOE,0BAAA,EACA,2BAAA,EF+OF,sDACE,QAAA,MAAA,KAEA,6EACE,QAAA,OAAA,MCCA,UAAA,QDCA,YAAA,IACA,MAAA,qBACA,iBAAA,kBACA,OAAA,uBAAA,MAAA,uBEhRF,cAAA,2BEHE,WAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCJyQF,6EIxQI,WAAA,MJkRF,mFACE,aAAA,iDACA,QAAA,EGrRF,WAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,OAAA,qBHoSJ,uEACE,WAAA,MAGF,qDACE,QAAA,OAAA,KC9BE,UAAA,KDgCF,MAAA,qBAGF,+DACE,MAAA,yBACA,iBAAA,sBAGF,sGACE,MAAA,KACA,iBAAA,QAGF,+DACE,MAAA,0BAIF,4DACE,QAAA,EAGF,oDACE,QAAA,OAAA,KCvDE,UAAA,QDyDF,YAAA,IACA,MAAA,0BACA,eAAA,UACA,eAAA,MAUA,4EACE,qBAAA,gOK1GN,wELsHE,uEACE,YAAA,OACA,eAAA,OACA,cAAA,MCtFE,UAAA,QC5QF,cAAA,2BGiPJ,0ELsHE,yEACE,WAAA,uDACA,QAAA,SAAA,MC7FE,UAAA,QC5QF,cAAA,2BGyPJ,wELwHE,uEACE,YAAA,MACA,eAAA,MACA,cAAA,KCxGE,UAAA,QC5QF,cAAA,2BGiQJ,0ELwHE,yEACE,WAAA,sDACA,QAAA,SAAA,KC/GE,UAAA,QC5QF,cAAA,2BGyQJ,qEL6HE,mEAEE,aAAA,oCK3HJ,8FLgII,4FK/HJ,6FADiG,2FLkI3F,WAAA,EAAA,EAAA,EAAA,OAAA,+BK5HN,mELkIE,iEAEE,aAAA,kCKhIJ,4FLqII,0FKpIJ,2FAD+F,yFLuIzF,WAAA,EAAA,EAAA,EAAA,OAAA,gCASN,yCACE,KAAA,EAAA,EAAA,KAIA,MAAA,aACA,UAAA,EAEA,6EE/ZE,uBAAA,EACA,0BAAA,EFkaF,8EErZE,wBAAA,EACA,2BAAA,EF0ZF,iEACE,QAAA,EAQJ,yBACE,QAAA,KAGF,oBACE,QAAA","sourcesContent":["/*!\n * AdminLTE v4.4.0 — Select2 compatibility theme\n * Styling only. AdminLTE bundles neither Select2 nor jQuery; this optional\n * sheet makes a Select2 you load yourself match Bootstrap 5.3 form controls,\n * including `data-bs-theme` dark mode. Load it AFTER select2.css.\n * New code should prefer Tom Select — see docs/integrations.html.\n *\n * Author: Colorlib\n * Website: AdminLTE.io <https://adminlte.io>\n * License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n\n// Bootstrap Configuration\n// ---------------------------------------------------\n@import \"bootstrap/scss/functions\";\n@import \"bootstrap-overrides\";\n@import \"bootstrap/scss/variables\";\n@import \"bootstrap/scss/variables-dark\";\n@import \"bootstrap/scss/maps\";\n@import \"bootstrap/scss/mixins\";\n\n// AdminLTE Configuration\n// ---------------------------------------------------\n// `mixins` is deliberately not imported: it emits AdminLTE's @keyframes, and\n// this sheet only uses Bootstrap's own mixins.\n@import \"variables\";\n@import \"variables-dark\";\n\n// Select2 compatibility styles\n// ---------------------------------------------------\n@import \"compat/select2\";\n","//\n// Compatibility: Select2\n//\n// Styling only. AdminLTE bundles neither Select2 nor jQuery — this sheet\n// exists for projects that cannot drop Select2 yet (server-rendered ERP\n// forms, vendor plugins that initialise it for you) and want it to look like\n// the rest of a Bootstrap 5.3 form.\n//\n// New code should use Tom Select instead; see the Recommended Integrations\n// docs page for the API mapping.\n//\n// Load order matters — this sheet layers on top of Select2's own CSS:\n//\n// <link rel=\"stylesheet\" href=\"adminlte.min.css\">\n// <link rel=\"stylesheet\" href=\"select2.min.css\">\n// <link rel=\"stylesheet\" href=\"adminlte-select2.min.css\">\n//\n// Everything resolves through Bootstrap CSS variables at runtime, so\n// `data-bs-theme` switches and reskins need no recompile. Selectors are\n// scoped to `.select2-container--default` (Select2's built-in theme) to win\n// against the rules in select2.css without `!important`.\n//\n// Markup target: Select2 4.1.x, with fallbacks for 4.0.x choice markup.\n//\n\n// Sits above .modal (1055) but below .popover (1070) so a Select2 dropdown\n// opened inside a modal is visible — the single most-reported Select2 +\n// Bootstrap 5 problem, and the reason `dropdownParent` is usually needed.\n$lte-select2-zindex: $zindex-modal + 5 !default;\n\n$lte-select2-choice-bg: var(--#{$prefix}secondary-bg) !default;\n$lte-select2-choice-color: var(--#{$prefix}body-color) !default;\n$lte-select2-choice-border-color: var(--#{$prefix}border-color) !default;\n$lte-select2-choice-gap: .25rem !default;\n$lte-select2-choice-padding-y: .0625rem !default;\n$lte-select2-choice-padding-x: .375rem !default;\n\n//\n// Container\n//\n// Select2 writes an inline `width` on the container, so sizing is left alone;\n// only the box model needs aligning with a block-level form control.\n//\n.select2-container {\n max-width: 100%;\n vertical-align: top;\n}\n\n//\n// Single select — mirrors `.form-select`\n//\n.select2-container--default {\n .select2-selection--single {\n // Bootstrap's chevron, swapped for the light-on-dark variant further down.\n --#{$lte-prefix}select2-bg-img: #{escape-svg($form-select-indicator)};\n\n height: auto;\n padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;\n font-family: $form-select-font-family;\n @include font-size($form-select-font-size);\n font-weight: $form-select-font-weight;\n line-height: $form-select-line-height;\n color: $form-select-color;\n background-color: $form-select-bg;\n background-image: var(--#{$lte-prefix}select2-bg-img);\n background-repeat: no-repeat;\n background-position: $form-select-bg-position;\n background-size: $form-select-bg-size;\n border: $form-select-border-width solid $form-select-border-color;\n @include border-radius($form-select-border-radius, 0);\n @include box-shadow($form-select-box-shadow);\n @include transition($form-select-transition);\n\n .select2-selection__rendered {\n padding: 0;\n line-height: inherit;\n color: inherit;\n }\n\n .select2-selection__placeholder {\n color: $input-placeholder-color;\n }\n\n // Bootstrap's chevron replaces the bordered triangle.\n .select2-selection__arrow {\n display: none;\n }\n }\n\n //\n // Multi select — mirrors `.form-control`, with choices as pills\n //\n .select2-selection--multiple {\n display: flex;\n flex-wrap: wrap;\n gap: $lte-select2-choice-gap;\n align-items: center;\n min-height: $input-height;\n padding: ($input-padding-y - $lte-select2-choice-padding-y) $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n border: $input-border-width solid $input-border-color;\n @include border-radius($input-border-radius, 0);\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Select2 wraps the choices in a <ul> but leaves the inline search field\n // as that list's *sibling*, so a flex context on the list alone would\n // stack the search on its own row and double the control's height.\n // `display: contents` promotes the individual choices to flex items of\n // the control, letting the search field flow after the last one.\n .select2-selection__rendered {\n display: contents;\n padding: 0;\n margin: 0;\n line-height: inherit;\n }\n\n .select2-selection__choice {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n padding: 0;\n margin: 0;\n overflow: hidden;\n @include font-size($font-size-sm);\n color: $lte-select2-choice-color;\n background-color: $lte-select2-choice-bg;\n border: $input-border-width solid $lte-select2-choice-border-color;\n @include border-radius($border-radius-sm);\n }\n\n // 4.1.x wraps the label in its own element; 4.0.x leaves it as a bare\n // text node, hence the padding on the choice itself further down.\n .select2-selection__choice__display {\n padding: $lte-select2-choice-padding-y $lte-select2-choice-padding-x;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .select2-selection__choice__remove {\n position: static;\n display: flex;\n align-items: center;\n align-self: stretch;\n padding: 0 $lte-select2-choice-padding-x;\n color: var(--#{$prefix}secondary-color);\n background-color: transparent;\n border: 0;\n border-right: $input-border-width solid $lte-select2-choice-border-color;\n @include border-radius(0);\n @include transition(color .15s ease-in-out, background-color .15s ease-in-out);\n\n &:hover,\n &:focus-visible {\n color: var(--#{$prefix}danger-text-emphasis);\n background-color: var(--#{$prefix}danger-bg-subtle);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: $focus-ring-box-shadow;\n }\n }\n\n .select2-search--inline {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n min-width: 3rem;\n }\n\n // Select2 renders the inline search as a `rows=\"2\"` <textarea>, so its\n // height has to be pinned to one line — `height: auto` would resolve to\n // two rows and double the control's height. Placeholder text lives in\n // this field rather than a dedicated element.\n .select2-search--inline .select2-search__field {\n height: $input-line-height * 1em;\n min-height: 0;\n padding: 0;\n margin: 0;\n font-family: inherit;\n @include font-size($input-font-size);\n line-height: $input-line-height;\n color: inherit;\n\n &::placeholder {\n color: $input-placeholder-color;\n }\n }\n }\n\n //\n // Clear (\"remove all\") button\n //\n .select2-selection__clear {\n padding: 0;\n margin: 0;\n color: var(--#{$prefix}secondary-color);\n background-color: transparent;\n border: 0;\n\n &:hover {\n color: var(--#{$prefix}danger);\n }\n }\n\n .select2-selection--single .select2-selection__clear {\n float: right;\n margin-right: $lte-select2-choice-gap;\n }\n\n .select2-selection--multiple .select2-selection__clear {\n top: $input-padding-y;\n margin-top: 0;\n margin-right: $lte-select2-choice-gap;\n }\n\n //\n // Focus and open states — Bootstrap's focus ring, not Select2's outline\n //\n &.select2-container--focus,\n &.select2-container--open {\n .select2-selection--single,\n .select2-selection--multiple {\n border-color: $input-focus-border-color;\n outline: 0;\n\n @if $enable-shadows {\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n }\n\n //\n // Disabled\n //\n &.select2-container--disabled {\n .select2-selection--single,\n .select2-selection--multiple {\n color: $form-select-disabled-color;\n cursor: default;\n background-color: $form-select-disabled-bg;\n border-color: $form-select-disabled-border-color;\n }\n\n .select2-selection__choice__remove {\n display: none;\n }\n }\n\n //\n // Dropdown panel\n //\n .select2-dropdown {\n color: var(--#{$prefix}body-color);\n background-color: var(--#{$prefix}body-bg);\n border-color: $input-focus-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n }\n\n // Square off the edge that meets the control so the two read as one shape.\n .select2-dropdown--below {\n @include border-top-radius(0);\n }\n\n .select2-dropdown--above {\n @include border-bottom-radius(0);\n }\n\n //\n // Dropdown search field — mirrors `.form-control-sm`\n //\n .select2-search--dropdown {\n padding: $dropdown-padding-y $dropdown-item-padding-x;\n\n .select2-search__field {\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n border: $input-border-width solid $input-border-color;\n @include border-radius($input-border-radius-sm);\n @include transition($input-transition);\n\n &:focus {\n border-color: $input-focus-border-color;\n outline: 0;\n\n @if $enable-shadows {\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n }\n }\n\n //\n // Results\n //\n // Only the top-level list scrolls; nested group lists must not.\n .select2-results > .select2-results__options {\n max-height: 15rem;\n }\n\n .select2-results__option {\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n @include font-size($font-size-base);\n color: var(--#{$prefix}body-color);\n }\n\n .select2-results__option--selected {\n color: var(--#{$prefix}emphasis-color);\n background-color: var(--#{$prefix}tertiary-bg);\n }\n\n .select2-results__option--highlighted.select2-results__option--selectable {\n color: $component-active-color;\n background-color: $component-active-bg;\n }\n\n .select2-results__option--disabled {\n color: var(--#{$prefix}secondary-color);\n }\n\n // Option groups: an unpadded <li> holding a label plus a nested list.\n .select2-results__option--group {\n padding: 0;\n }\n\n .select2-results__group {\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n @include font-size($font-size-sm);\n font-weight: $font-weight-semibold;\n color: var(--#{$prefix}secondary-color);\n text-transform: uppercase;\n letter-spacing: .03em;\n }\n}\n\n//\n// Dark mode — only the caret is a baked-in colour; every other value above\n// already reads a Bootstrap CSS variable and follows `data-bs-theme` for free.\n//\n@if $enable-dark-mode {\n @include color-mode(dark, true) {\n .select2-container--default .select2-selection--single {\n --#{$lte-prefix}select2-bg-img: #{escape-svg($form-select-indicator-dark)};\n }\n }\n}\n\n//\n// Sizing — driven by the class already on the original <select>, which Select2\n// leaves in the DOM immediately before the container it generates. No extra\n// `containerCssClass` option needed.\n//\n.form-select-sm,\n.form-control-sm {\n + .select2-container--default .select2-selection--single {\n padding-top: $form-select-padding-y-sm;\n padding-bottom: $form-select-padding-y-sm;\n padding-left: $form-select-padding-x-sm;\n @include font-size($form-select-font-size-sm);\n @include border-radius($form-select-border-radius-sm);\n }\n\n + .select2-container--default .select2-selection--multiple {\n min-height: $input-height-sm;\n padding: ($input-padding-y-sm - $lte-select2-choice-padding-y) $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n @include border-radius($input-border-radius-sm);\n }\n}\n\n.form-select-lg,\n.form-control-lg {\n + .select2-container--default .select2-selection--single {\n padding-top: $form-select-padding-y-lg;\n padding-bottom: $form-select-padding-y-lg;\n padding-left: $form-select-padding-x-lg;\n @include font-size($form-select-font-size-lg);\n @include border-radius($form-select-border-radius-lg);\n }\n\n + .select2-container--default .select2-selection--multiple {\n min-height: $input-height-lg;\n padding: ($input-padding-y-lg - $lte-select2-choice-padding-y) $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n @include border-radius($input-border-radius-lg);\n }\n}\n\n//\n// Validation states — same trigger as Bootstrap's, `.is-invalid` / `.is-valid`\n// on the field itself.\n//\n.is-invalid + .select2-container--default {\n .select2-selection--single,\n .select2-selection--multiple {\n border-color: var(--#{$prefix}form-invalid-border-color);\n }\n\n &.select2-container--focus,\n &.select2-container--open {\n .select2-selection--single,\n .select2-selection--multiple {\n box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}danger-rgb), $input-btn-focus-color-opacity);\n }\n }\n}\n\n.is-valid + .select2-container--default {\n .select2-selection--single,\n .select2-selection--multiple {\n border-color: var(--#{$prefix}form-valid-border-color);\n }\n\n &.select2-container--focus,\n &.select2-container--open {\n .select2-selection--single,\n .select2-selection--multiple {\n box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}success-rgb), $input-btn-focus-color-opacity);\n }\n }\n}\n\n//\n// Input groups — the container has to behave like the `.form-control` it\n// replaced, and only the outer corners stay rounded.\n//\n.input-group > .select2-container--default {\n flex: 1 1 auto;\n // Select2 writes `width` as an inline style, so `!important` is the only way\n // to hand sizing back to the flex container. Matches `.form-control`'s own\n // input-group sizing.\n width: 1% !important;\n min-width: 0;\n\n &:not(:last-child) .select2-selection {\n @include border-end-radius(0);\n }\n\n &:not(:first-child) .select2-selection {\n @include border-start-radius(0);\n }\n\n // An open dropdown has to sit above the neighbouring input-group children,\n // which Bootstrap raises to z-index 5 on focus.\n &.select2-container--open {\n z-index: 5;\n }\n}\n\n//\n// Stacking — Select2 appends the dropdown's container to <body> at z-index\n// 1051, which is below Bootstrap 5's modal (1055).\n//\n.select2-container--open {\n z-index: $lte-select2-zindex;\n}\n\n.select2-close-mask {\n z-index: $lte-select2-zindex - 1;\n}\n","// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query () {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query () {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + \" \" + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + \" \" + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + \" \" + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + \" calc(\" + $min-width + if($value < 0, \" - \", \" + \") + $variable-width + \")\";\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule () {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule () {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if type-of($value) == number {\n $return: append($return, max($value, 0));\n } @else {\n $return: append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n","@mixin box-shadow($shadow...) {\n @if $enable-shadows {\n $result: ();\n $has-single-value: false;\n $single-value: null;\n\n @each $value in $shadow {\n @if $value != null {\n @if $value == none or $value == initial or $value == inherit or $value == unset {\n $has-single-value: true;\n $single-value: $value;\n } @else {\n $result: append($result, $value, \"comma\");\n }\n }\n }\n\n @if $has-single-value {\n box-shadow: $single-value;\n } @else if (length($result) > 0) {\n box-shadow: $result;\n }\n }\n}\n","// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-reduced-motion and nth($transition, 1) != null and nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","@charset \"UTF-8\";\n/*!\n * AdminLTE v4.4.0 — Select2 compatibility theme\n * Styling only. AdminLTE bundles neither Select2 nor jQuery; this optional\n * sheet makes a Select2 you load yourself match Bootstrap 5.3 form controls,\n * including `data-bs-theme` dark mode. Load it AFTER select2.css.\n * New code should prefer Tom Select — see docs/integrations.html.\n *\n * Author: Colorlib\n * Website: AdminLTE.io <https://adminlte.io>\n * License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n.select2-container {\n max-width: 100%;\n vertical-align: top;\n}\n\n.select2-container--default .select2-selection--single {\n --lte-select2-bg-img: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n height: auto;\n padding: 0.375rem 0.75rem 0.375rem 2.25rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n background-color: var(--bs-body-bg);\n background-image: var(--lte-select2-bg-img);\n background-repeat: no-repeat;\n background-position: left 0.75rem center;\n background-size: 16px 12px;\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n box-shadow: var(--bs-box-shadow-inset);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .select2-container--default .select2-selection--single {\n transition: none;\n }\n}\n.select2-container--default .select2-selection--single .select2-selection__rendered {\n padding: 0;\n line-height: inherit;\n color: inherit;\n}\n.select2-container--default .select2-selection--single .select2-selection__placeholder {\n color: var(--bs-secondary-color);\n}\n.select2-container--default .select2-selection--single .select2-selection__arrow {\n display: none;\n}\n.select2-container--default .select2-selection--multiple {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n align-items: center;\n min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));\n padding: 0.3125rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n background-color: var(--bs-body-bg);\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n box-shadow: var(--bs-box-shadow-inset);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .select2-container--default .select2-selection--multiple {\n transition: none;\n }\n}\n.select2-container--default .select2-selection--multiple .select2-selection__rendered {\n display: contents;\n padding: 0;\n margin: 0;\n line-height: inherit;\n}\n.select2-container--default .select2-selection--multiple .select2-selection__choice {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n padding: 0;\n margin: 0;\n overflow: hidden;\n font-size: 0.875rem;\n color: var(--bs-body-color);\n background-color: var(--bs-secondary-bg);\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: 0.25rem;\n}\n.select2-container--default .select2-selection--multiple .select2-selection__choice__display {\n padding: 0.0625rem 0.375rem;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n position: static;\n display: flex;\n align-items: center;\n align-self: stretch;\n padding: 0 0.375rem;\n color: var(--bs-secondary-color);\n background-color: transparent;\n border: 0;\n border-left: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n transition: none;\n }\n}\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover, .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus-visible {\n color: var(--bs-danger-text-emphasis);\n background-color: var(--bs-danger-bg-subtle);\n}\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.select2-container--default .select2-selection--multiple .select2-search--inline {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n min-width: 3rem;\n}\n.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {\n height: 1.5em;\n min-height: 0;\n padding: 0;\n margin: 0;\n font-family: inherit;\n font-size: 1rem;\n line-height: 1.5;\n color: inherit;\n}\n.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field::placeholder {\n color: var(--bs-secondary-color);\n}\n.select2-container--default .select2-selection__clear {\n padding: 0;\n margin: 0;\n color: var(--bs-secondary-color);\n background-color: transparent;\n border: 0;\n}\n.select2-container--default .select2-selection__clear:hover {\n color: var(--bs-danger);\n}\n.select2-container--default .select2-selection--single .select2-selection__clear {\n float: left;\n margin-left: 0.25rem;\n}\n.select2-container--default .select2-selection--multiple .select2-selection__clear {\n top: 0.375rem;\n margin-top: 0;\n margin-left: 0.25rem;\n}\n.select2-container--default.select2-container--focus .select2-selection--single,\n.select2-container--default.select2-container--focus .select2-selection--multiple, .select2-container--default.select2-container--open .select2-selection--single,\n.select2-container--default.select2-container--open .select2-selection--multiple {\n border-color: rgb(52.5490196078%, 71.568627451%, 99.6078431373%);\n outline: 0;\n box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.select2-container--default.select2-container--disabled .select2-selection--single,\n.select2-container--default.select2-container--disabled .select2-selection--multiple {\n cursor: default;\n background-color: var(--bs-secondary-bg);\n}\n.select2-container--default.select2-container--disabled .select2-selection__choice__remove {\n display: none;\n}\n.select2-container--default .select2-dropdown {\n color: var(--bs-body-color);\n background-color: var(--bs-body-bg);\n border-color: rgb(52.5490196078%, 71.568627451%, 99.6078431373%);\n border-radius: var(--bs-border-radius);\n box-shadow: var(--bs-box-shadow);\n}\n.select2-container--default .select2-dropdown--below {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.select2-container--default .select2-dropdown--above {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n.select2-container--default .select2-search--dropdown {\n padding: 0.5rem 1rem;\n}\n.select2-container--default .select2-search--dropdown .select2-search__field {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: var(--bs-body-color);\n background-color: var(--bs-body-bg);\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius-sm);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .select2-container--default .select2-search--dropdown .select2-search__field {\n transition: none;\n }\n}\n.select2-container--default .select2-search--dropdown .select2-search__field:focus {\n border-color: rgb(52.5490196078%, 71.568627451%, 99.6078431373%);\n outline: 0;\n box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.select2-container--default .select2-results > .select2-results__options {\n max-height: 15rem;\n}\n.select2-container--default .select2-results__option {\n padding: 0.25rem 1rem;\n font-size: 1rem;\n color: var(--bs-body-color);\n}\n.select2-container--default .select2-results__option--selected {\n color: var(--bs-emphasis-color);\n background-color: var(--bs-tertiary-bg);\n}\n.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {\n color: #fff;\n background-color: #0d6efd;\n}\n.select2-container--default .select2-results__option--disabled {\n color: var(--bs-secondary-color);\n}\n.select2-container--default .select2-results__option--group {\n padding: 0;\n}\n.select2-container--default .select2-results__group {\n padding: 0.25rem 1rem;\n font-size: 0.875rem;\n font-weight: 600;\n color: var(--bs-secondary-color);\n text-transform: uppercase;\n letter-spacing: 0.03em;\n}\n\n[data-bs-theme=dark] .select2-container--default .select2-selection--single {\n --lte-select2-bg-img: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n}\n\n.form-select-sm + .select2-container--default .select2-selection--single,\n.form-control-sm + .select2-container--default .select2-selection--single {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-right: 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n.form-select-sm + .select2-container--default .select2-selection--multiple,\n.form-control-sm + .select2-container--default .select2-selection--multiple {\n min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n padding: 0.1875rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n\n.form-select-lg + .select2-container--default .select2-selection--single,\n.form-control-lg + .select2-container--default .select2-selection--single {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-right: 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n.form-select-lg + .select2-container--default .select2-selection--multiple,\n.form-control-lg + .select2-container--default .select2-selection--multiple {\n min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n padding: 0.4375rem 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n\n.is-invalid + .select2-container--default .select2-selection--single,\n.is-invalid + .select2-container--default .select2-selection--multiple {\n border-color: var(--bs-form-invalid-border-color);\n}\n.is-invalid + .select2-container--default.select2-container--focus .select2-selection--single,\n.is-invalid + .select2-container--default.select2-container--focus .select2-selection--multiple, .is-invalid + .select2-container--default.select2-container--open .select2-selection--single,\n.is-invalid + .select2-container--default.select2-container--open .select2-selection--multiple {\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);\n}\n\n.is-valid + .select2-container--default .select2-selection--single,\n.is-valid + .select2-container--default .select2-selection--multiple {\n border-color: var(--bs-form-valid-border-color);\n}\n.is-valid + .select2-container--default.select2-container--focus .select2-selection--single,\n.is-valid + .select2-container--default.select2-container--focus .select2-selection--multiple, .is-valid + .select2-container--default.select2-container--open .select2-selection--single,\n.is-valid + .select2-container--default.select2-container--open .select2-selection--multiple {\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);\n}\n\n.input-group > .select2-container--default {\n flex: 1 1 auto;\n width: 1% !important;\n min-width: 0;\n}\n.input-group > .select2-container--default:not(:last-child) .select2-selection {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group > .select2-container--default:not(:first-child) .select2-selection {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > .select2-container--default.select2-container--open {\n z-index: 5;\n}\n\n.select2-container--open {\n z-index: 1060;\n}\n\n.select2-close-mask {\n z-index: 1059;\n}\n/*# sourceMappingURL=adminlte-select2.rtl.css.map */"]}
@@ -1,6 +1,6 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * AdminLTE v4.2.0
3
+ * AdminLTE v4.4.0
4
4
  * Author: Colorlib
5
5
  * Website: AdminLTE.io <https://adminlte.io>
6
6
  * License: Open source - MIT <https://opensource.org/licenses/MIT>
@@ -12850,6 +12850,85 @@ textarea.form-control-lg {
12850
12850
  height: 2.5rem;
12851
12851
  }
12852
12852
 
12853
+ .navbar-search {
12854
+ --lte-search-field-width: 14rem;
12855
+ --lte-search-field-focus-width: 18rem;
12856
+ --lte-search-field-bg: rgba(var(--bs-emphasis-color-rgb), .06);
12857
+ --lte-search-field-hover-bg: rgba(var(--bs-emphasis-color-rgb), .09);
12858
+ --lte-search-field-focus-bg: rgba(var(--bs-emphasis-color-rgb), .1);
12859
+ --lte-search-field-border-color: rgba(var(--bs-emphasis-color-rgb), .1);
12860
+ --lte-search-field-focus-border-color: rgba(var(--bs-emphasis-color-rgb), .35);
12861
+ --lte-search-field-focus-ring: 0 0 0 .2rem rgba(var(--bs-emphasis-color-rgb), .12);
12862
+ --lte-search-field-color: var(--bs-body-color);
12863
+ --lte-search-field-placeholder-color: var(--bs-secondary-color);
12864
+ --lte-search-field-icon-color: var(--bs-secondary-color);
12865
+ }
12866
+ .navbar-search .form-control {
12867
+ padding: 0.3rem 0.75rem;
12868
+ font-size: 0.875rem;
12869
+ color: var(--lte-search-field-color);
12870
+ background-color: var(--lte-search-field-bg);
12871
+ border-color: var(--lte-search-field-border-color);
12872
+ box-shadow: none;
12873
+ border-radius: 50rem;
12874
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
12875
+ }
12876
+ @media (prefers-reduced-motion: reduce) {
12877
+ .navbar-search .form-control {
12878
+ transition: none;
12879
+ }
12880
+ }
12881
+ .navbar-search .form-control::placeholder {
12882
+ color: var(--lte-search-field-placeholder-color);
12883
+ opacity: 1;
12884
+ }
12885
+ .navbar-search .form-control:hover {
12886
+ background-color: var(--lte-search-field-hover-bg);
12887
+ }
12888
+ .navbar-search .form-control:focus {
12889
+ background-color: var(--lte-search-field-focus-bg);
12890
+ border-color: var(--lte-search-field-focus-border-color);
12891
+ box-shadow: var(--lte-search-field-focus-ring);
12892
+ }
12893
+ .navbar-search .navbar-search-field {
12894
+ position: relative;
12895
+ width: var(--lte-search-field-width);
12896
+ max-width: 100%;
12897
+ transition: width 0.2s ease-in-out;
12898
+ }
12899
+ @media (prefers-reduced-motion: reduce) {
12900
+ .navbar-search .navbar-search-field {
12901
+ transition: none;
12902
+ }
12903
+ }
12904
+ .navbar-search:focus-within .navbar-search-field {
12905
+ width: var(--lte-search-field-focus-width);
12906
+ }
12907
+ .navbar-search .form-control {
12908
+ padding-left: 2.125rem;
12909
+ }
12910
+ .navbar-search .navbar-search-submit {
12911
+ position: absolute;
12912
+ top: 50%;
12913
+ left: 0.75rem;
12914
+ display: flex;
12915
+ align-items: center;
12916
+ padding: 0;
12917
+ line-height: 1;
12918
+ color: var(--lte-search-field-icon-color);
12919
+ background: transparent;
12920
+ border: 0;
12921
+ transform: translateY(-50%);
12922
+ border-radius: 50rem;
12923
+ }
12924
+ .navbar-search .navbar-search-submit:hover, .navbar-search .navbar-search-submit:focus-visible {
12925
+ color: var(--lte-search-field-color);
12926
+ }
12927
+ .navbar-search .navbar-search-submit:focus-visible {
12928
+ outline: 2px solid var(--bs-focus-ring-color);
12929
+ outline-offset: 2px;
12930
+ }
12931
+
12853
12932
  .navbar-badge {
12854
12933
  position: absolute;
12855
12934
  top: 9px;
@@ -12871,7 +12950,6 @@ textarea.form-control-lg {
12871
12950
  max-height: 100vh;
12872
12951
  }
12873
12952
  .fixed-header.sidebar-expand-sm .app-sidebar .sidebar-wrapper {
12874
- height: calc(100vh - (calc(3.5rem + 1px)));
12875
12953
  overflow-x: hidden;
12876
12954
  overflow-y: auto;
12877
12955
  }
@@ -12883,7 +12961,6 @@ textarea.form-control-lg {
12883
12961
  max-height: 100vh;
12884
12962
  }
12885
12963
  .fixed-header.sidebar-expand-md .app-sidebar .sidebar-wrapper {
12886
- height: calc(100vh - (calc(3.5rem + 1px)));
12887
12964
  overflow-x: hidden;
12888
12965
  overflow-y: auto;
12889
12966
  }
@@ -12895,7 +12972,6 @@ textarea.form-control-lg {
12895
12972
  max-height: 100vh;
12896
12973
  }
12897
12974
  .fixed-header.sidebar-expand-lg .app-sidebar .sidebar-wrapper {
12898
- height: calc(100vh - (calc(3.5rem + 1px)));
12899
12975
  overflow-x: hidden;
12900
12976
  overflow-y: auto;
12901
12977
  }
@@ -12907,7 +12983,6 @@ textarea.form-control-lg {
12907
12983
  max-height: 100vh;
12908
12984
  }
12909
12985
  .fixed-header.sidebar-expand-xl .app-sidebar .sidebar-wrapper {
12910
- height: calc(100vh - (calc(3.5rem + 1px)));
12911
12986
  overflow-x: hidden;
12912
12987
  overflow-y: auto;
12913
12988
  }
@@ -12919,7 +12994,6 @@ textarea.form-control-lg {
12919
12994
  max-height: 100vh;
12920
12995
  }
12921
12996
  .fixed-header.sidebar-expand-xxl .app-sidebar .sidebar-wrapper {
12922
- height: calc(100vh - (calc(3.5rem + 1px)));
12923
12997
  overflow-x: hidden;
12924
12998
  overflow-y: auto;
12925
12999
  }
@@ -12930,7 +13004,6 @@ textarea.form-control-lg {
12930
13004
  max-height: 100vh;
12931
13005
  }
12932
13006
  .fixed-header.sidebar-expand .app-sidebar .sidebar-wrapper {
12933
- height: calc(100vh - (calc(3.5rem + 1px)));
12934
13007
  overflow-x: hidden;
12935
13008
  overflow-y: auto;
12936
13009
  }
@@ -12950,6 +13023,8 @@ textarea.form-control-lg {
12950
13023
  --lte-sidebar-submenu-active-bg: rgba(0, 0, 0, 0.1);
12951
13024
  --lte-sidebar-header-color: rgb(19.3725490196%, 21.6078431373%, 23.8431372549%);
12952
13025
  z-index: 1038;
13026
+ display: flex;
13027
+ flex-direction: column;
12953
13028
  grid-area: lte-app-sidebar;
12954
13029
  min-width: var(--lte-sidebar-width);
12955
13030
  max-width: var(--lte-sidebar-width);
@@ -12963,6 +13038,7 @@ textarea.form-control-lg {
12963
13038
 
12964
13039
  .sidebar-brand {
12965
13040
  display: flex;
13041
+ flex: 0 0 auto;
12966
13042
  align-items: center;
12967
13043
  justify-content: center;
12968
13044
  height: 3.5rem;
@@ -13019,6 +13095,8 @@ textarea.form-control-lg {
13019
13095
  }
13020
13096
 
13021
13097
  .sidebar-wrapper {
13098
+ flex: 1 1 auto;
13099
+ min-height: 0;
13022
13100
  padding-top: 0.5rem;
13023
13101
  padding-right: 0.5rem;
13024
13102
  padding-bottom: 0.5rem;
@@ -13217,6 +13295,47 @@ textarea.form-control-lg {
13217
13295
  white-space: nowrap;
13218
13296
  }
13219
13297
 
13298
+ .sidebar-search {
13299
+ flex: 0 0 auto;
13300
+ padding: 0.5rem 1rem;
13301
+ --lte-search-field-bg: rgba(var(--bs-emphasis-color-rgb), .06);
13302
+ --lte-search-field-hover-bg: rgba(var(--bs-emphasis-color-rgb), .09);
13303
+ --lte-search-field-focus-bg: rgba(var(--bs-emphasis-color-rgb), .1);
13304
+ --lte-search-field-border-color: rgba(var(--bs-emphasis-color-rgb), .1);
13305
+ --lte-search-field-focus-border-color: rgba(var(--bs-emphasis-color-rgb), .35);
13306
+ --lte-search-field-focus-ring: 0 0 0 .2rem rgba(var(--bs-emphasis-color-rgb), .12);
13307
+ --lte-search-field-color: var(--bs-body-color);
13308
+ --lte-search-field-placeholder-color: var(--bs-secondary-color);
13309
+ --lte-search-field-icon-color: var(--bs-secondary-color);
13310
+ }
13311
+ .sidebar-search .form-control {
13312
+ padding: 0.3rem 0.75rem;
13313
+ font-size: 0.875rem;
13314
+ color: var(--lte-search-field-color);
13315
+ background-color: var(--lte-search-field-bg);
13316
+ border-color: var(--lte-search-field-border-color);
13317
+ box-shadow: none;
13318
+ border-radius: 50rem;
13319
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
13320
+ }
13321
+ @media (prefers-reduced-motion: reduce) {
13322
+ .sidebar-search .form-control {
13323
+ transition: none;
13324
+ }
13325
+ }
13326
+ .sidebar-search .form-control::placeholder {
13327
+ color: var(--lte-search-field-placeholder-color);
13328
+ opacity: 1;
13329
+ }
13330
+ .sidebar-search .form-control:hover {
13331
+ background-color: var(--lte-search-field-hover-bg);
13332
+ }
13333
+ .sidebar-search .form-control:focus {
13334
+ background-color: var(--lte-search-field-focus-bg);
13335
+ border-color: var(--lte-search-field-focus-border-color);
13336
+ box-shadow: var(--lte-search-field-focus-ring);
13337
+ }
13338
+
13220
13339
  .logo-xs,
13221
13340
  .logo-xl {
13222
13341
  position: absolute;
@@ -13254,6 +13373,9 @@ textarea.form-control-lg {
13254
13373
  .sidebar-mini.sidebar-collapse .sidebar-menu .nav-header {
13255
13374
  display: none;
13256
13375
  }
13376
+ .sidebar-mini.sidebar-collapse .app-sidebar:not(:hover) .sidebar-search {
13377
+ display: none;
13378
+ }
13257
13379
  .sidebar-mini.sidebar-collapse .sidebar-menu .nav-link {
13258
13380
  width: 3.6rem;
13259
13381
  }
@@ -13364,7 +13486,6 @@ textarea.form-control-lg {
13364
13486
  max-height: 100vh;
13365
13487
  }
13366
13488
  .sidebar-expand-sm.layout-fixed .app-sidebar .sidebar-wrapper {
13367
- height: calc(100vh - (calc(3.5rem + 1px)));
13368
13489
  overflow-x: hidden;
13369
13490
  overflow-y: auto;
13370
13491
  }
@@ -13396,7 +13517,6 @@ textarea.form-control-lg {
13396
13517
  margin-left: calc(var(--lte-sidebar-width) * -1);
13397
13518
  }
13398
13519
  .sidebar-expand-sm .app-sidebar .sidebar-wrapper {
13399
- height: calc(100vh - (calc(3.5rem + 1px)));
13400
13520
  overflow-x: hidden;
13401
13521
  overflow-y: auto;
13402
13522
  }
@@ -13439,7 +13559,6 @@ textarea.form-control-lg {
13439
13559
  max-height: 100vh;
13440
13560
  }
13441
13561
  .sidebar-expand-md.layout-fixed .app-sidebar .sidebar-wrapper {
13442
- height: calc(100vh - (calc(3.5rem + 1px)));
13443
13562
  overflow-x: hidden;
13444
13563
  overflow-y: auto;
13445
13564
  }
@@ -13471,7 +13590,6 @@ textarea.form-control-lg {
13471
13590
  margin-left: calc(var(--lte-sidebar-width) * -1);
13472
13591
  }
13473
13592
  .sidebar-expand-md .app-sidebar .sidebar-wrapper {
13474
- height: calc(100vh - (calc(3.5rem + 1px)));
13475
13593
  overflow-x: hidden;
13476
13594
  overflow-y: auto;
13477
13595
  }
@@ -13514,7 +13632,6 @@ textarea.form-control-lg {
13514
13632
  max-height: 100vh;
13515
13633
  }
13516
13634
  .sidebar-expand-lg.layout-fixed .app-sidebar .sidebar-wrapper {
13517
- height: calc(100vh - (calc(3.5rem + 1px)));
13518
13635
  overflow-x: hidden;
13519
13636
  overflow-y: auto;
13520
13637
  }
@@ -13546,7 +13663,6 @@ textarea.form-control-lg {
13546
13663
  margin-left: calc(var(--lte-sidebar-width) * -1);
13547
13664
  }
13548
13665
  .sidebar-expand-lg .app-sidebar .sidebar-wrapper {
13549
- height: calc(100vh - (calc(3.5rem + 1px)));
13550
13666
  overflow-x: hidden;
13551
13667
  overflow-y: auto;
13552
13668
  }
@@ -13589,7 +13705,6 @@ textarea.form-control-lg {
13589
13705
  max-height: 100vh;
13590
13706
  }
13591
13707
  .sidebar-expand-xl.layout-fixed .app-sidebar .sidebar-wrapper {
13592
- height: calc(100vh - (calc(3.5rem + 1px)));
13593
13708
  overflow-x: hidden;
13594
13709
  overflow-y: auto;
13595
13710
  }
@@ -13621,7 +13736,6 @@ textarea.form-control-lg {
13621
13736
  margin-left: calc(var(--lte-sidebar-width) * -1);
13622
13737
  }
13623
13738
  .sidebar-expand-xl .app-sidebar .sidebar-wrapper {
13624
- height: calc(100vh - (calc(3.5rem + 1px)));
13625
13739
  overflow-x: hidden;
13626
13740
  overflow-y: auto;
13627
13741
  }
@@ -13664,7 +13778,6 @@ textarea.form-control-lg {
13664
13778
  max-height: 100vh;
13665
13779
  }
13666
13780
  .sidebar-expand-xxl.layout-fixed .app-sidebar .sidebar-wrapper {
13667
- height: calc(100vh - (calc(3.5rem + 1px)));
13668
13781
  overflow-x: hidden;
13669
13782
  overflow-y: auto;
13670
13783
  }
@@ -13696,7 +13809,6 @@ textarea.form-control-lg {
13696
13809
  margin-left: calc(var(--lte-sidebar-width) * -1);
13697
13810
  }
13698
13811
  .sidebar-expand-xxl .app-sidebar .sidebar-wrapper {
13699
- height: calc(100vh - (calc(3.5rem + 1px)));
13700
13812
  overflow-x: hidden;
13701
13813
  overflow-y: auto;
13702
13814
  }
@@ -13738,7 +13850,6 @@ textarea.form-control-lg {
13738
13850
  max-height: 100vh;
13739
13851
  }
13740
13852
  .sidebar-expand.layout-fixed .app-sidebar .sidebar-wrapper {
13741
- height: calc(100vh - (calc(3.5rem + 1px)));
13742
13853
  overflow-x: hidden;
13743
13854
  overflow-y: auto;
13744
13855
  }
@@ -13768,7 +13879,6 @@ textarea.form-control-lg {
13768
13879
  margin-left: calc(var(--lte-sidebar-width) * -1);
13769
13880
  }
13770
13881
  .sidebar-expand .app-sidebar .sidebar-wrapper {
13771
- height: calc(100vh - (calc(3.5rem + 1px)));
13772
13882
  overflow-x: hidden;
13773
13883
  overflow-y: auto;
13774
13884
  }
@@ -15252,6 +15362,200 @@ html.maximized-card {
15252
15362
  [data-bs-theme=dark] .toast-light .btn-close {
15253
15363
  --bs-btn-close-white-filter: none;
15254
15364
  }
15365
+ .ribbon-wrapper {
15366
+ --lte-ribbon-size: 70px;
15367
+ --lte-ribbon-width: 91px;
15368
+ --lte-ribbon-font-size: 0.8rem;
15369
+ position: absolute;
15370
+ top: 0;
15371
+ right: 0;
15372
+ z-index: 1;
15373
+ width: var(--lte-ribbon-size);
15374
+ height: var(--lte-ribbon-size);
15375
+ overflow: hidden;
15376
+ border-top-right-radius: inherit;
15377
+ }
15378
+ .ribbon-wrapper.ribbon-lg {
15379
+ --lte-ribbon-size: 110px;
15380
+ --lte-ribbon-width: 143px;
15381
+ --lte-ribbon-font-size: 1rem;
15382
+ }
15383
+ .ribbon-wrapper.ribbon-xl {
15384
+ --lte-ribbon-size: 145px;
15385
+ --lte-ribbon-width: 188.5px;
15386
+ --lte-ribbon-font-size: 1.25rem;
15387
+ }
15388
+ .ribbon-wrapper .ribbon {
15389
+ position: absolute;
15390
+ top: 32.5%;
15391
+ left: 67.5%;
15392
+ width: var(--lte-ribbon-width);
15393
+ padding: 0.375rem 0;
15394
+ overflow: hidden;
15395
+ font-size: var(--lte-ribbon-font-size);
15396
+ font-weight: 400;
15397
+ line-height: 1.2;
15398
+ color: var(--bs-emphasis-color);
15399
+ text-align: center;
15400
+ text-overflow: ellipsis;
15401
+ text-transform: uppercase;
15402
+ white-space: nowrap;
15403
+ background-color: var(--bs-secondary-bg);
15404
+ box-shadow: 0 0 3px rgba(var(--bs-body-color-rgb), 0.3);
15405
+ transform: translate(-50%, -50%) rotate(45deg);
15406
+ }
15407
+ .ribbon-wrapper .ribbon a {
15408
+ color: inherit;
15409
+ text-decoration: none;
15410
+ }
15411
+
15412
+ .user-block {
15413
+ --lte-user-block-avatar-size: 2.5rem;
15414
+ display: grid;
15415
+ grid-template-columns: auto 1fr;
15416
+ -moz-column-gap: 0.75rem;
15417
+ column-gap: 0.75rem;
15418
+ align-items: center;
15419
+ }
15420
+ .user-block > img {
15421
+ grid-row: 1/span 2;
15422
+ align-self: center;
15423
+ width: var(--lte-user-block-avatar-size);
15424
+ height: var(--lte-user-block-avatar-size);
15425
+ -o-object-fit: cover;
15426
+ object-fit: cover;
15427
+ }
15428
+ .user-block .username,
15429
+ .user-block .description,
15430
+ .user-block .comment {
15431
+ grid-column: 2;
15432
+ }
15433
+ .user-block .username {
15434
+ align-self: end;
15435
+ font-size: 1rem;
15436
+ font-weight: 600;
15437
+ }
15438
+ .user-block .username a {
15439
+ color: var(--bs-emphasis-color);
15440
+ text-decoration: none;
15441
+ }
15442
+ .user-block .username a:hover, .user-block .username a:focus-visible {
15443
+ text-decoration: underline;
15444
+ }
15445
+ .user-block .description {
15446
+ align-self: start;
15447
+ font-size: 0.8125rem;
15448
+ color: var(--bs-secondary-color);
15449
+ }
15450
+ .user-block .comment {
15451
+ margin-top: 0.5rem;
15452
+ }
15453
+ .card-header > .user-block {
15454
+ float: left;
15455
+ }
15456
+ .user-block.user-block-sm {
15457
+ --lte-user-block-avatar-size: 1.75rem;
15458
+ }
15459
+ .user-block.user-block-sm .username {
15460
+ font-size: 0.8125rem;
15461
+ }
15462
+ .user-block.user-block-sm .description {
15463
+ font-size: 0.75rem;
15464
+ }
15465
+
15466
+ .post {
15467
+ padding-bottom: 1rem;
15468
+ margin-bottom: 1rem;
15469
+ border-bottom: 1px solid var(--bs-border-color);
15470
+ }
15471
+ .post:last-of-type {
15472
+ padding-bottom: 0;
15473
+ margin-bottom: 0;
15474
+ border-bottom: 0;
15475
+ }
15476
+ .post .user-block {
15477
+ margin-bottom: 0.75rem;
15478
+ }
15479
+
15480
+ .description-block {
15481
+ display: block;
15482
+ margin: 0.625rem 0;
15483
+ text-align: center;
15484
+ }
15485
+ .description-block .description-header {
15486
+ padding: 0;
15487
+ margin: 0;
15488
+ font-size: 1.0625rem;
15489
+ font-weight: 700;
15490
+ }
15491
+ .description-block .description-text {
15492
+ font-size: 0.8125rem;
15493
+ color: var(--bs-secondary-color);
15494
+ text-transform: uppercase;
15495
+ }
15496
+
15497
+ .widget-user .widget-user-header {
15498
+ height: 8.4375rem;
15499
+ padding: 1rem;
15500
+ text-align: center;
15501
+ background-position: center;
15502
+ background-size: cover;
15503
+ border-top-left-radius: inherit;
15504
+ border-top-right-radius: inherit;
15505
+ }
15506
+ .widget-user .widget-user-username {
15507
+ margin-top: 0;
15508
+ margin-bottom: 0.3125rem;
15509
+ font-size: 1.5625rem;
15510
+ font-weight: 300;
15511
+ }
15512
+ .widget-user .widget-user-desc {
15513
+ margin-top: 0;
15514
+ font-size: 1rem;
15515
+ }
15516
+ .widget-user .widget-user-image {
15517
+ position: absolute;
15518
+ top: 5.625rem;
15519
+ right: 0;
15520
+ left: 0;
15521
+ width: 5.625rem;
15522
+ margin-inline: auto;
15523
+ }
15524
+ .widget-user .widget-user-image > img {
15525
+ width: 100%;
15526
+ height: auto;
15527
+ border: 3px solid var(--bs-body-bg);
15528
+ }
15529
+ .widget-user > .card-footer {
15530
+ padding-top: 3.5625rem;
15531
+ }
15532
+
15533
+ .widget-user-2 .widget-user-header {
15534
+ display: flex;
15535
+ -moz-column-gap: 1rem;
15536
+ column-gap: 1rem;
15537
+ align-items: center;
15538
+ padding: 1rem;
15539
+ border-top-left-radius: inherit;
15540
+ border-top-right-radius: inherit;
15541
+ }
15542
+ .widget-user-2 .widget-user-image > img {
15543
+ width: 4.0625rem;
15544
+ height: 4.0625rem;
15545
+ -o-object-fit: cover;
15546
+ object-fit: cover;
15547
+ }
15548
+ .widget-user-2 .widget-user-username {
15549
+ margin-top: 0;
15550
+ margin-bottom: 0.3125rem;
15551
+ font-size: 1.5625rem;
15552
+ font-weight: 300;
15553
+ }
15554
+ .widget-user-2 .widget-user-desc {
15555
+ margin-top: 0;
15556
+ font-size: 1rem;
15557
+ }
15558
+
15255
15559
  .login-logo,
15256
15560
  .register-logo {
15257
15561
  margin-bottom: 0.9rem;