From 965ffd54f864583ce81321f485fb7f85dbb33630 Mon Sep 17 00:00:00 2001 From: schnulller Date: Tue, 7 Jun 2022 19:02:49 +0200 Subject: [PATCH 1/4] Reworked Publish View --- HaWeb/Controllers/APIController.cs | 7 +-- HaWeb/FileHelpers/XMLProvider.cs | 2 +- HaWeb/Models/FileList.cs | 4 +- HaWeb/Views/Admin/Upload/Index.cshtml | 56 +++-------------- HaWeb/Views/Shared/_FileList.cshtml | 10 +-- HaWeb/Views/Shared/_PublishForm.cshtml | 76 +++++++++++++++++++++++ HaWeb/wwwroot/css/output.css | 85 ++++++++++++++++++-------- HaWeb/wwwroot/css/site.css | 42 ++++++++----- HaWeb/wwwroot/js/site.js | 4 +- 9 files changed, 185 insertions(+), 101 deletions(-) create mode 100644 HaWeb/Views/Shared/_PublishForm.cshtml diff --git a/HaWeb/Controllers/APIController.cs b/HaWeb/Controllers/APIController.cs index 6752cf1..3e61d3a 100644 --- a/HaWeb/Controllers/APIController.cs +++ b/HaWeb/Controllers/APIController.cs @@ -300,9 +300,6 @@ public class APIController : Controller { continue; } - filename = XMLFileHelpers.StreamToString(section.Body, ModelState); - if (!ModelState.IsValid) return BadRequest(ModelState); - if (hasContentDispositionHeader && contentDisposition != null) { if (!MultipartRequestHelper.HasFormDataContentDisposition(contentDisposition)) { ModelState.AddModelError("Error", $"Wrong Content-Dispostion Headers in Multipart Document"); @@ -310,7 +307,7 @@ public class APIController : Controller { } filename = XMLFileHelpers.StreamToString(section.Body, ModelState); - + if (!ModelState.IsValid) return BadRequest(ModelState); } try { @@ -343,6 +340,6 @@ public class APIController : Controller { _xmlProvider.SetInProduction(newFile.First()); _xmlService.UnUseProduction(); - return Created("/", null); + return Created("/", newFile.First()); } } \ No newline at end of file diff --git a/HaWeb/FileHelpers/XMLProvider.cs b/HaWeb/FileHelpers/XMLProvider.cs index aec7ab0..b6953a7 100644 --- a/HaWeb/FileHelpers/XMLProvider.cs +++ b/HaWeb/FileHelpers/XMLProvider.cs @@ -65,7 +65,7 @@ public class XMLProvider : IXMLProvider { public async Task SaveHamannFile(XElement element, string basefilepath, ModelStateDictionary ModelState) { var date = DateTime.Now; - var filename = "hamann_" + date.Year + "-" + date.Month + "-" + date.Day + ".xml"; + var filename = "hamann_" + date.Year + "-" + date.Month + "-" + date.Day + "." + Path.GetRandomFileName() + ".xml"; var directory = Path.Combine(basefilepath, "hamann"); var path = Path.Combine(directory, filename); diff --git a/HaWeb/Models/FileList.cs b/HaWeb/Models/FileList.cs index b22e9cb..37096e4 100644 --- a/HaWeb/Models/FileList.cs +++ b/HaWeb/Models/FileList.cs @@ -17,7 +17,9 @@ public class FileList { throw new Exception("Diese Liste kann nur Elemente des Typs " + XMLRoot.Prefix + " enthalten"); if (_Files == null) _Files = new HashSet(); - if (!_Files.Contains(document)) _Files.Add(document); + var replacing = _Files.Where(x => x.FileName == document.FileName); + if (replacing != null && replacing.Any()) _Files.Remove(replacing.First()); + _Files.Add(document); } public bool Contains(XMLRootDocument doc) { diff --git a/HaWeb/Views/Admin/Upload/Index.cshtml b/HaWeb/Views/Admin/Upload/Index.cshtml index af442ed..74a3d82 100644 --- a/HaWeb/Views/Admin/Upload/Index.cshtml +++ b/HaWeb/Views/Admin/Upload/Index.cshtml @@ -37,16 +37,9 @@ -
- -
- @* Fehler!
*@ - -
-
+ +
Veröffentlichen
+
@@ -82,6 +75,10 @@ @* Start Page File List *@ else { +
+ @await Html.PartialAsync("/Views/Shared/_PublishForm.cshtml", Model) +
+
@await Html.PartialAsync("/Views/Shared/_FileList.cshtml", (Model.HamannFiles, "Verfügbare Hamann-Dateien", "API", "SetUsedHamann", string.Empty, "/Download/XML/", false))
@@ -110,7 +107,6 @@ else { "use strict"; const hideshowfiles = function() { let elem = document.getElementById("ha-availablefileslist"); - console.log("hello!"); if (elem.classList.contains('hidden')) { elem.classList.remove('hidden'); @@ -147,39 +143,6 @@ else { ev.preventDefault(); } - const LOCALPUBLISHSubmit = async function (oFormElement) { - var fd = new FormData(); - document.getElementById("ha-publishfilelabel").style.pointerEvents = "none"; - document.getElementById("ha-lds-ellipsis-publish").style.display = "inline-block"; - document.getElementById("ha-publishmessage").style.opacity = "0"; - await fetch(oFormElement.action, { - method: 'POST', - headers: { - 'RequestVerificationToken': getCookie('RequestVerificationToken') - } - }) - .then(response => response.json()) - .then(json => { - if ("Error" in json) { - document.getElementById("ha-publishfilelabel").style.pointerEvents = "auto"; - document.getElementById("ha-lds-ellipsis-publish").style.display = "none"; - document.getElementById("ha-publishmessage").style.opacity = "1"; - document.getElementById("publish-result").value = json.Error; - } else { - document.getElementById("ha-publishfilelabel").style.pointerEvents = "auto"; - document.getElementById("ha-lds-ellipsis-publish").style.display = "none"; - document.getElementById("ha-publishmessage").style.opacity = "1"; - document.getElementById("publish-result").value = "Erfolg!"; - window.location.replace("/Admin/Upload/"); - } - }) - .catch ((e) => { - document.getElementById("ha-publishfilelabel").style.pointerEvents = "auto"; - document.getElementById("ha-lds-ellipsis-publish").style.display = "none"; - document.getElementById("publish-result").value = "Keine Antwort. Bitte Seite neu laden!"; - }) - } - const UPLOADSubmit = async function (oFormElement, file = null) { var fd = new FormData(); if (file !== null) fd.append("file", file); @@ -230,12 +193,11 @@ else { var submitelement = document.getElementById("file"); var formelement = document.getElementById("uploadForm"); var dropzone = document.getElementById("dropzone"); - var publishelement = document.getElementById("ha-publishform"); - var publishbutton = document.getElementById("ha-publishfilelabel"); + var filesbutton = document.getElementById("ha-availablefiles"); if (filesbutton !== null) filesbutton.addEventListener("click", () => hideshowfiles()); - publishbutton.addEventListener("click", () => LOCALPUBLISHSubmit(publishelement)); + submitelement.addEventListener("change", () => UPLOADSubmit(formelement)); dropzone.addEventListener("drop", (ev) => dropHandler(formelement, ev, dropzone)); dropzone.addEventListener("dragover", (ev) => dragOverHandler(ev, dropzone)); diff --git a/HaWeb/Views/Shared/_FileList.cshtml b/HaWeb/Views/Shared/_FileList.cshtml index babb2ab..9969851 100644 --- a/HaWeb/Views/Shared/_FileList.cshtml +++ b/HaWeb/Views/Shared/_FileList.cshtml @@ -37,11 +37,11 @@ } - + } else { -
Keine Hamann-Dateien gefunden! Es wird eine fallback-Datei verwendet!
+
Keine Dateien gefunden! Es wird eine fallback-Datei verwendet!
} @@ -58,14 +58,16 @@ .then(response => response.json()) .then(json => { if ("Error" in json) { - + document.getElementById("ha-filelistoutput").textContent = json.Error; } else { location.reload(); } }) .catch ((e) => { - location.reload(); + document.getElementById("ha-filelistoutput").textContent = e; }) } + + \ No newline at end of file diff --git a/HaWeb/Views/Shared/_PublishForm.cshtml b/HaWeb/Views/Shared/_PublishForm.cshtml new file mode 100644 index 0000000..5d559b6 --- /dev/null +++ b/HaWeb/Views/Shared/_PublishForm.cshtml @@ -0,0 +1,76 @@ +@model UploadViewModel; +@if (Model.UsedFiles != null && Model.UsedFiles.Any()) { +
Aktuell geladene Dateien
+ + @foreach (var (category, files) in Model.UsedFiles.OrderBy(x => x.Key)) + { + + + + + } +
@Model.AvailableRoots.Where(x => x.Prefix == category).First().Type: + @foreach (var item in files) + { + if (item != files.Last()) { + @item.FileName, + } + else { + @item.FileName + } + } +
+ +
+ +
+ @* Fehler!
*@ + +
+
+} + + \ No newline at end of file diff --git a/HaWeb/wwwroot/css/output.css b/HaWeb/wwwroot/css/output.css index 78468f0..e204015 100644 --- a/HaWeb/wwwroot/css/output.css +++ b/HaWeb/wwwroot/css/output.css @@ -1870,6 +1870,9 @@ body { .ha-adminuploadfields .ha-uploadfield.active { --tw-text-opacity: 1 !important; color: rgb(0 0 0 / var(--tw-text-opacity)) !important; + --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); --tw-brightness: brightness(1.1); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); } @@ -1939,8 +1942,8 @@ body { height: 100%; width: 100%; cursor: pointer; - padding-left: 0.5rem; - padding-right: 0.5rem; + padding-left: 1rem; + padding-right: 1rem; padding-bottom: 0.25rem; padding-top: 0.5rem; } @@ -1960,43 +1963,33 @@ body { line-height: 1.25rem; } -.ha-adminuploadfields .ha-publishform { - position: relative; - flex-grow: 1; - border-radius: 0.25rem; +.ha-adminuploadfields .ha-publishbutton { + display: inline-block; + height: 100%; + width: 100%; + flex-shrink: 1; + cursor: pointer; --tw-bg-opacity: 1; background-color: rgb(248 250 252 / var(--tw-bg-opacity)); + padding-left: 0.5rem; + padding-right: 0.5rem; + padding-bottom: 0.25rem; + padding-top: 0.5rem; --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } -.ha-adminuploadfields .ha-publishform .ha-lds-ellipsis { - left: 50%; - margin-left: -20px; -} - -.ha-adminuploadfields .ha-publishform .ha-publishfilelabel { - display: inline-block; - height: 100%; - width: 100%; - cursor: pointer; - padding-left: 0.5rem; - padding-right: 0.5rem; - padding-bottom: 0.25rem; - padding-top: 0.5rem; -} - -.ha-adminuploadfields .ha-publishform .ha-publishfilelabel:hover { +.ha-adminuploadfields .ha-publishbutton:hover { --tw-bg-opacity: 1; background-color: rgb(241 245 249 / var(--tw-bg-opacity)); } -.ha-adminuploadfields .ha-publishform .ha-publishtext { +.ha-adminuploadfields .ha-publishbutton .ha-publishtext { text-align: center; } -.ha-adminuploadfields .ha-publishform .ha-publishmessage { +.ha-adminuploadfields .ha-publishbutton .ha-publishmessage { border-radius: 0.125rem; background-color: rgb(51 65 85 / var(--tw-bg-opacity)); --tw-bg-opacity: 0.3; @@ -2034,6 +2027,41 @@ body { background-color: rgb(248 250 252 / var(--tw-bg-opacity)); } +.ha-uploadcontainer .ha-publishfilelist { + margin-bottom: 2rem; + padding-left: 4rem; + padding-right: 4rem; +} + +.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelisttitle { + margin-bottom: 0.5rem; + font-size: 1.25rem; + line-height: 1.75rem; +} + +.ha-uploadcontainer .ha-publishfilelist td { + padding-right: 1.5rem; + vertical-align: text-top; +} + +.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel { + float: right; + margin-top: 1rem; + margin-left: 1.5rem; + cursor: pointer; + border-radius: 0.375rem; + border-width: 2px; + --tw-border-opacity: 1; + border-color: rgb(29 78 216 / var(--tw-border-opacity)); + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel:hover { + --tw-bg-opacity: 1; + background-color: rgb(147 197 253 / var(--tw-bg-opacity)); +} + .ha-uploadcontainer .ha-availablefiles { cursor: pointer; border-width: 1px; @@ -2179,9 +2207,14 @@ body { text-align: right; } +.ha-selectfilesform .ha-filelistoutput { + margin-top: 1rem; + margin-left: 1.5rem; +} + .ha-selectfilesform .ha-filelistbutton { float: right; - margin-top: 0.5rem; + margin-top: 1rem; margin-left: 1.5rem; cursor: pointer; border-radius: 0.375rem; diff --git a/HaWeb/wwwroot/css/site.css b/HaWeb/wwwroot/css/site.css index d91f061..bda9d58 100644 --- a/HaWeb/wwwroot/css/site.css +++ b/HaWeb/wwwroot/css/site.css @@ -679,7 +679,7 @@ } .ha-adminuploadfields .ha-uploadfield.active { - @apply !text-black brightness-110 + @apply !text-black brightness-110 shadow-inner } .ha-adminuploadfields .ha-uploadfield .ha-uploadfieldname { @@ -711,30 +711,22 @@ } .ha-adminuploadfields .ha-uploadform .ha-uploadfilelabel { - @apply inline-block px-2 py-1 pt-2 cursor-pointer w-full h-full hover:bg-slate-100 + @apply inline-block px-4 py-1 pt-2 cursor-pointer w-full h-full hover:bg-slate-100 } .ha-adminuploadfields .ha-uploadform .ha-uploadmessage { @apply text-sm bg-slate-700 bg-opacity-30 px-1 rounded-sm } - .ha-adminuploadfields .ha-publishform { - @apply bg-slate-50 rounded shadow grow relative + .ha-adminuploadfields .ha-publishbutton { + @apply inline-block px-2 py-1 pt-2 cursor-pointer w-full h-full bg-slate-50 shadow shrink hover:bg-slate-100 } - .ha-adminuploadfields .ha-publishform .ha-lds-ellipsis { - @apply left-1/2 -ml-[20px] - } - - .ha-adminuploadfields .ha-publishform .ha-publishfilelabel { - @apply inline-block px-2 py-1 pt-2 cursor-pointer w-full h-full hover:bg-slate-100 - } - - .ha-adminuploadfields .ha-publishform .ha-publishtext { + .ha-adminuploadfields .ha-publishbutton .ha-publishtext { @apply text-center } - .ha-adminuploadfields .ha-publishform .ha-publishmessage { + .ha-adminuploadfields .ha-publishbutton .ha-publishmessage { @apply text-sm bg-slate-700 bg-opacity-30 px-1 rounded-sm } @@ -750,6 +742,22 @@ @apply w-full bg-slate-50 flex flex-col gap-y-2 h-full } + .ha-uploadcontainer .ha-publishfilelist { + @apply px-16 mb-8 + } + + .ha-uploadcontainer .ha-publishfilelist .ha-publishfilelisttitle { + @apply text-xl mb-2 + } + + .ha-uploadcontainer .ha-publishfilelist td { + @apply align-text-top pr-6 + } + + .ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel { + @apply mt-4 ml-6 rounded-md px-3 border-2 border-blue-700 hover:bg-blue-300 cursor-pointer float-right; + } + .ha-uploadcontainer .ha-availablefiles { @apply px-16 border border-slate-200 hover:border-slate-800 py-2 cursor-pointer } @@ -836,8 +844,12 @@ @apply grow text-right } + .ha-selectfilesform .ha-filelistoutput { + @apply mt-4 ml-6 + } + .ha-selectfilesform .ha-filelistbutton { - @apply mt-2 ml-6 rounded-md px-3 border-2 border-blue-700 hover:bg-blue-300 cursor-pointer float-right; + @apply mt-4 ml-6 rounded-md px-3 border-2 border-blue-700 hover:bg-blue-300 cursor-pointer float-right; } /* Classes for Letter View */ diff --git a/HaWeb/wwwroot/js/site.js b/HaWeb/wwwroot/js/site.js index 50c858a..d39edb2 100644 --- a/HaWeb/wwwroot/js/site.js +++ b/HaWeb/wwwroot/js/site.js @@ -37,7 +37,7 @@ const markactive_exact = function (element) { full_path = location.href.split("#")[0].toLowerCase(); //Ignore hashes for (; i < len; i++) { - if (full_path == all_links[i].href.toLowerCase()) { + if (full_path == all_links[i].href.toLowerCase() || full_path == all_links[i].href.toLowerCase() + "/") { all_links[i].className += " active"; } } @@ -260,7 +260,7 @@ window.addEventListener("load", function () { if (document.getElementById("ha-register-nav") != null) markactive_exact(document.getElementById("ha-register-nav")); if (this.document.getElementById("ha-adminuploadfields") != null) - markactive_startswith(document.getElementById("ha-adminuploadfields")); + markactive_exact(document.getElementById("ha-adminuploadfields")); // Letter / Register View: Collapse all unfit boxes + resize observer collapseboxes(); From d4b6d0465464db53b08048d98a5e1ed6c523ebe1 Mon Sep 17 00:00:00 2001 From: schnulller Date: Tue, 7 Jun 2022 22:35:49 +0200 Subject: [PATCH 2/4] Added a workaround for a bug in the parser --- HaDocumentV6/Document.cs | 1 + HaWeb/Controllers/APIController.cs | 20 ++++++++++--------- HaWeb/FileHelpers/HaDocumentWrapper.cs | 3 +-- HaWeb/FileHelpers/IXMLProvider.cs | 1 + HaWeb/FileHelpers/XMLProvider.cs | 22 +++++++++++++++++---- HaWeb/Views/Shared/_FileList.cshtml | 2 +- HaWeb/Views/Shared/_PublishForm.cshtml | 2 +- HaWeb/XMLParser/IXMLService.cs | 1 + HaWeb/XMLParser/XMLService.cs | 27 ++++++++++++++++++++------ 9 files changed, 56 insertions(+), 23 deletions(-) diff --git a/HaDocumentV6/Document.cs b/HaDocumentV6/Document.cs index 89eadfc..5f2be81 100644 --- a/HaDocumentV6/Document.cs +++ b/HaDocumentV6/Document.cs @@ -21,6 +21,7 @@ namespace HaDocument private static ILibrary _library; public static ILibrary Create(IHaDocumentOptions Settings) { + _lib = new IntermediateLibrary(); SettingsValidator.Validate(Settings); _settings = Settings; _createReader(); diff --git a/HaWeb/Controllers/APIController.cs b/HaWeb/Controllers/APIController.cs index 3e61d3a..c1bef53 100644 --- a/HaWeb/Controllers/APIController.cs +++ b/HaWeb/Controllers/APIController.cs @@ -166,11 +166,18 @@ public class APIController : Controller { if (!ModelState.IsValid || element == null) return BadRequest(ModelState); var savedfile = await _xmlProvider.SaveHamannFile(element, _targetFilePath, ModelState); - if (!ModelState.IsValid || savedfile == null) + if (!ModelState.IsValid || savedfile == null) { + if (savedfile != null) + _xmlProvider.DeleteHamannFile(savedfile.Name); return BadRequest(ModelState); + } _ = _lib.SetLibrary(savedfile.PhysicalPath, ModelState); - if (!ModelState.IsValid) + if (!ModelState.IsValid) { + _xmlProvider.DeleteHamannFile(savedfile.Name); return BadRequest(ModelState); + } + _xmlProvider.SetInProduction(savedfile); + _xmlService.SetInProduction(); return Created("/", _xmlProvider.GetHamannFiles()); } @@ -329,13 +336,8 @@ public class APIController : Controller { return BadRequest(ModelState); } - try { - _ = _lib.SetLibrary(newFile.First().PhysicalPath, ModelState); - } - catch (Exception ex) { - ModelState.AddModelError("Error", "Error parsing the file: " + ex.Message); - return BadRequest(ModelState); - } + _ = _lib.SetLibrary(newFile.First().PhysicalPath, ModelState); + if (!ModelState.IsValid) return BadRequest(ModelState); _xmlProvider.SetInProduction(newFile.First()); _xmlService.UnUseProduction(); diff --git a/HaWeb/FileHelpers/HaDocumentWrapper.cs b/HaWeb/FileHelpers/HaDocumentWrapper.cs index e2f06d1..6c710e9 100644 --- a/HaWeb/FileHelpers/HaDocumentWrapper.cs +++ b/HaWeb/FileHelpers/HaDocumentWrapper.cs @@ -35,8 +35,7 @@ public class HaDocumentWrapper : IHaDocumentWrappper { Library = HaDocument.Document.Create(new HaWeb.Settings.HaDocumentOptions() { HamannXMLFilePath = filepath, AvailableYearRange = (_startYear, _endYear) }); } catch (Exception ex) { - if (ModelState != null) ModelState.AddModelError("Error:", "Das Dokument konnte nicht geparst werden: " + ex.Message); - Console.WriteLine(ex.Message); + if (ModelState != null) ModelState.AddModelError("Error", "Das Dokument konnte nicht geparst werden: " + ex.Message); return null; } return Library; diff --git a/HaWeb/FileHelpers/IXMLProvider.cs b/HaWeb/FileHelpers/IXMLProvider.cs index 5c0af13..e411d6c 100644 --- a/HaWeb/FileHelpers/IXMLProvider.cs +++ b/HaWeb/FileHelpers/IXMLProvider.cs @@ -12,4 +12,5 @@ public interface IXMLProvider { public List? GetHamannFiles(); public IFileInfo? GetInProduction(); public void SetInProduction(IFileInfo info); + public void DeleteHamannFile(string filename); } \ No newline at end of file diff --git a/HaWeb/FileHelpers/XMLProvider.cs b/HaWeb/FileHelpers/XMLProvider.cs index b6953a7..87b2485 100644 --- a/HaWeb/FileHelpers/XMLProvider.cs +++ b/HaWeb/FileHelpers/XMLProvider.cs @@ -10,7 +10,7 @@ public class XMLProvider : IXMLProvider { private Dictionary? _Files; private Dictionary? _Roots; private List? _HamannFiles; - private IFileInfo? _InProduction; + private Stack? _InProduction; public XMLProvider(IFileProvider provider, IXMLService xmlservice) { _fileProvider = provider; @@ -26,9 +26,24 @@ public class XMLProvider : IXMLProvider { public List? GetHamannFiles() => this._HamannFiles; - public IFileInfo? GetInProduction() => this._InProduction; + public IFileInfo? GetInProduction() { + if (_InProduction == null || !_InProduction.Any()) return null; + return this._InProduction.Peek(); + } - public void SetInProduction(IFileInfo info) => _InProduction = info; + public void DeleteHamannFile(string filename) { + if (_HamannFiles == null) return; + var files = _HamannFiles.Where(x => x.Name == filename); + foreach (var file in files) { + File.Delete(file.PhysicalPath); + } + _HamannFiles.RemoveAll(x => x.Name == filename); + } + + public void SetInProduction(IFileInfo info) { + if (_InProduction == null) _InProduction = new Stack(); + _InProduction.Push(info); + } public FileList? GetFiles(string prefix) => _Files != null && _Files.ContainsKey(prefix) ? _Files[prefix] : null; @@ -89,7 +104,6 @@ public class XMLProvider : IXMLProvider { if (_HamannFiles == null) _HamannFiles = new List(); _HamannFiles.RemoveAll(x => x.Name == info.Name); _HamannFiles.Add(info); - _InProduction = info; return info; } diff --git a/HaWeb/Views/Shared/_FileList.cshtml b/HaWeb/Views/Shared/_FileList.cshtml index 9969851..56e46ac 100644 --- a/HaWeb/Views/Shared/_FileList.cshtml +++ b/HaWeb/Views/Shared/_FileList.cshtml @@ -61,7 +61,7 @@ document.getElementById("ha-filelistoutput").textContent = json.Error; } else { - location.reload(); + location.reload(); } }) .catch ((e) => { diff --git a/HaWeb/Views/Shared/_PublishForm.cshtml b/HaWeb/Views/Shared/_PublishForm.cshtml index 5d559b6..d1dba96 100644 --- a/HaWeb/Views/Shared/_PublishForm.cshtml +++ b/HaWeb/Views/Shared/_PublishForm.cshtml @@ -57,7 +57,7 @@ document.getElementById("ha-lds-ellipsis-publish").style.display = "none"; document.getElementById("ha-publishmessage").style.opacity = "1"; document.getElementById("publish-result").value = "Erfolg!"; - window.location.replace("/Admin/Upload/"); + @* location.reload(); *@ } }) .catch ((e) => { diff --git a/HaWeb/XMLParser/IXMLService.cs b/HaWeb/XMLParser/IXMLService.cs index d687e5d..6b68cc8 100644 --- a/HaWeb/XMLParser/IXMLService.cs +++ b/HaWeb/XMLParser/IXMLService.cs @@ -16,4 +16,5 @@ public interface IXMLService { public Dictionary? GetInProduction(); public void UnUse(string prefix); public void UnUseProduction(); + public void SetInProduction(); } \ No newline at end of file diff --git a/HaWeb/XMLParser/XMLService.cs b/HaWeb/XMLParser/XMLService.cs index f2df2a9..8f8810b 100644 --- a/HaWeb/XMLParser/XMLService.cs +++ b/HaWeb/XMLParser/XMLService.cs @@ -7,7 +7,7 @@ public class XMLService : IXMLService { private Dictionary? _Used; private Dictionary? _Roots; - private Dictionary? _InProduction; + private Stack>? _InProduction; public XMLService() { // Getting all classes which implement IXMLRoot for possible document endpoints @@ -32,7 +32,23 @@ public class XMLService : IXMLService { public Dictionary? GetRootsDictionary() => this._Roots == null ? null : this._Roots; - public Dictionary? GetInProduction() => this._InProduction; + public Dictionary? GetInProduction() { + if (_InProduction == null) return null; + return this._InProduction.Peek(); + } + + public void SetInProduction() { + if (_Used == null) return; + var inProduction = new Dictionary(); + foreach (var category in _Used) { + if (category.Value == null || category.Value.GetFileList() == null || !category.Value.GetFileList()!.Any()) + return; + inProduction.Add(category.Key, category.Value); + } + + if(_InProduction == null) _InProduction = new Stack>(); + _InProduction.Push(inProduction); + } public void UnUseProduction() => this._InProduction = null; @@ -104,20 +120,19 @@ public class XMLService : IXMLService { } var opus = new XElement("opus"); - var inProduction = new Dictionary(); - foreach (var category in _Used) { + // TODO: Workaround for bug in HaDocument: roots have to be added in a specific order + var used = _Used.OrderByDescending(x => x.Key); + foreach (var category in used) { if (category.Value == null || category.Value.GetFileList() == null || !category.Value.GetFileList()!.Any()) { ModelState.AddModelError("Error", _Roots![category.Key].Type + " nicht vorhanden."); return null; } - inProduction.Add(category.Key, category.Value); var documents = category.Value.GetFileList(); foreach (var document in documents!) { document.XMLRoot.MergeIntoFile(opus, document); } } - _InProduction = inProduction; return opus; } From c2ecf0ea237de6d3860422ad9acb1a7cf6980cc8 Mon Sep 17 00:00:00 2001 From: schnulller Date: Wed, 8 Jun 2022 00:03:08 +0200 Subject: [PATCH 3/4] Some minor style adjustments --- HaWeb/Views/Shared/_PublishForm.cshtml | 2 +- HaWeb/wwwroot/css/output.css | 45 ++++++++++++++++++++++---- HaWeb/wwwroot/css/site.css | 14 +++++--- 3 files changed, 48 insertions(+), 13 deletions(-) diff --git a/HaWeb/Views/Shared/_PublishForm.cshtml b/HaWeb/Views/Shared/_PublishForm.cshtml index d1dba96..cce4f02 100644 --- a/HaWeb/Views/Shared/_PublishForm.cshtml +++ b/HaWeb/Views/Shared/_PublishForm.cshtml @@ -57,7 +57,7 @@ document.getElementById("ha-lds-ellipsis-publish").style.display = "none"; document.getElementById("ha-publishmessage").style.opacity = "1"; document.getElementById("publish-result").value = "Erfolg!"; - @* location.reload(); *@ + location.reload(); } }) .catch ((e) => { diff --git a/HaWeb/wwwroot/css/output.css b/HaWeb/wwwroot/css/output.css index e204015..072bb2e 100644 --- a/HaWeb/wwwroot/css/output.css +++ b/HaWeb/wwwroot/css/output.css @@ -2052,18 +2052,32 @@ body { border-radius: 0.375rem; border-width: 2px; --tw-border-opacity: 1; - border-color: rgb(29 78 216 / var(--tw-border-opacity)); + border-color: rgb(37 99 235 / var(--tw-border-opacity)); padding-left: 0.75rem; padding-right: 0.75rem; } .ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel:hover { - --tw-bg-opacity: 1; - background-color: rgb(147 197 253 / var(--tw-bg-opacity)); + border-width: 2px; + --tw-border-opacity: 1; + border-color: rgb(30 64 175 / var(--tw-border-opacity)); + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel:active { + --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .ha-uploadcontainer .ha-availablefiles { cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; border-width: 1px; --tw-border-opacity: 1; border-color: rgb(226 232 240 / var(--tw-border-opacity)); @@ -2156,8 +2170,16 @@ body { .ha-selectfilesform .ha-filelistfile { display: flex; flex-direction: row; + align-items: center; -moz-column-gap: 1rem; column-gap: 1rem; + padding-left: 0.25rem; + padding-right: 0.25rem; +} + +.ha-selectfilesform .ha-filelistfile:nth-child(even) { + --tw-bg-opacity: 1; + background-color: rgb(241 245 249 / var(--tw-bg-opacity)); } .ha-selectfilesform .ha-filelistlist { @@ -2172,7 +2194,6 @@ body { } .ha-selectfilesform .ha-filelistfile .ha-filelistusedproduction { - align-self: flex-start; font-size: 0.875rem; line-height: 1.25rem; } @@ -2220,14 +2241,24 @@ body { border-radius: 0.375rem; border-width: 2px; --tw-border-opacity: 1; - border-color: rgb(29 78 216 / var(--tw-border-opacity)); + border-color: rgb(37 99 235 / var(--tw-border-opacity)); padding-left: 0.75rem; padding-right: 0.75rem; } .ha-selectfilesform .ha-filelistbutton:hover { - --tw-bg-opacity: 1; - background-color: rgb(147 197 253 / var(--tw-bg-opacity)); + border-width: 2px; + --tw-border-opacity: 1; + border-color: rgb(30 64 175 / var(--tw-border-opacity)); + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.ha-selectfilesform .ha-filelistbutton:active { + --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } /* Classes for Letter View */ diff --git a/HaWeb/wwwroot/css/site.css b/HaWeb/wwwroot/css/site.css index bda9d58..170b938 100644 --- a/HaWeb/wwwroot/css/site.css +++ b/HaWeb/wwwroot/css/site.css @@ -755,11 +755,11 @@ } .ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel { - @apply mt-4 ml-6 rounded-md px-3 border-2 border-blue-700 hover:bg-blue-300 cursor-pointer float-right; + @apply mt-4 ml-6 rounded-md px-3 border-2 border-blue-600 hover:border-2 hover:shadow active:shadow-inner hover:border-blue-800 cursor-pointer float-right; } .ha-uploadcontainer .ha-availablefiles { - @apply px-16 border border-slate-200 hover:border-slate-800 py-2 cursor-pointer + @apply px-16 border border-slate-200 hover:border-slate-800 py-2 cursor-pointer select-none } .ha-uploadcontainer .ha-availablefiles .ha-availablefilestitle { @@ -817,7 +817,11 @@ } .ha-selectfilesform .ha-filelistfile { - @apply flex flex-row gap-x-4 + @apply flex flex-row gap-x-4 px-1 items-center + } + + .ha-selectfilesform .ha-filelistfile:nth-child(even) { + @apply bg-slate-100 } .ha-selectfilesform .ha-filelistlist { @@ -829,7 +833,7 @@ } .ha-selectfilesform .ha-filelistfile .ha-filelistusedproduction { - @apply text-sm self-start + @apply text-sm } .ha-selectfilesform .ha-filelistfile .ha-filelistusedproduction .ha-filelistproduction { @@ -849,7 +853,7 @@ } .ha-selectfilesform .ha-filelistbutton { - @apply mt-4 ml-6 rounded-md px-3 border-2 border-blue-700 hover:bg-blue-300 cursor-pointer float-right; + @apply mt-4 ml-6 rounded-md px-3 border-2 border-blue-600 hover:border-2 hover:shadow active:shadow-inner hover:border-blue-800 cursor-pointer float-right; } /* Classes for Letter View */ From 11ccd7772e3119bf7da09861f30085599dadd513 Mon Sep 17 00:00:00 2001 From: schnulller Date: Thu, 9 Jun 2022 02:07:21 +0200 Subject: [PATCH 4/4] Did a lot of styling on letter & register view; introduced a new accent color. Added scroll and submit vutton, TODO style submit button --- HaWeb/Controllers/RegisterController.cs | 6 +- HaWeb/HaWeb.csproj | 24 +- HaWeb/Models/RegisterViewModel.cs | 4 +- HaWeb/README.md | 7 +- HaWeb/Views/Admin/Upload/Index.cshtml | 183 +- HaWeb/Views/Briefe/Index.cshtml | 15 +- HaWeb/Views/Edition/Richtlinien.cshtml | 7 +- HaWeb/Views/Register/Index.cshtml | 20 +- ...{_FileList.cshtml => _FileListForm.cshtml} | 18 +- HaWeb/Views/Shared/_Layout.cshtml | 9 +- HaWeb/Views/Shared/_LetterHead.cshtml | 4 +- HaWeb/Views/Shared/_PublishForm.cshtml | 3 +- HaWeb/Views/Shared/_UploadForm.cshtml | 91 + HaWeb/package-lock.json | 1968 +++++++- HaWeb/package.json | 13 +- HaWeb/postcss.config.js | 11 +- HaWeb/tailwind.config.js | 11 +- HaWeb/wwwroot/css/output.css | 4483 +---------------- HaWeb/wwwroot/css/site.css | 130 +- HaWeb/wwwroot/js/site.js | 51 +- 20 files changed, 2324 insertions(+), 4734 deletions(-) rename HaWeb/Views/Shared/{_FileList.cshtml => _FileListForm.cshtml} (74%) create mode 100644 HaWeb/Views/Shared/_UploadForm.cshtml diff --git a/HaWeb/Controllers/RegisterController.cs b/HaWeb/Controllers/RegisterController.cs index 9b77639..e3ad5e6 100644 --- a/HaWeb/Controllers/RegisterController.cs +++ b/HaWeb/Controllers/RegisterController.cs @@ -61,7 +61,7 @@ public class RegisterController : Controller { } // Model instantiation - var model = new RegisterViewModel(category, id, res, title) { + var model = new RegisterViewModel(category, id, res, title, false) { AvailableCategories = availableCategories, }; @@ -104,7 +104,7 @@ public class RegisterController : Controller { } // Model instantiation - var model = new RegisterViewModel(category, id, res, title) { + var model = new RegisterViewModel(category, id, res, title, false) { AvailableCategories = availableCategories, }; @@ -154,7 +154,7 @@ public class RegisterController : Controller { } // Model instantiation - var model = new RegisterViewModel(category, id, res, title) { + var model = new RegisterViewModel(category, id, res, title, true) { AvailableCategories = availableCategories, AvailableSideCategories = AvailableSideCategories }; diff --git a/HaWeb/HaWeb.csproj b/HaWeb/HaWeb.csproj index ffbf3e8..6e32a60 100644 --- a/HaWeb/HaWeb.csproj +++ b/HaWeb/HaWeb.csproj @@ -6,24 +6,16 @@ enable enable - - - + + + + - - - - - - - - - - - + - + + @@ -32,6 +24,4 @@ - - diff --git a/HaWeb/Models/RegisterViewModel.cs b/HaWeb/Models/RegisterViewModel.cs index 08eedc7..69d5aa2 100644 --- a/HaWeb/Models/RegisterViewModel.cs +++ b/HaWeb/Models/RegisterViewModel.cs @@ -5,6 +5,7 @@ public class RegisterViewModel { public string Category { get; private set; } public string Id { get; private set; } public string Title { get; private set; } + public bool AllowSendIn { get; private set; } private List<(string, string)>? _AvailableCategories; private List<(string, string)>? _AvailableSideCategories; @@ -41,10 +42,11 @@ public class RegisterViewModel { } } - public RegisterViewModel(string category, string id, List parsedComments, string title) { + public RegisterViewModel(string category, string id, List parsedComments, string title, bool allowSendIn) { this.Category = HttpUtility.HtmlAttributeEncode(category); this.Id = HttpUtility.HtmlAttributeEncode(id); this.ParsedComments = parsedComments; this.Title = HttpUtility.HtmlEncode(title); + this.AllowSendIn = allowSendIn; } } \ No newline at end of file diff --git a/HaWeb/README.md b/HaWeb/README.md index c364598..d330a66 100644 --- a/HaWeb/README.md +++ b/HaWeb/README.md @@ -33,17 +33,12 @@ Startseite für die Briefausgebe / Werkausgabe. Unterschiedliche Menüs für die Briefe beim Namen -- GND Normdaten der Namen - TODO 1127 zu breit TODO tabellen ok, ausser 939, 806 falsch geschachtelt: dort sind htabs geschachtelt TODO 659 align center und align-right ueberschneidugn -TODO Kommentare und min-size von ha-lettertetx TODO Word-wrap before align, tabs TODO pills are not mobile friendly (hover / click) TODO Evtl alignment von center / right an der letzten oder nächsten zeile TODO Abhärten des Konstruktors von XMLRootDokument für von außerhalb platzierte Dokumente TODO XML-Check im Client -TODO Lock für die Liste, Bzw ConcurretBag -TODO Up-Button -TODO Neue Forschungsliteratur einsenden \ No newline at end of file +TODO Lock für die Liste, Bzw ConcurretBag \ No newline at end of file diff --git a/HaWeb/Views/Admin/Upload/Index.cshtml b/HaWeb/Views/Admin/Upload/Index.cshtml index 74a3d82..494face 100644 --- a/HaWeb/Views/Admin/Upload/Index.cshtml +++ b/HaWeb/Views/Admin/Upload/Index.cshtml @@ -25,17 +25,7 @@ }
-
- -
- Fehler!
- -
-
+ @await Html.PartialAsync("/Views/Shared/_UploadForm.cshtml", Model)
Veröffentlichen
@@ -43,62 +33,64 @@
+

@Model.ActiveTitle

+
-@* File Category Page File List *@ -@if (Model.AvailableFiles != null && Model.AvailableFiles.Any()) { -
-
-
Datei(en)
- @if(Model.UsedFiles != null && Model.UsedFiles.ContainsKey(Model.Prefix)) { -
- @foreach (var item in Model.UsedFiles[Model.Prefix]!) - { - if(item == Model.UsedFiles[Model.Prefix]!.Last()) { - @item.FileName - } - else { - @item.FileName, + @* File Category Page File List *@ + @if (Model.AvailableFiles != null && Model.AvailableFiles.Any()) { +
+
+
Datei(en)
+ @if(Model.UsedFiles != null && Model.UsedFiles.ContainsKey(Model.Prefix)) { +
+ @foreach (var item in Model.UsedFiles[Model.Prefix]!) + { + if(item == Model.UsedFiles[Model.Prefix]!.Last()) { + @item.FileName + } + else { + @item.FileName, + } } +
} -
- } +
+
- -
-} - -@* Start Page File List *@ -else { -
- @await Html.PartialAsync("/Views/Shared/_PublishForm.cshtml", Model) -
- -
- @await Html.PartialAsync("/Views/Shared/_FileList.cshtml", (Model.HamannFiles, "Verfügbare Hamann-Dateien", "API", "SetUsedHamann", string.Empty, "/Download/XML/", false)) -
-} - -@* File Category Page Syntax Check *@ -@if (Model.UsedFiles != null && Model.Prefix != null && Model.UsedFiles.ContainsKey(Model.Prefix)) { -
-
- -
-
- -
-
- -
-
-} + @if (Model.UsedFiles != null && Model.Prefix != null && Model.UsedFiles.ContainsKey(Model.Prefix)) { +
+
+ +
+
+ +
+
+ +
+ +
+ } + } + + + @* Start Page File List *@ + else { +
+ @await Html.PartialAsync("/Views/Shared/_PublishForm.cshtml", Model) +
+ +
+ @await Html.PartialAsync("/Views/Shared/_FileListForm.cshtml", (Model.HamannFiles, "Verfügbare Hamann-Dateien", "API", "SetUsedHamann", string.Empty, "/Download/XML/", false)) +
+ }
@@ -118,71 +110,6 @@ else { } } - const dropHandler = function (formelement, ev, dropzone) { - ev.preventDefault(); - if (ev.dataTransfer.items) { - if (ev.dataTransfer.items[0].kind === 'file') { - var file = ev.dataTransfer.items[0].getAsFile(); - UPLOADSubmit(formelement, file); - } else { - var file = ev.dataTransfer.files[0]; - UPLOADSubmit(formelement, file); - } - } - } - - const dragOverHandler = function (ev, dropzone) { - ev.preventDefault(); - } - - const dragLeaveHander = function (ev, dropzone) { - ev.preventDefault(); - } - - const dragEnterHandler = function (ev, dropzone) { - ev.preventDefault(); - } - - const UPLOADSubmit = async function (oFormElement, file = null) { - var fd = new FormData(); - if (file !== null) fd.append("file", file); - else fd = new FormData(oFormElement); - document.getElementById("dropzone").style.pointerEvents = "none"; - document.getElementById("ha-lds-ellipsis").style.display = "inline-block"; - document.getElementById("ha-uploadmessage").style.opacity = "0"; - await fetch(oFormElement.action, { - method: 'POST', - headers: { - 'RequestVerificationToken': getCookie('RequestVerificationToken') - }, - body: fd - }) - .then(response => response.json()) - .then(json => { - if ("Error" in json) { - document.getElementById("dropzone").style.pointerEvents = "auto"; - document.getElementById("ha-lds-ellipsis").style.display = "none"; - document.getElementById("ha-uploadmessage").style.opacity = "1"; - oFormElement.elements.namedItem("upload-result").value = json.Error; - } else { - document.getElementById("dropzone").style.pointerEvents = "auto"; - document.getElementById("ha-lds-ellipsis").style.display = "none"; - oFormElement.elements.namedItem("upload-result").value = "Erfolg!"; - if ("Prefix" in json[0]) { - document.getElementById("dropzone").style.pointerEvents = "auto"; - document.getElementById("ha-lds-ellipsis").style.display = "none"; - window.location.replace("/Admin/Upload/" + json[0].Prefix); - } - } - }) - .catch ((e) => { - document.getElementById("dropzone").style.pointerEvents = "auto"; - document.getElementById("ha-lds-ellipsis").style.display = "none"; - document.getElementById("ha-uploadmessage").style.opacity = "1"; - oFormElement.elements.namedItem("upload-result").value = "Keine Antwort. Bitte Seite neu laden!"; - }) - } - function getCookie(name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); @@ -190,19 +117,9 @@ else { } window.addEventListener("load", function () { - var submitelement = document.getElementById("file"); - var formelement = document.getElementById("uploadForm"); - var dropzone = document.getElementById("dropzone"); - var filesbutton = document.getElementById("ha-availablefiles"); if (filesbutton !== null) filesbutton.addEventListener("click", () => hideshowfiles()); - - submitelement.addEventListener("change", () => UPLOADSubmit(formelement)); - dropzone.addEventListener("drop", (ev) => dropHandler(formelement, ev, dropzone)); - dropzone.addEventListener("dragover", (ev) => dragOverHandler(ev, dropzone)); - dropzone.addEventListener("dragleave", (ev) => dragLeaveHander(ev, dropzone)); - dropzone.addEventListener("dragenter", (ev) => dragEnterHandler(ev, dropzone)); }); diff --git a/HaWeb/Views/Briefe/Index.cshtml b/HaWeb/Views/Briefe/Index.cshtml index c8ea18a..934658c 100644 --- a/HaWeb/Views/Briefe/Index.cshtml +++ b/HaWeb/Views/Briefe/Index.cshtml @@ -51,20 +51,11 @@
+ @if (Model.MetaData.ParsedZHString != null) {
- @if (Model.MetaData.ParsedZHString != null) - { - @Html.Raw(Model.MetaData.ParsedZHString) - } - else - { -
-
- Neu -
-
- } + @Html.Raw(Model.MetaData.ParsedZHString)
+ } @Html.Raw(@Model.ParsedText) @* It's not beautiful but it's a hack to keep the last comment within parent element boundaries: *@
diff --git a/HaWeb/Views/Edition/Richtlinien.cshtml b/HaWeb/Views/Edition/Richtlinien.cshtml index ad3a120..891ddc5 100644 --- a/HaWeb/Views/Edition/Richtlinien.cshtml +++ b/HaWeb/Views/Edition/Richtlinien.cshtml @@ -36,7 +36,12 @@ Durchstreichung in spitzen Klammern ⟨...⟩ Durchstreichung (einfache bis doppelte) - + + + Einfügung + + ⸂Einfügung⸃ (lediglich in Einzelfällen) + Nicht entzifferbare Stelle / Unsichere Lesung unterschiedlich gehandhabt diff --git a/HaWeb/Views/Register/Index.cshtml b/HaWeb/Views/Register/Index.cshtml index 45d140a..d69bff5 100644 --- a/HaWeb/Views/Register/Index.cshtml +++ b/HaWeb/Views/Register/Index.cshtml @@ -28,6 +28,14 @@

@Model.Title

+ @if (Model.AllowSendIn) { +
+ }
@if (Model.AvailableCategories != null) { @@ -60,15 +68,3 @@
- - diff --git a/HaWeb/Views/Shared/_FileList.cshtml b/HaWeb/Views/Shared/_FileListForm.cshtml similarity index 74% rename from HaWeb/Views/Shared/_FileList.cshtml rename to HaWeb/Views/Shared/_FileListForm.cshtml index 56e46ac..bf5b6ee 100644 --- a/HaWeb/Views/Shared/_FileList.cshtml +++ b/HaWeb/Views/Shared/_FileListForm.cshtml @@ -37,7 +37,11 @@
}
- + + } else { @@ -48,6 +52,8 @@ \ No newline at end of file diff --git a/HaWeb/Views/Shared/_Layout.cshtml b/HaWeb/Views/Shared/_Layout.cshtml index 7042173..cccd58f 100644 --- a/HaWeb/Views/Shared/_Layout.cshtml +++ b/HaWeb/Views/Shared/_Layout.cshtml @@ -1,5 +1,5 @@  - + @@ -42,10 +42,17 @@ @await Html.PartialAsync("/Views/Shared/_Footer.cshtml")
+ @await Html.PartialAsync("/Views/Shared/_Javascript.cshtml") + + + + + + @RenderSection("Scripts", required: false) diff --git a/HaWeb/Views/Shared/_LetterHead.cshtml b/HaWeb/Views/Shared/_LetterHead.cshtml index 6a34122..806b6ee 100644 --- a/HaWeb/Views/Shared/_LetterHead.cshtml +++ b/HaWeb/Views/Shared/_LetterHead.cshtml @@ -20,9 +20,9 @@ } - else if (Model.ParsedZHString == null && Model.ShowZHData) { + else if (Model.ParsedZHString == null) {
-
+
Neu
diff --git a/HaWeb/Views/Shared/_PublishForm.cshtml b/HaWeb/Views/Shared/_PublishForm.cshtml index cce4f02..d165f51 100644 --- a/HaWeb/Views/Shared/_PublishForm.cshtml +++ b/HaWeb/Views/Shared/_PublishForm.cshtml @@ -24,10 +24,9 @@
- @* Fehler!
*@
diff --git a/HaWeb/Views/Shared/_UploadForm.cshtml b/HaWeb/Views/Shared/_UploadForm.cshtml new file mode 100644 index 0000000..daf3442 --- /dev/null +++ b/HaWeb/Views/Shared/_UploadForm.cshtml @@ -0,0 +1,91 @@ +@model UploadViewModel; + +
+ +
+ Fehler!
+ +
+
+ + \ No newline at end of file diff --git a/HaWeb/package-lock.json b/HaWeb/package-lock.json index cb72118..a1eb408 100644 --- a/HaWeb/package-lock.json +++ b/HaWeb/package-lock.json @@ -8,9 +8,14 @@ "name": "haweb", "version": "1.0.0", "license": "ISC", + "dependencies": { + "watch": "^1.0.2" + }, "devDependencies": { "autoprefixer": "^10.4.7", - "postcss": "^8.4.13", + "cssnano": "^5.1.11", + "postcss": "^8.4.14", + "postcss-cli": "^9.1.0", "tailwindcss": "^3.0.24" } }, @@ -49,6 +54,15 @@ "node": ">= 8" } }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -81,6 +95,30 @@ "node": ">=0.4.0" } }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -100,6 +138,18 @@ "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", "dev": true }, + "node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/autoprefixer": { "version": "10.4.7", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", @@ -142,6 +192,12 @@ "node": ">=8" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -192,6 +248,18 @@ "node": ">= 6" } }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001339", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001339.tgz", @@ -247,12 +315,103 @@ "node": ">= 6" } }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -265,12 +424,109 @@ "node": ">=4" } }, + "node_modules/cssnano": { + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.11.tgz", + "integrity": "sha512-2nx+O6LvewPo5EBtYrKc8762mMkZRk9cMGIOP4UlkmxHm7ObxH+zvsJJ+qLwPkUc4/yumL/qJkavYi9NlodWIQ==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^5.2.11", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.11.tgz", + "integrity": "sha512-4PadR1NtuaIK8MvLNuY7MznK4WJteldGlzCiMaaTiOUP+apeiIvUDIXykzUOoqgOOUAHrU64ncdD90NfZR3LSQ==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.2.2", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.5", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.2", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", "dev": true }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/detective": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", @@ -294,18 +550,100 @@ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.137", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", "dev": true }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -315,6 +653,14 @@ "node": ">=6" } }, + "node_modules/exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "dependencies": { + "merge": "^1.2.0" + } + }, "node_modules/fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -377,6 +723,20 @@ "url": "https://www.patreon.com/infusion" } }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", @@ -397,6 +757,27 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -409,6 +790,32 @@ "node": ">=10.13.0" } }, + "node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -421,6 +828,15 @@ "node": ">= 0.4.0" } }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -454,6 +870,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -475,6 +900,18 @@ "node": ">=0.12.0" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/lilconfig": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", @@ -484,6 +921,29 @@ "node": ">=10" } }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -509,8 +969,7 @@ "node_modules/minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/nanoid": { "version": "3.3.4", @@ -548,6 +1007,30 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/object-hash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", @@ -563,6 +1046,15 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -581,10 +1073,19 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/postcss": { - "version": "8.4.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", - "integrity": "sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==", + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", "dev": true, "funding": [ { @@ -597,7 +1098,7 @@ } ], "dependencies": { - "nanoid": "^3.3.3", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -605,6 +1106,130 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-cli": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", + "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^12.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^3.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, "node_modules/postcss-js": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", @@ -653,6 +1278,104 @@ } } }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz", + "integrity": "sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, "node_modules/postcss-nested": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", @@ -672,6 +1395,207 @@ "postcss": "^8.2.14" } }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.2.tgz", + "integrity": "sha512-wr2avRbW4HS2XE2ZCqpfp4N/tDC6GZKZ+SVP8UBTOVS8QWrc4TD8MYrebJrvVVlGPKszmiSCzue43NDiVtgDmg==", + "dev": true, + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/postcss-selector-parser": { "version": "6.0.10", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", @@ -685,12 +1609,52 @@ "node": ">=4" } }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -723,6 +1687,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -735,6 +1708,15 @@ "node": ">=8.10.0" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", @@ -785,6 +1767,27 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -794,6 +1797,54 @@ "node": ">=0.10.0" } }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -806,6 +1857,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/tailwindcss": { "version": "3.0.24", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz", @@ -845,6 +1917,12 @@ "postcss": "^8.0.9" } }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -857,12 +1935,53 @@ "node": ">=8.0" } }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "node_modules/watch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", + "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=", + "dependencies": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" + }, + "bin": { + "watch": "cli.js" + }, + "engines": { + "node": ">=0.1.95" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -872,6 +1991,15 @@ "node": ">=0.4" } }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", @@ -880,6 +2008,33 @@ "engines": { "node": ">= 6" } + }, + "node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } } }, "dependencies": { @@ -909,6 +2064,12 @@ "fastq": "^1.6.0" } }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -932,6 +2093,21 @@ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -948,6 +2124,12 @@ "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", "dev": true }, + "array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true + }, "autoprefixer": { "version": "10.4.7", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", @@ -968,6 +2150,12 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -996,6 +2184,18 @@ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "dev": true }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, "caniuse-lite": { "version": "1.0.30001339", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001339.tgz", @@ -1029,24 +2229,162 @@ } } }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "css-declaration-sorter": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "dev": true, + "requires": {} + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, + "cssnano": { + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.11.tgz", + "integrity": "sha512-2nx+O6LvewPo5EBtYrKc8762mMkZRk9cMGIOP4UlkmxHm7ObxH+zvsJJ+qLwPkUc4/yumL/qJkavYi9NlodWIQ==", + "dev": true, + "requires": { + "cssnano-preset-default": "^5.2.11", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.11.tgz", + "integrity": "sha512-4PadR1NtuaIK8MvLNuY7MznK4WJteldGlzCiMaaTiOUP+apeiIvUDIXykzUOoqgOOUAHrU64ncdD90NfZR3LSQ==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.2.2", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.5", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.2", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "requires": {} + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, "defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", "dev": true }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + }, "detective": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", @@ -1064,24 +2402,90 @@ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, "dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, "electron-to-chromium": { "version": "1.4.137", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", "dev": true }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, + "exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "requires": { + "merge": "^1.2.0" + } + }, "fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -1130,6 +2534,17 @@ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "dev": true }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", @@ -1143,6 +2558,18 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true + }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -1152,6 +2579,26 @@ "is-glob": "^4.0.3" } }, + "globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "requires": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1161,6 +2608,12 @@ "function-bind": "^1.1.1" } }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -1185,6 +2638,12 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -1200,12 +2659,45 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "lilconfig": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==" + }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -1225,8 +2717,7 @@ "minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "nanoid": { "version": "3.3.4", @@ -1252,6 +2743,21 @@ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, "object-hash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", @@ -1264,6 +2770,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -1276,17 +2788,103 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, "postcss": { - "version": "8.4.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", - "integrity": "sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==", + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", "dev": true, "requires": { - "nanoid": "^3.3.3", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-cli": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", + "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", + "dev": true, + "requires": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^12.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^3.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dev": true, + "requires": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "requires": {} + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "requires": {} + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "requires": {} + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "requires": {} + }, "postcss-js": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", @@ -1306,6 +2904,68 @@ "yaml": "^1.10.2" } }, + "postcss-merge-longhand": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz", + "integrity": "sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + } + }, + "postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, "postcss-nested": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", @@ -1315,6 +2975,126 @@ "postcss-selector-parser": "^6.0.6" } }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-ordered-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.2.tgz", + "integrity": "sha512-wr2avRbW4HS2XE2ZCqpfp4N/tDC6GZKZ+SVP8UBTOVS8QWrc4TD8MYrebJrvVVlGPKszmiSCzue43NDiVtgDmg==", + "dev": true, + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + } + }, "postcss-selector-parser": { "version": "6.0.10", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", @@ -1325,12 +3105,37 @@ "util-deprecate": "^1.0.2" } }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, "postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -1343,6 +3148,15 @@ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "requires": { + "pify": "^2.3.0" + } + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -1352,6 +3166,12 @@ "picomatch": "^2.2.1" } }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, "resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", @@ -1378,18 +3198,81 @@ "queue-microtask": "^1.2.2" } }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + } + }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + } + }, "tailwindcss": { "version": "3.0.24", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz", @@ -1419,6 +3302,12 @@ "resolve": "^1.22.0" } }, + "thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -1428,23 +3317,76 @@ "is-number": "^7.0.0" } }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "watch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", + "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=", + "requires": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true } } } diff --git a/HaWeb/package.json b/HaWeb/package.json index d032e5d..09c37b4 100644 --- a/HaWeb/package.json +++ b/HaWeb/package.json @@ -4,14 +4,23 @@ "description": "", "main": "index.js", "scripts": { - "css:build": "npx tailwind build ./wwwroot/css/site.css -o ./wwwroot/css/output.css" + "css_build": "npx postcss wwwroot/css/site.css -o wwwroot/css/output.css", + "watch": "watch 'npm run css_build'" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "autoprefixer": "^10.4.7", - "postcss": "^8.4.13", + "cssnano": "^5.1.11", + "postcss": "^8.4.14", + "postcss-cli": "^9.1.0", "tailwindcss": "^3.0.24" + }, + "dependencies": { + "watch": "^1.0.2" + }, + "watch": { + "css_build": "wwwroot/css/site.css" } } diff --git a/HaWeb/postcss.config.js b/HaWeb/postcss.config.js index 33ad091..0702f96 100644 --- a/HaWeb/postcss.config.js +++ b/HaWeb/postcss.config.js @@ -1,6 +1,9 @@ module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, + plugins: [ + require('tailwindcss'), + + // Production: + require('autoprefixer'), + require('cssnano')({ preset: 'default' }) + ], } diff --git a/HaWeb/tailwind.config.js b/HaWeb/tailwind.config.js index b40c6a5..0db7ff5 100644 --- a/HaWeb/tailwind.config.js +++ b/HaWeb/tailwind.config.js @@ -31,7 +31,16 @@ module.exports = { extend: { colors: { 'hamannHighlight': '#d80000', - 'hamannLightHighlight': '#cc7878' + 'hamannLightHighlight': '#cc7878', + 'hamannSlate': { + 50: '#6A829E', + 100: '#416C9E', + 200: '#3F8FEB', + 300: '#3270B8', + 500: '#2B619E', + 700: '#1E4570', + 900: '#173557' + } } }, }, diff --git a/HaWeb/wwwroot/css/output.css b/HaWeb/wwwroot/css/output.css index 072bb2e..581252b 100644 --- a/HaWeb/wwwroot/css/output.css +++ b/HaWeb/wwwroot/css/output.css @@ -1,4482 +1 @@ -/* -! tailwindcss v3.0.24 | MIT License | https://tailwindcss.com -*/ - -/* -1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) -2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) -*/ - -*, -::before, -::after { - box-sizing: border-box; - /* 1 */ - border-width: 0; - /* 2 */ - border-style: solid; - /* 2 */ - border-color: #e5e7eb; - /* 2 */ -} - -::before, -::after { - --tw-content: ''; -} - -/* -1. Use a consistent sensible line-height in all browsers. -2. Prevent adjustments of font size after orientation changes in iOS. -3. Use a more readable tab size. -4. Use the user's configured `sans` font-family by default. -*/ - -html { - line-height: 1.5; - /* 1 */ - -webkit-text-size-adjust: 100%; - /* 2 */ - -moz-tab-size: 4; - /* 3 */ - -o-tab-size: 4; - tab-size: 4; - /* 3 */ - font-family: Biolinum, sans-serif; - /* 4 */ -} - -/* -1. Remove the margin in all browsers. -2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. -*/ - -body { - margin: 0; - /* 1 */ - line-height: inherit; - /* 2 */ -} - -/* -1. Add the correct height in Firefox. -2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) -3. Ensure horizontal rules are visible by default. -*/ - -hr { - height: 0; - /* 1 */ - color: inherit; - /* 2 */ - border-top-width: 1px; - /* 3 */ -} - -/* -Add the correct text decoration in Chrome, Edge, and Safari. -*/ - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; -} - -/* -Remove the default font size and weight for headings. -*/ - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit; -} - -/* -Reset links to optimize for opt-in styling instead of opt-out. -*/ - -a { - color: inherit; - text-decoration: inherit; -} - -/* -Add the correct font weight in Edge and Safari. -*/ - -b, -strong { - font-weight: bolder; -} - -/* -1. Use the user's configured `mono` font family by default. -2. Correct the odd `em` font sizing in all browsers. -*/ - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace, mono; - /* 1 */ - font-size: 1em; - /* 2 */ -} - -/* -Add the correct font size in all browsers. -*/ - -small { - font-size: 80%; -} - -/* -Prevent `sub` and `sup` elements from affecting the line height in all browsers. -*/ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* -1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) -2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) -3. Remove gaps between table borders by default. -*/ - -table { - text-indent: 0; - /* 1 */ - border-color: inherit; - /* 2 */ - border-collapse: collapse; - /* 3 */ -} - -/* -1. Change the font styles in all browsers. -2. Remove the margin in Firefox and Safari. -3. Remove default padding in all browsers. -*/ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - /* 1 */ - font-size: 100%; - /* 1 */ - line-height: inherit; - /* 1 */ - color: inherit; - /* 1 */ - margin: 0; - /* 2 */ - padding: 0; - /* 3 */ -} - -/* -Remove the inheritance of text transform in Edge and Firefox. -*/ - -button, -select { - text-transform: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Remove default button styles. -*/ - -button, -[type='button'], -[type='reset'], -[type='submit'] { - -webkit-appearance: button; - /* 1 */ - background-color: transparent; - /* 2 */ - background-image: none; - /* 2 */ -} - -/* -Use the modern Firefox focus style for all focusable elements. -*/ - -:-moz-focusring { - outline: auto; -} - -/* -Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) -*/ - -:-moz-ui-invalid { - box-shadow: none; -} - -/* -Add the correct vertical alignment in Chrome and Firefox. -*/ - -progress { - vertical-align: baseline; -} - -/* -Correct the cursor style of increment and decrement buttons in Safari. -*/ - -::-webkit-inner-spin-button, -::-webkit-outer-spin-button { - height: auto; -} - -/* -1. Correct the odd appearance in Chrome and Safari. -2. Correct the outline style in Safari. -*/ - -[type='search'] { - -webkit-appearance: textfield; - /* 1 */ - outline-offset: -2px; - /* 2 */ -} - -/* -Remove the inner padding in Chrome and Safari on macOS. -*/ - -::-webkit-search-decoration { - -webkit-appearance: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Change font properties to `inherit` in Safari. -*/ - -::-webkit-file-upload-button { - -webkit-appearance: button; - /* 1 */ - font: inherit; - /* 2 */ -} - -/* -Add the correct display in Chrome and Safari. -*/ - -summary { - display: list-item; -} - -/* -Removes the default spacing and border for appropriate elements. -*/ - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0; -} - -fieldset { - margin: 0; - padding: 0; -} - -legend { - padding: 0; -} - -ol, -ul, -menu { - list-style: none; - margin: 0; - padding: 0; -} - -/* -Prevent resizing textareas horizontally by default. -*/ - -textarea { - resize: vertical; -} - -/* -1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) -2. Set the default placeholder color to the user's configured gray 400 color. -*/ - -input::-moz-placeholder, textarea::-moz-placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -input:-ms-input-placeholder, textarea:-ms-input-placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -input::placeholder, -textarea::placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -/* -Set the default cursor for buttons. -*/ - -button, -[role="button"] { - cursor: pointer; -} - -/* -Make sure disabled buttons don't get the pointer cursor. -*/ - -:disabled { - cursor: default; -} - -/* -1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) -2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) - This can trigger a poorly considered lint error in some tools but is included by design. -*/ - -img, -svg, -video, -canvas, -audio, -iframe, -embed, -object { - display: block; - /* 1 */ - vertical-align: middle; - /* 2 */ -} - -/* -Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) -*/ - -img, -video { - max-width: 100%; - height: auto; -} - -/* -Ensure the default browser behavior of the `hidden` attribute. -*/ - -[hidden] { - display: none; -} - -*, ::before, ::after { - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; -} - -* { - transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 100ms; -} - -/* TODO: check what can be inlined (eg. used once in the code, has no double paths etc...) */ - -/* TODO: Copy color classes for all thing upload to colors on top */ - -/* Everything related to theme color */ - -body { - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} - -.dark body { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); - background-image: none; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.ha-topnav-dropdown .ha-topnav-dropdown-content { - border-bottom-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(148 163 184 / var(--tw-border-opacity)); - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); - --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-topnav-dropdown .ha-topnav-dropdown-content a:hover { - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity)); -} - -.ha-topnav a { - --tw-text-opacity: 1; - color: rgb(51 65 85 / var(--tw-text-opacity)); -} - -.ha-topnav a:hover { - --tw-text-opacity: 1; - color: rgb(15 23 42 / var(--tw-text-opacity)); -} - -.dark .ha-topnav a.active { - --tw-border-opacity: 1; - border-color: rgb(51 65 85 / var(--tw-border-opacity)); - font-weight: 700; -} - -@media (min-width: 1190px) { - .ha-topnav a.active { - border-bottom-width: 4px; - --tw-border-opacity: 1; - border-color: rgb(226 232 240 / var(--tw-border-opacity)); - } -} - -.ha-topnav.ha-topnav-collapsed - .ha-topnav-dropdown - .ha-topnav-dropdown-content { - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -@media (min-width: 1190px) { - .ha-topnav.ha-topnav-collapsed - .ha-topnav-dropdown - .ha-topnav-dropdown-content { - border-bottom-width: 1px; - --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - } -} - -.ha-menusymbol svg { - stroke: #000; - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} - -.ha-footer .ha-footertext { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} - -.dark .ha-footer .ha-footertext { - --tw-bg-opacity: 1; - background-color: rgb(51 65 85 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.ha-footer .ha-themetoggles { - --tw-bg-opacity: 1; - background-color: rgb(226 232 240 / var(--tw-bg-opacity)); - --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); - --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 300ms; -} - -.dark .ha-footer .ha-themetoggles { - --tw-bg-opacity: 1; - background-color: rgb(30 41 59 / var(--tw-bg-opacity)); -} - -.ha-footer .ha-themetoggles #ha-toggledark:checked ~ .ha-themetoggleslider { - --tw-bg-opacity: 1; - background-color: rgb(226 232 240 / var(--tw-bg-opacity)); - transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 300ms; -} - -.ha-footer .ha-themetoggles #ha-togglebright:checked ~ .ha-themetoggleslider { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); - transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 300ms; -} - -.ha-static { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.dark .ha-static { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); -} - -.ha-static h3 { - --tw-text-opacity: 1; - color: rgb(216 0 0 / var(--tw-text-opacity)); -} - -.dark .ha-static h3 { - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.ha-static table th { - --tw-text-opacity: 1; - color: rgb(216 0 0 / var(--tw-text-opacity)); -} - -.dark .ha-static table th { - font-weight: 700; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.ha-static table tr:nth-child(even) { - --tw-bg-opacity: 1; - background-color: rgb(226 232 240 / var(--tw-bg-opacity)); -} - -.dark .ha-static table tr:nth-child(even) { - --tw-bg-opacity: 1; - background-color: rgb(51 65 85 / var(--tw-bg-opacity)); -} - -.ha-register .ha-register-head, .ha-register .ha-register-body { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.dark .ha-register .ha-register-head, .dark .ha-register .ha-register-body { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(248 250 252 / var(--tw-text-opacity)); - --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-register .ha-register-head { - border-bottom-width: 2px; - --tw-border-opacity: 1; - border-color: rgb(226 232 240 / var(--tw-border-opacity)); -} - -.ha-register .ha-register-head .ha-register-nav a { - --tw-text-opacity: 1; - color: rgb(51 65 85 / var(--tw-text-opacity)); -} - -.ha-register .ha-register-head .ha-register-nav a:hover { - --tw-text-opacity: 1; - color: rgb(15 23 42 / var(--tw-text-opacity)); -} - -.dark .ha-register .ha-register-head .ha-register-nav a { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.dark .ha-register .ha-register-head .ha-register-nav a:hover { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); -} - -.ha-register .ha-register-head .ha-register-nav a.active { - border-bottom-width: 2px; - --tw-border-opacity: 1; - border-color: rgb(226 232 240 / var(--tw-border-opacity)); -} - -.dark .ha-register .ha-register-head .ha-register-nav a.active { - font-weight: 700; - --tw-text-opacity: 1 !important; - color: rgb(229 231 235 / var(--tw-text-opacity)) !important; -} - -.dark .ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks, .dark .ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(248 250 252 / var(--tw-text-opacity)); -} - -@media (min-width: 1190px) { - .ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks, .ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); - } -} - -.ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks::before, .ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks::before { - --tw-bg-opacity: 1; - background-color: rgb(148 163 184 / var(--tw-bg-opacity)); -} - -.dark .ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks::before, .dark .ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks::before { - --tw-bg-opacity: 1; - background-color: rgb(100 116 139 / var(--tw-bg-opacity)); -} - -.ha-register .ha-register-body .ha-commenthead .ha-letlinks.ha-expanded-box { - --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.dark .ha-register .ha-register-body .ha-commenthead .ha-letlinks.ha-expanded-box { - --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-register .ha-btn-collapsed-box { - position: absolute; - top: -0.15rem; - display: none; - cursor: pointer; -} - -@media (min-width: 1190px) { - .ha-register .ha-btn-collapsed-box { - display: block; - } -} - -.ha-register - .ha-register-body - .ha-comment - .ha-commenthead - .ha-letlinks - .ha-hkb { - --tw-text-opacity: 1; - color: rgb(15 23 42 / var(--tw-text-opacity)); -} - -.dark .ha-register - .ha-register-body - .ha-comment - .ha-commenthead - .ha-letlinks - .ha-hkb { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks a { - -webkit-text-decoration-line: none; - text-decoration-line: none; -} - -.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks a:hover { - --tw-text-opacity: 1; - color: rgb(15 23 42 / var(--tw-text-opacity)); - -webkit-text-decoration-line: underline; - text-decoration-line: underline; -} - -.dark .ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks a:hover { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity)); -} - -.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks { - --tw-text-opacity: 1; - color: rgb(71 85 105 / var(--tw-text-opacity)); -} - -.dark .ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.ha-letterhead .ha-metadata .ha-tooltiptext { - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity)); - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-tooltip .ha-tooltiptext::after { - --tw-border-opacity: 1; - border-top-color: rgb(71 85 105 / var(--tw-border-opacity)); - border-left-color: transparent; - border-right-color: transparent; - border-bottom-color: transparent; -} - -.ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill { - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity)); - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.dark .ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); -} - -.ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross::before { - border-bottom-width: 2px; - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity)); -} - -.dark .ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross::before { - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity)); -} - -.ha-letterheader { - border-bottom-width: 2px; - --tw-border-opacity: 1; - border-color: rgb(203 213 225 / var(--tw-border-opacity)); - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.dark .ha-letterheader { - --tw-border-opacity: 1; - border-color: rgb(248 250 252 / var(--tw-border-opacity)); - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(248 250 252 / var(--tw-text-opacity)); - --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-letterheader .ha-lettertabs a { - --tw-text-opacity: 1; - color: rgb(51 65 85 / var(--tw-text-opacity)); -} - -.ha-letterheader .ha-lettertabs a:hover { - --tw-text-opacity: 1; - color: rgb(15 23 42 / var(--tw-text-opacity)); -} - -.dark .ha-letterheader .ha-lettertabs a { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.dark .ha-letterheader .ha-lettertabs a:hover { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity)); -} - -.ha-letterheader .ha-lettertabs a.active { - border-bottom-width: 3px; - --tw-border-opacity: 1; - border-color: rgb(203 213 225 / var(--tw-border-opacity)); - --tw-text-opacity: 1; - color: rgb(216 0 0 / var(--tw-text-opacity)); -} - -.dark .ha-letterheader .ha-lettertabs a.active { - --tw-border-opacity: 1; - border-color: rgb(248 250 252 / var(--tw-border-opacity)); - font-weight: 700; - --tw-text-opacity: 1 !important; - color: rgb(229 231 235 / var(--tw-text-opacity)) !important; -} - -.ha-letterheader .ha-lettermetalinks { - border-bottom-width: 2px; - --tw-border-opacity: 1; - border-color: rgb(203 213 225 / var(--tw-border-opacity)); -} - -.ha-letterheader .ha-lettermetalinks a { - --tw-text-opacity: 1; - color: rgb(51 65 85 / var(--tw-text-opacity)); -} - -.ha-letterheader .ha-lettermetalinks a:hover { - --tw-text-opacity: 1; - color: rgb(15 23 42 / var(--tw-text-opacity)); -} - -.dark .ha-letterheader .ha-lettermetalinks a { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.dark .ha-letterheader .ha-lettermetalinks a:hover { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity)); -} - -.ha-letterbody { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.dark .ha-letterbody { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); - --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-lettertext { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.dark .ha-lettertext { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); -} - -@media (min-width: 700px) { - .ha-lettertext { - border-left-width: 2px; - } - - .dark .ha-lettertext { - border-style: none; - } -} - -.ha-marginals { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.dark .ha-marginals { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); -} - -.ha-additions { - display: none; - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.dark .ha-additions { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); -} - -.ha-additions .ha-edits .ha-editentries table tr:nth-child(even) { - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity)); -} - -.dark .ha-additions .ha-edits .ha-editentries table tr:nth-child(even) { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); -} - -.ha-linecount.ha-firstline { - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -@media (min-width: 700px) { - .ha-linecount.ha-firstline { - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity)); - } - - .dark .ha-linecount.ha-firstline { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); - } - - .ha-linecount .ha-zhpage, .ha-linecount .ha-zhline { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); - } - - .dark .ha-linecount .ha-zhpage, .dark .ha-linecount .ha-zhline { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); - } -} - -.ha-tradzhtext .ha-marginal::before, .ha-lettertext .ha-marginal:before { - --tw-bg-opacity: 1; - background-color: rgb(148 163 184 / var(--tw-bg-opacity)); -} - -.dark .ha-tradzhtext .ha-marginal::before, .dark .ha-lettertext .ha-marginal:before { - --tw-bg-opacity: 1; - background-color: rgb(100 116 139 / var(--tw-bg-opacity)); -} - -.ha-tradzhtext .ha-marginalbox, .ha-lettertext .ha-marginalbox { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.dark .ha-tradzhtext .ha-marginalbox, .dark .ha-lettertext .ha-marginalbox { - --tw-bg-opacity: 1; - background-color: rgb(15 23 42 / var(--tw-bg-opacity)); -} - -.ha-tradzhtext .ha-marginalbox.ha-expanded-box .ha-marginallist, .ha-lettertext .ha-marginalbox.ha-expanded-box .ha-marginallist { - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity)); - padding-bottom: 0.25rem; - --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.dark .ha-tradzhtext .ha-marginalbox.ha-expanded-box .ha-marginallist, .dark .ha-lettertext .ha-marginalbox.ha-expanded-box .ha-marginallist { - --tw-bg-opacity: 1; - background-color: rgb(71 85 105 / var(--tw-bg-opacity)); - --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-tradzhtext .ha-btn-collapsed-box, .ha-lettertext .ha-btn-collapsed-box { - --tw-text-opacity: 1; - color: rgb(51 65 85 / var(--tw-text-opacity)); -} - -.ha-tradzhtext .ha-btn-collapsed-box:hover, .ha-lettertext .ha-btn-collapsed-box:hover { - --tw-text-opacity: 1; - color: rgb(15 23 42 / var(--tw-text-opacity)); -} - -.dark .ha-tradzhtext .ha-btn-collapsed-box, .dark .ha-lettertext .ha-btn-collapsed-box { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.dark .ha-tradzhtext .ha-btn-collapsed-box:hover, .dark .ha-lettertext .ha-btn-collapsed-box:hover { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity)); -} - -.ha-added, .ha-added *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - --tw-bg-opacity: 1; - background-color: rgb(203 213 225 / var(--tw-bg-opacity)); -} - -.dark .ha-added, .dark .ha-added *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - --tw-bg-opacity: 1; - background-color: rgb(71 85 105 / var(--tw-bg-opacity)); -} - -.ha-note, .ha-note *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - --tw-text-opacity: 1; - color: rgb(51 65 85 / var(--tw-text-opacity)); -} - -.dark .ha-note, .dark .ha-note *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - --tw-text-opacity: 1; - color: rgb(100 116 139 / var(--tw-text-opacity)); -} - -.ha-ful, .ha-ful *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} - -.dark .ha-ful, .dark .ha-ful *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - --tw-border-opacity: 1; - border-color: rgb(255 255 255 / var(--tw-border-opacity)); -} - -.ha-tul, .ha-tul *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} - -.dark .ha-tul, .dark .ha-tul *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - --tw-border-opacity: 1; - border-color: rgb(255 255 255 / var(--tw-border-opacity)); -} - -.ha-diagdel::before { - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} - -.dark .ha-diagdel::before { - --tw-border-opacity: 1; - border-color: rgb(255 255 255 / var(--tw-border-opacity)); -} - -.active { - --tw-text-opacity: 1 !important; - color: rgb(216 0 0 / var(--tw-text-opacity)) !important; -} - -.dark .active { - --tw-text-opacity: 1 !important; - color: rgb(0 0 0 / var(--tw-text-opacity)) !important; -} - -.active:hover { - --tw-text-opacity: 1 !important; - color: rgb(216 0 0 / var(--tw-text-opacity)) !important; -} - -.dark .active:hover { - --tw-text-opacity: 1 !important; - color: rgb(31 41 55 / var(--tw-text-opacity)) !important; -} - -/* Classes */ - -body { - height: 100%; - width: 100%; - font-size: 1rem; - line-height: 1.5rem; -} - -@media (min-width: 1190px) { - body { - font-size: 1.125rem; - line-height: 1.75rem; - } -} - -.ha-topnav { - display: flex; -} - -@media (min-width: 960px) { - .ha-topnav { - font-size: 1.125rem; - line-height: 1.75rem; - } -} - -@media (min-width: 1190px) { - .ha-topnav { - flex-shrink: 0; - flex-grow: 0; - place-self: end; - } -} - -@media (min-width: 1440px) { - .ha-topnav { - margin-bottom: 0.25rem; - } -} - -@media (min-width: 1680px) { - .ha-topnav { - font-size: 1.25rem; - line-height: 1.75rem; - } -} - -.ha-topnav a { - margin-right: 1.5rem; - display: none; -} - -@media (min-width: 1190px) { - .ha-topnav a { - display: inline-block; - } -} - -@media (min-width: 1680px) { - .ha-topnav a { - margin-right: 1.75rem; - } -} - -.ha-topnav a:last-child { - margin-right: 0px; -} - -.ha-topnav-dropdown { - display: none; -} - -@media (min-width: 1190px) { - .ha-topnav-dropdown { - position: relative; - display: inline-block; - } - - .ha-topnav-dropdown:hover .ha-topnav-dropdown-content { - display: block; - } -} - -.ha-topnav-dropdown .ha-topnav-dropdown-content { - right: 0px; - z-index: 50; - margin-right: 1.5rem; - display: none; - min-width: 130px; - padding-top: 0.25rem; -} - -@media (min-width: 1190px) { - .ha-topnav-dropdown .ha-topnav-dropdown-content { - position: absolute; - } -} - -.ha-topnav-dropdown .ha-topnav-dropdown-content a { - margin-right: 0px; - display: block; - padding-top: 0.5rem; - padding-bottom: 0.5rem; - padding-left: 0.5rem; - padding-right: 0.75rem; -} - -.ha-topnav-dropdown .ha-topnav-dropdown-content .active { - border-style: none; -} - -/* Classes for the footer */ - -.ha-footer { - font-family: Libertine, serif; -} - -.ha-footer .ha-footertext { - margin-left: auto; - margin-right: auto; - max-width: 1190px; - padding: 0.5rem; - padding-left: 1rem; - padding-right: 1rem; - text-align: right; - font-size: 0.875rem; - line-height: 1.25rem; -} - -.ha-footer a { - -webkit-text-decoration-line: underline; - text-decoration-line: underline; - -webkit-text-decoration-style: dotted; - text-decoration-style: dotted; -} - -.ha-footer a:hover { - -webkit-text-decoration-style: solid; - text-decoration-style: solid; -} - -.ha-footer .ha-themetoggles { - position: relative; - height: 1rem; - width: 34px; - white-space: nowrap; - border-radius: 1.5rem; - padding-left: 0.125rem; - padding-right: 0.125rem; -} - -.ha-footer .ha-themetoggles * { - float: left; -} - -.ha-footer .ha-themetoggles input[type="radio"] { - display: none; -} - -.ha-footer .ha-themetoggles label { - z-index: 10; - margin-top: 3px; - margin-bottom: 3px; - margin-left: 2px; - margin-right: 2px; - display: block; - height: 11px; - width: 11px; - cursor: pointer; - border-radius: 1.5rem; - text-align: center; -} - -.ha-footer .ha-themetoggles .ha-themetoggleslider { - position: absolute; - top: 3px; - height: 11px; - width: 11px; - border-radius: 1.5rem; - --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - transition-property: all; - transition-duration: 100ms; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); -} - -.ha-footer .ha-themetoggles #ha-toggledark:checked ~ .ha-themetoggleslider { - left: 0.25rem; -} - -.ha-footer .ha-themetoggles #ha-togglebright:checked ~ .ha-themetoggleslider { - left: 19px; -} - -/* Classes for static pages */ - -.ha-static { - width: 100%; - padding-top: 3rem; - padding-bottom: 3rem; - padding-left: 3rem; - padding-right: 3rem; - font-family: Libertine, serif; - -webkit-hyphens: auto; - -ms-hyphens: auto; - hyphens: auto; -} - -@media (min-width: 960px) { - .ha-static { - padding-left: 4rem; - padding-right: 4rem; - } -} - -.ha-static h1 { - margin-bottom: 1.5rem; - font-size: 1.25rem; - line-height: 1.75rem; - font-weight: 700; -} - -@media (min-width: 1190px) { - .ha-static h1 { - font-size: 2.25rem; - line-height: 2.5rem; - font-weight: 400; - } -} - -.ha-static h2 { - margin-bottom: 0.75rem; - margin-top: 1rem; - font-size: 1.125rem; - line-height: 1.75rem; -} - -@media (min-width: 1190px) { - .ha-static h2 { - font-size: 1.5rem; - line-height: 2rem; - } -} - -.ha-static h3 { - margin-top: 1rem; - margin-bottom: 0.5rem; -} - -.ha-static table { - margin-top: 0.75rem; - margin-bottom: 0.75rem; - width: 100%; -} - -.ha-static table th { - padding-left: 0.5rem; - padding-right: 0.5rem; - text-align: left; - font-weight: 400; -} - -@media (min-width: 1190px) { - .ha-static table th { - padding-right: 1rem; - } -} - -.ha-static table tr td { - padding-left: 0.5rem; - padding-right: 0.5rem; - vertical-align: top; -} - -@media (min-width: 1190px) { - .ha-static table tr td { - white-space: nowrap; - padding-right: 1rem; - } - - .ha-static table tr td:last-child { - white-space: normal; - } -} - -.ha-static p { - margin-top: 0.75rem; - margin-bottom: 0.75rem; -} - -.ha-static a { - -webkit-text-decoration-line: underline; - text-decoration-line: underline; - -webkit-text-decoration-style: dotted; - text-decoration-style: dotted; -} - -.ha-static a:hover { - -webkit-text-decoration-line: underline; - text-decoration-line: underline; - -webkit-text-decoration-style: solid; - text-decoration-style: solid; -} - -.ha-static .ha-footnote { - position: relative; - font-size: 0.875rem; - line-height: 1.25rem; -} - -@media (min-width: 1190px) { - .ha-static .ha-footnote { - font-size: 1rem; - line-height: 1.5rem; - } -} - -.ha-static .ha-footnote .ha-footnote-ref { - position: absolute; - left: -2.5rem; - display: inline-block; - width: 2rem; - text-align: right; -} - -/* Classes for register pages */ - -.ha-register { - width: 100%; - font-family: Libertine, serif; - font-variant-numeric: oldstyle-nums; -} - -.ha-register .ha-register-head, .ha-register .ha-register-body { - padding-left: 2.25rem; - padding-right: 2.25rem; - padding-top: 2.25rem; -} - -@media (min-width: 960px) { - .ha-register .ha-register-head, .ha-register .ha-register-body { - padding-left: 4rem; - padding-right: 4rem; - padding-top: 3rem; - } -} - -.ha-register .ha-register-head { - border-top-left-radius: 0.125rem; - border-top-right-radius: 0.125rem; -} - -.ha-register .ha-register-head h1 { - margin-bottom: 1.5rem; - font-size: 1.25rem; - line-height: 1.75rem; - font-weight: 700; -} - -@media (min-width: 1190px) { - .ha-register .ha-register-head h1 { - font-size: 2.25rem; - line-height: 2.5rem; - font-weight: 400; - } -} - -.ha-register .ha-register-head .ha-register-nav { - font-family: Biolinum, sans-serif; -} - -.ha-register .ha-register-head .ha-register-nav a { - margin-right: 0.25rem; - display: inline-block; - padding-left: 0.25rem; - padding-right: 0.25rem; -} - -@media (min-width: 960px) { - .ha-register .ha-register-head .ha-register-nav a { - margin-right: 0.75rem; - } -} - -.ha-register .ha-register-head .ha-register-nav a:first { - padding-left: 0px; -} - -.ha-register .ha-register-head .ha-register-nav .ha-register-left-nav { - display: inline-block; -} - -.ha-register .ha-register-head .ha-register-nav .ha-register-right-nav { - display: inline-block; -} - -.ha-register .ha-register-body { - border-bottom-right-radius: 0.125rem; - border-bottom-left-radius: 0.125rem; - padding-bottom: 2.25rem; -} - -@media (min-width: 960px) { - .ha-register .ha-register-body { - padding-right: 24rem; - padding-bottom: 3rem; - } -} - -.ha-register .ha-register-body .ha-comment { - margin-bottom: 2.25rem; - display: block; -} - -@media (min-width: 960px) { - .ha-register .ha-register-body .ha-comment { - margin-bottom: 3rem; - } -} - -.ha-register .ha-register-body .ha-comment a { - -webkit-text-decoration-line: underline; - text-decoration-line: underline; - -webkit-text-decoration-style: dotted; - text-decoration-style: dotted; -} - -.ha-register .ha-register-body .ha-comment a:hover { - -webkit-text-decoration-style: solid; - text-decoration-style: solid; -} - -.ha-register .ha-register-body .ha-comment .ha-headcomment { - display: block; -} - -@media (min-width: 1190px) { - .ha-register .ha-register-body .ha-comment .ha-headcomment { - position: relative; - } -} - -.ha-register .ha-register-body .ha-comment .ha-subcomment { - margin-left: 2rem; - margin-top: 0.5rem; - display: block; -} - -@media (min-width: 1190px) { - .ha-register .ha-register-body .ha-comment .ha-subcomment { - position: relative; - } -} - -.ha-register .ha-register-body .ha-comment .ha-commenthead { - display: block; -} - -.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-lemma { - display: inline; - font-weight: 700; -} - -.ha-register - .ha-forschung - .ha-register-body - .ha-comment - .ha-commenthead - .ha-lemma { - display: inline; - font-weight: 400; -} - -.ha-register .ha-forschung .ha-register-body .ha-comment { - margin-bottom: 1rem; - padding-left: 1rem; - text-indent: -1rem; -} - -@media (min-width: 960px) { - .ha-register .ha-forschung .ha-register-body .ha-comment { - margin-bottom: 1.5rem; - } -} - -.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks { - margin-left: 0.5rem; - display: inline-block; - font-family: Biolinum, sans-serif; - font-size: 0.75rem; - line-height: 1rem; - font-weight: 400; - line-height: 1.375; - font-variant-caps: all-petite-caps; -} - -@media (min-width: 960px) { - .ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks { - font-size: 0.875rem; - line-height: 1.25rem; - } -} - -.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks::before { - position: absolute; - top: 0.1rem; - bottom: 0.1rem; - left: 0px; - width: 0.125rem; - --tw-content: ''; - content: var(--tw-content); -} - -.ha-register - .ha-register-body - .ha-comment - .ha-commenthead - .ha-letlinks - .ha-hkb { - display: inline; -} - -@media (min-width: 1190px) { - .ha-register - .ha-neuzeit - .ha-register-body - .ha-headcomment - .ha-commenthead - .ha-letlinks, .ha-register - .ha-forschung - .ha-register-body - .ha-headcomment - .ha-commenthead - .ha-letlinks { - left: 48rem; - } - - .ha-register - .ha-neuzeit - .ha-register-body - .ha-subcomment - .ha-commenthead - .ha-letlinks, .ha-register - .ha-forschung - .ha-register-body - .ha-subcomment - .ha-commenthead - .ha-letlinks { - left: 46rem; - } -} - -.ha-register .ha-bibel .ha-register-body .ha-commenthead .ha-lemma a { - padding-left: 0.5rem; -} - -.ha-register .ha-bibel .ha-register-body .ha-commenthead .ha-lemma svg { - display: inline; -} - -.ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks, .ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks { - padding-left: 0.5rem; -} - -@media (min-width: 1190px) { - .ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks, .ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks { - position: absolute; - top: 0px; - display: block; - width: 20rem; - text-indent: 0px; - } -} - -.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks a:hover { - --tw-text-opacity: 1; - color: rgb(15 23 42 / var(--tw-text-opacity)); -} - -/* Classes for MetaData View */ - -.ha-letterhead { - display: flex; - flex-direction: row; -} - -.ha-letterhead .ha-letternumber { - margin-right: 1rem; - display: flex; - font-size: 3rem; - line-height: 1; -} - -@media (min-width: 1190px) { - .ha-letterhead .ha-letternumber { - margin-right: 1.5rem; - font-size: 3.75rem; - line-height: 1; - font-weight: 400; - } -} - -.ha-letterhead .ha-letternumber .ha-letternumberinline { - display: inline; - vertical-align: middle; - line-height: 1; -} - -.ha-letterhead .ha-metadata { - display: flex; - flex-shrink: 0; - flex-grow: 1; - align-self: flex-end; -} - -.ha-letterhead .ha-metadata .ha-metadatarows { - display: flex; - flex-direction: column; -} - -.ha-letterhead .ha-metadata .ha-metadataupperrow { - display: flex; - flex-direction: row; - line-height: 1.375; -} - -.ha-letterhead - .ha-metadata - .ha-metadatarows - .ha-metadataupperrow - .ha-metadatadate { - display: flex; - font-variant-numeric: oldstyle-nums; - font-variant-caps: petite-caps; -} - -.ha-letterhead .ha-metadata .ha-tooltip { - position: relative; - display: inline-block; - cursor: default; - align-self: center; -} - -.ha-letterhead .ha-metadata .ha-tooltiptext { - position: absolute; - z-index: 10; - border-radius: 0.25rem; - padding-left: 0.25rem; - padding-right: 0.25rem; - padding-top: 0.125rem; - padding-bottom: 0.125rem; - text-align: center; - font-size: 0.875rem; - line-height: 1.25rem; -} - -.ha-letterhead .ha-metadata .ha-tooltiptext::after { - position: absolute; - top: 100%; - left: 50%; -} - -.ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill { - margin-left: 0.5rem; - border-radius: 0.25rem; - padding-left: 0.5rem; - padding-right: 0.5rem; - padding-top: 0.1rem; - padding-bottom: 0.1rem; - font-size: 0.75rem; - line-height: 1rem; -} - -.ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross { - position: relative; - display: inline-block; -} - -.ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross::before, .ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross::after { - position: absolute; - right: 0px; - top: 50%; - height: 0px; - width: 100%; -} - -.ha-letterhead .ha-metadata .ha-metadatarows .hametadatapersons { - display: flex; - line-height: 1.375; -} - -/* Classes for Upload View */ - -.ha-adminuploadfields { - display: flex; - flex-direction: row; - flex-wrap: wrap; - -moz-column-gap: 1rem; - column-gap: 1rem; - row-gap: 1rem; -} - -.ha-adminuploadfields .ha-uploadfield { - display: block; - max-width: 20rem; - flex-shrink: 0; - flex-grow: 1; - flex-basis: 16rem; - border-radius: 0.25rem; - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-adminuploadfields .ha-uploadfield:hover { - --tw-brightness: brightness(1.1); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.ha-adminuploadfields .ha-uploadfield.active { - --tw-text-opacity: 1 !important; - color: rgb(0 0 0 / var(--tw-text-opacity)) !important; - --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); - --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - --tw-brightness: brightness(1.1); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.ha-adminuploadfields .ha-uploadfield .ha-uploadfieldname { - padding-left: 0.75rem; - padding-right: 0.75rem; - padding-top: 0.5rem; - padding-bottom: 0.25rem; -} - -.ha-adminuploadfields .ha-uploadusedfiles { - width: auto; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(203 213 225 / var(--tw-border-opacity)); - background-color: rgb(226 232 240 / var(--tw-bg-opacity)); - --tw-bg-opacity: 0.3; - padding-left: 0.5rem; - padding-right: 0.5rem; - padding-top: 0.125rem; - padding-bottom: 0.125rem; - font-size: 0.875rem; - line-height: 1.25rem; -} - -.ha-adminuploadfields .ha-uploadusedfiles.ha-uploadusedfilesnotfound { - --tw-border-opacity: 1; - border-color: rgb(100 116 139 / var(--tw-border-opacity)); - --tw-bg-opacity: 1; - background-color: rgb(100 116 139 / var(--tw-bg-opacity)); -} - -.ha-adminuploadfields .ha-uploadpublishforms { - display: flex; - flex-grow: 1; - flex-direction: row; - -moz-column-gap: 1rem; - column-gap: 1rem; -} - -.ha-adminuploadfields .ha-uploadform { - position: relative; - flex-grow: 1; - border-radius: 0.25rem; - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-adminuploadfields .ha-uploadform .ha-uploadtext { - text-align: center; -} - -.ha-adminuploadfields .ha-uploadform .ha-lds-ellipsis { - left: 50%; - margin-left: -20px; -} - -.ha-adminuploadfields .ha-uploadform .ha-uploadfilelabel { - display: inline-block; - height: 100%; - width: 100%; - cursor: pointer; - padding-left: 1rem; - padding-right: 1rem; - padding-bottom: 0.25rem; - padding-top: 0.5rem; -} - -.ha-adminuploadfields .ha-uploadform .ha-uploadfilelabel:hover { - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity)); -} - -.ha-adminuploadfields .ha-uploadform .ha-uploadmessage { - border-radius: 0.125rem; - background-color: rgb(51 65 85 / var(--tw-bg-opacity)); - --tw-bg-opacity: 0.3; - padding-left: 0.25rem; - padding-right: 0.25rem; - font-size: 0.875rem; - line-height: 1.25rem; -} - -.ha-adminuploadfields .ha-publishbutton { - display: inline-block; - height: 100%; - width: 100%; - flex-shrink: 1; - cursor: pointer; - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); - padding-left: 0.5rem; - padding-right: 0.5rem; - padding-bottom: 0.25rem; - padding-top: 0.5rem; - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-adminuploadfields .ha-publishbutton:hover { - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity)); -} - -.ha-adminuploadfields .ha-publishbutton .ha-publishtext { - text-align: center; -} - -.ha-adminuploadfields .ha-publishbutton .ha-publishmessage { - border-radius: 0.125rem; - background-color: rgb(51 65 85 / var(--tw-bg-opacity)); - --tw-bg-opacity: 0.3; - padding-left: 0.25rem; - padding-right: 0.25rem; - font-size: 0.875rem; - line-height: 1.25rem; -} - -.ha-uploadheader { - margin-top: 1rem; - display: flex; - width: 100%; - flex-direction: row; - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); - padding-left: 4rem; - padding-right: 4rem; - padding-top: 3rem; - padding-bottom: 2rem; -} - -.ha-uploadheader h1 { - font-size: 3rem; - line-height: 1; -} - -.ha-uploadcontainer { - display: flex; - height: 100%; - width: 100%; - flex-direction: column; - row-gap: 0.5rem; - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.ha-uploadcontainer .ha-publishfilelist { - margin-bottom: 2rem; - padding-left: 4rem; - padding-right: 4rem; -} - -.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelisttitle { - margin-bottom: 0.5rem; - font-size: 1.25rem; - line-height: 1.75rem; -} - -.ha-uploadcontainer .ha-publishfilelist td { - padding-right: 1.5rem; - vertical-align: text-top; -} - -.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel { - float: right; - margin-top: 1rem; - margin-left: 1.5rem; - cursor: pointer; - border-radius: 0.375rem; - border-width: 2px; - --tw-border-opacity: 1; - border-color: rgb(37 99 235 / var(--tw-border-opacity)); - padding-left: 0.75rem; - padding-right: 0.75rem; -} - -.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel:hover { - border-width: 2px; - --tw-border-opacity: 1; - border-color: rgb(30 64 175 / var(--tw-border-opacity)); - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel:active { - --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); - --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-uploadcontainer .ha-availablefiles { - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(226 232 240 / var(--tw-border-opacity)); - padding-left: 4rem; - padding-right: 4rem; - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.ha-uploadcontainer .ha-availablefiles:hover { - --tw-border-opacity: 1; - border-color: rgb(30 41 59 / var(--tw-border-opacity)); -} - -.ha-uploadcontainer .ha-availablefiles .ha-availablefilestitle { - font-size: 1.5rem; - line-height: 2rem; -} - -.ha-uploadcontainer .ha-availablefiles .ha-usedfilelist { -} - -.ha-filesheader { - margin-bottom: 2rem; -} - -.ha-availablefileslist { - padding-left: 4rem; - padding-right: 4rem; - padding-top: 1rem; -} - -.ha-uploadcontainer .ha-errorswarnings { - display: flex; - flex-direction: row; - -moz-column-gap: 0.5rem; - column-gap: 0.5rem; -} - -.ha-uploadcontainer .ha-errorswarnings .ha-criticalerrors, .ha-uploadcontainer .ha-errorswarnings .ha-warnings { - min-height: 400px; - min-width: 40%; - flex-shrink: 1; - flex-grow: 1; - flex-basis: 50%; - overflow-x: hidden; - overflow-y: scroll; -} - -.ha-uploadcontainer .ha-errorswarnings .ha-criticalerrors { - --tw-bg-opacity: 1; - background-color: rgb(254 202 202 / var(--tw-bg-opacity)); -} - -.ha-uploadcontainer .ha-errorswarnings .ha-warnings { - --tw-bg-opacity: 1; - background-color: rgb(254 215 170 / var(--tw-bg-opacity)); -} - -.ha-uploadcontainer .ha-crossfilechecking { - height: 100%; - min-height: 400px; - width: 100%; - flex-shrink: 0; - flex-grow: 1; - --tw-bg-opacity: 1; - background-color: rgb(165 243 252 / var(--tw-bg-opacity)); -} - -.ha-uploadcontainer .ha-hamannfilechooser { - padding-left: 4rem; - padding-right: 4rem; - padding-bottom: 4rem; -} - -/* Classes for FileList Component */ - -.ha-filelistfieldset { -} - -.ha-filelistfieldset .ha-filelistlegend { - margin-bottom: 0.5rem; - font-size: 1.25rem; - line-height: 1.75rem; -} - -.ha-selectfilesform { -} - -.ha-selectfilesform .ha-filelistfile { - display: flex; - flex-direction: row; - align-items: center; - -moz-column-gap: 1rem; - column-gap: 1rem; - padding-left: 0.25rem; - padding-right: 0.25rem; -} - -.ha-selectfilesform .ha-filelistfile:nth-child(even) { - --tw-bg-opacity: 1; - background-color: rgb(241 245 249 / var(--tw-bg-opacity)); -} - -.ha-selectfilesform .ha-filelistlist { - height: 24rem; - overflow-x: hidden; - overflow-y: scroll; - padding-right: 1rem; -} - -.ha-selectfilesform .ha-filelistfile .ha-filelistname { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace, mono; -} - -.ha-selectfilesform .ha-filelistfile .ha-filelistusedproduction { - font-size: 0.875rem; - line-height: 1.25rem; -} - -.ha-selectfilesform .ha-filelistfile .ha-filelistusedproduction .ha-filelistproduction { - margin-right: 0.5rem; - display: inline-block; - border-radius: 0.375rem; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(13 148 136 / var(--tw-border-opacity)); - padding-left: 0.5rem; - padding-right: 0.5rem; - --tw-text-opacity: 1; - color: rgb(13 148 136 / var(--tw-text-opacity)); -} - -.ha-selectfilesform .ha-filelistfile .ha-filelistusedproduction .ha-filelistused { - display: inline-block; - border-radius: 0.375rem; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(79 70 229 / var(--tw-border-opacity)); - padding-left: 0.5rem; - padding-right: 0.5rem; - --tw-text-opacity: 1; - color: rgb(79 70 229 / var(--tw-text-opacity)); -} - -.ha-selectfilesform .ha-filelistfile .ha-filelistmodified { - flex-grow: 1; - text-align: right; -} - -.ha-selectfilesform .ha-filelistoutput { - margin-top: 1rem; - margin-left: 1.5rem; -} - -.ha-selectfilesform .ha-filelistbutton { - float: right; - margin-top: 1rem; - margin-left: 1.5rem; - cursor: pointer; - border-radius: 0.375rem; - border-width: 2px; - --tw-border-opacity: 1; - border-color: rgb(37 99 235 / var(--tw-border-opacity)); - padding-left: 0.75rem; - padding-right: 0.75rem; -} - -.ha-selectfilesform .ha-filelistbutton:hover { - border-width: 2px; - --tw-border-opacity: 1; - border-color: rgb(30 64 175 / var(--tw-border-opacity)); - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.ha-selectfilesform .ha-filelistbutton:active { - --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); - --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -/* Classes for Letter View */ - -.ha-letterheader { - border-top-left-radius: 0.125rem; - border-top-right-radius: 0.125rem; - padding-left: 1.5rem; - padding-right: 1.5rem; - padding-top: 2rem; -} - -@media (min-width: 960px) { - .ha-letterheader { - padding-left: 4rem; - padding-right: 4rem; - padding-top: 3rem; - } -} - -.ha-letterheader .ha-letterheadernav { - margin-top: 2.25rem; - display: flex; - flex-grow: 1; -} - -.ha-letterheader .ha-lettertabs { - display: flex; - flex-grow: 1; -} - -.ha-letterheader .ha-lettertabs a { - margin-right: 0.25rem; - display: inline-block; - cursor: pointer; - padding-left: 0.25rem; - padding-right: 0.25rem; -} - -@media (min-width: 960px) { - .ha-letterheader .ha-lettertabs a { - margin-right: 0.75rem; - } - - .ha-letterheader .ha-lettertabs .ha-marginalsbtn { - display: none; - } -} - -.ha-letterheader .ha-lettertabs a.active { - pointer-events: none; -} - -.ha-letterheader .ha-lettertabs a:first { - padding-left: 0px; -} - -.ha-letterheader .ha-lettermetalinks { - align-self: flex-end; -} - -.ha-letterheader .ha-lettermetalinks a { - align-self: flex-end; - font-variant-caps: petite-caps; -} - -.ha-letterheader .ha-lettermetalinks .ha-hkb { - display: inline-block; - font-variant-caps: all-petite-caps; -} - -.ha-letterbody { - display: flex; - flex-direction: row; - flex-wrap: nowrap; - border-bottom-right-radius: 0.125rem; - border-bottom-left-radius: 0.125rem; -} - -.ha-lettertext { - position: relative; - margin-left: 1rem; - display: flow-root; - max-width: 38rem; - padding-left: 1rem; - padding-right: 1rem; - padding-top: 1rem; - padding-bottom: 2rem; - font-family: Libertine, serif; - line-height: 1.48; - font-variant-numeric: oldstyle-nums; -} - -@media (min-width: 700px) { - .ha-lettertext { - margin-left: 3rem; - flex-shrink: 0; - } -} - -@media (min-width: 1190px) { - .ha-lettertext { - max-width: 45rem; - } -} - -.ha-marginals { - position: relative; - margin-left: 1rem; - display: none; - max-width: 48rem; - padding-left: 1rem; - padding-right: 1rem; - padding-top: 1rem; - padding-bottom: 1rem; - line-height: 1.48; - font-variant-numeric: oldstyle-nums; -} - -@media (min-width: 960px) { - .ha-marginals { - margin-left: 3rem; - } -} - -.ha-marginals table td { - vertical-align: text-top; -} - -.ha-marginals .ha-marginalfromto { - white-space: nowrap; - padding-right: 1rem; - font-size: 0.875rem; - line-height: 1.25rem; - font-weight: 600; -} - -.ha-marginals .ha-marginaltext .ha-bzg { - display: inline; -} - -.ha-marginals .ha-marginaltext a { - -webkit-text-decoration-line: underline; - text-decoration-line: underline; - -webkit-text-decoration-style: dotted; - text-decoration-style: dotted; -} - -.ha-marginals .ha-marginaltext a:hover { - -webkit-text-decoration-style: solid; - text-decoration-style: solid; -} - -.ha-additions .ha-tradition div { - display: inline; -} - -.ha-additions .ha-tradition { - max-width: 56rem; -} - -.ha-additions { - position: relative; - margin-left: 1rem; - padding-left: 1rem; - padding-right: 1rem; - padding-top: 1rem; - padding-bottom: 1rem; - font-family: Libertine, serif; - line-height: 1.48; - font-variant-numeric: oldstyle-nums; -} - -@media (min-width: 960px) { - .ha-additions { - margin-left: 3rem; - } -} - -.ha-additions .ha-app { - display: block !important; - padding-top: 1.5rem; - font-weight: 700; -} - -.ha-additions .ha-app + br { - display: none; -} - -.ha-additions .ha-tradition .ha-app:first-child { - padding-top: 0px; -} - -.ha-additions .ha-tradition { - -webkit-hyphens: auto; - -ms-hyphens: auto; - hyphens: auto; -} - -.ha-additions .ha-tradition .ha-tradzhtext { - position: relative; - margin-left: -1rem; - display: flow-root !important; - width: -webkit-fit-content; - width: -moz-fit-content; - width: fit-content; - padding-left: 1rem; - font-family: Libertine, serif; - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -.ha-additions .ha-tradition a { - -webkit-text-decoration-line: underline !important; - text-decoration-line: underline !important; - -webkit-text-decoration-style: dotted; - text-decoration-style: dotted; -} - -.ha-additions .ha-tradition a:hover { - -webkit-text-decoration-style: solid; - text-decoration-style: solid; -} - -.ha-additions .ha-hands { - padding-top: 1.5rem; -} - -.ha-additions .ha-hands .ha-handstitle { - font-weight: 700; -} - -.ha-additions .ha-hands .ha-handentries .ha-handfrom, .ha-additions .ha-hands .ha-handentries .ha-handto { - display: inline; - white-space: nowrap; - font-size: 0.875rem; - line-height: 1.25rem; - font-weight: 600; -} - -.ha-additions .ha-hands .ha-handentries .ha-handperson { - display: inline; - white-space: nowrap; - padding-left: 1rem; -} - -.ha-additions .ha-edits .ha-editstitle { - font-weight: 700; -} - -.ha-additions .ha-edits .ha-editentries .ha-editfromto { - white-space: nowrap; -} - -.ha-additions .ha-edits .ha-editentries .ha-editfrom, .ha-additions .ha-edits .ha-editentries .ha-editto { - display: inline; - white-space: nowrap; - font-size: 0.875rem; - line-height: 1.25rem; - font-weight: 600; -} - -.ha-additions .ha-edits .ha-editentries .ha-editreference { - white-space: nowrap; -} - -.ha-additions .ha-edits .ha-editentries .ha-editreference div { - display: inline; -} - -.ha-additions .ha-edits { - max-width: 56rem; - padding-top: 1.5rem; -} - -.ha-additions .ha-edits .ha-editstitle { - font-weight: 700; -} - -.ha-additions .ha-edits .ha-editsinfo { - padding-bottom: 1rem; - -webkit-hyphens: auto; - -ms-hyphens: auto; - hyphens: auto; -} - -.ha-additions .ha-edits .ha-editentries tr td { - vertical-align: text-top; -} - -.ha-additions .ha-edits .ha-editentries .ha-editreas div { - display: inline; - font-family: Biolinum, sans-serif; -} - -.ha-additions .ha-edits .ha-editentries .ha-editfromto { - padding-right: 0.25rem; - padding-left: 0.25rem; -} - -.ha-additions .ha-edits .ha-editentries .ha-editreference { - border-right-width: 2px; - padding-left: 0.25rem; - padding-right: 0.75rem; - font-size: 0.875rem; - line-height: 1.25rem; -} - -.ha-additions .ha-edits .ha-editentries .ha-editreference br { - display: none; -} - -.ha-additions .ha-edits .ha-editentries .ha-editreas { - width: 100%; - padding-left: 0.75rem; -} - -.ha-additions .ha-edits .ha-editentries .ha-editreas .ha-zh * { - font-family: Libertine, serif !important; -} - -.hide { - display: none; -} - -.ha-lettertext div { - display: inline; -} - -.ha-linecount.ha-firstline { - display: none; - white-space: nowrap; - border-radius: 0.25rem; - padding-left: 0.25rem; - padding-right: 0.25rem; - font-variant-numeric: normal; - font-variant-caps: all-petite-caps; -} - -@media (min-width: 700px) { - .ha-linecount.ha-firstline { - display: inline-block; - padding-bottom: 0.25rem; - } -} - -.ha-linecount { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - font-family: Biolinum, sans-serif; - font-size: 0.75rem; - line-height: 1rem; -} - -@media (min-width: 700px) { - .ha-linecount { - position: absolute; - right: 100%; - margin-right: 0.5rem; - margin-top: 0.25rem; - text-align: right; - } -} - -.ha-linecount .ha-zhline { - display: none; -} - -@media (min-width: 700px) { - .ha-linecount .ha-zhline { - display: inline; - } -} - -.ha-linecount .ha-zhpage { - display: inline-block; -} - -@media (min-width: 700px) { - .ha-linecount .ha-zhpage { - display: inline; - } -} - -.ha-linecount .ha-zhpage, .ha-linecount .ha-zhline { - padding-left: 0.25rem; - padding-right: 0.25rem; - font-variant-numeric: normal; - font-variant-caps: all-petite-caps; -} - -@media (min-width: 700px) { - .ha-linecount .ha-zhpage, .ha-linecount .ha-zhline { - padding-bottom: 0.25rem; - } -} - -.ha-linecount .ha-hiddenlinecount { - display: none !important; -} - -.ha-tradzhtext .ha-marginal::before, .ha-lettertext .ha-marginal::before { - position: absolute; - top: 0.1rem; - bottom: 0.1rem; - left: 0px; - width: 0.125rem; - --tw-content: ''; - content: var(--tw-content); -} - -.ha-tradzhtext .ha-marginalbox, .ha-lettertext .ha-marginalbox { - position: absolute; - left: 100%; - margin-left: 1.5rem; - margin-top: 0.25rem; - display: none; - width: 16rem; - border-radius: 0.125rem; - padding-left: 0.5rem; - font-family: Biolinum, sans-serif; - font-size: 0.875rem; - line-height: 1.25rem; - line-height: 1.25; -} - -@media (min-width: 960px) { - .ha-tradzhtext .ha-marginalbox, .ha-lettertext .ha-marginalbox { - display: block; - } -} - -@media (min-width: 1190px) { - .ha-tradzhtext .ha-marginalbox, .ha-lettertext .ha-marginalbox { - width: 24rem; - } -} - -.ha-tradzhtext .ha-marginalbox .ha-marginallist, .ha-lettertext .ha-marginalbox .ha-marginallist { - display: flex; - flex-wrap: wrap; - -moz-column-gap: 1.5rem; - column-gap: 1.5rem; - padding-right: 0.25rem; - font-size: 0.875rem; - line-height: 1.25rem; - line-height: 1.25; -} - -.ha-tradzhtext .ha-marginalbox .ha-marginallist .ha-marginal, .ha-lettertext .ha-marginalbox .ha-marginallist .ha-marginal { - position: relative; - display: inline; - padding-left: 0.5rem; -} - -.ha-tradzhtext .ha-marginalbox .ha-marginallist .ha-marginal a, .ha-lettertext .ha-marginalbox .ha-marginallist .ha-marginal a { - -webkit-text-decoration-line: underline !important; - text-decoration-line: underline !important; - -webkit-text-decoration-style: dotted; - text-decoration-style: dotted; -} - -.ha-tradzhtext .ha-marginalbox .ha-marginallist .ha-marginal a:hover, .ha-lettertext .ha-marginalbox .ha-marginallist .ha-marginal a:hover { - -webkit-text-decoration-style: solid; - text-decoration-style: solid; -} - -.ha-tradzhtext .ha-marginalbox .ha-marginallist .ha-marginal, .ha-lettertext .ha-marginalbox .ha-marginallist .ha-marginal, .ha-tradzhtext .ha-marginalbox .ha-marginallist .ha-marginal *, .ha-lettertext .ha-marginalbox .ha-marginallist .ha-marginal * { - min-height: 0px; - min-width: 0px; - overflow: hidden; - text-overflow: ellipsis; -} - -.ha-tradzhtext .ha-btn-collapsed-box, .ha-lettertext .ha-btn-collapsed-box { - position: absolute; - left: 100%; - margin-left: 1rem; - margin-top: 0.125rem; - display: none; - cursor: pointer; - line-height: 1; -} - -@media (min-width: 960px) { - .ha-tradzhtext .ha-btn-collapsed-box, .ha-lettertext .ha-btn-collapsed-box { - display: block; - } -} - -.ha-minwidth .ha-tradzhtext, .ha-lettertext.ha-minwidth { - min-width: 38rem; -} - -@media (min-width: 1190px) { - .ha-minwidth .ha-tradzhtext, .ha-lettertext.ha-minwidth { - min-width: 55rem; - } -} - -.ha-minwidth .ha-tradzhtext .ha-alignright, .ha-lettertext.ha-minwidth .ha-alignright { - float: right; - margin-right: 20%; -} - -.ha-lettertext.ha-minwidth .ha-aligncenter { - position: absolute; - left: 33.333333%; - --tw-translate-x: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - white-space: nowrap; -} - -/* Classes from the General parser */ - -/* Classes from .NET */ - -.ha-zhbreak { - display: none; -} - -@media (min-width: 700px) { - .ha-zhbreak { - display: inline; - } -} - -.ha-up { - position: relative; - top: -0.75rem; -} - -.ha-bzg { - font-family: Libertine, serif !important; - font-size: 0.75rem !important; - line-height: 1rem !important; - font-weight: 600 !important; -} - -.ha-text { - display: inline; -} - -.ha-title { - display: inline; - font-style: italic; -} - -.ha-insertedlemma { - display: inline; -} - -.ha-serif { - font-family: Libertine, serif; -} - -.ha-aq, .ha-aq *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal, .ha-marginal *, .ha-btn-collapsed-box) { - font-family: Biolinum, sans-serif; -} - -.ha-ul, .ha-ul *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal, .ha-marginal *, .ha-btn-collapsed-box) { - -webkit-text-decoration-line: underline; - text-decoration-line: underline; -} - -.ha-del, .ha-del *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-diagdel, .ha-marginal, .ha-marginal *, .ha-btn-collapsed-box) { - display: inline; - -webkit-text-decoration-line: line-through; - text-decoration-line: line-through; -} - -.ha-hand, .ha-hand *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal, .ha-marginal *, .ha-btn-collapsed-box) { - font-family: Playfair, serif; - font-size: 0.9rem; -} - -.ha-added, .ha-added *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal, .ha-marginal *, .ha-btn-collapsed-box) { - border-radius: 0.125rem; - padding-left: 0.125rem; - padding-right: 0.125rem; -} - -.ha-note, .ha-note *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal, .ha-marginal *, .ha-btn-collapsed-box) { - font-style: italic; -} - -.ha-emph *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal, .ha-marginal *, .ha-btn-collapsed-box) { - font-style: italic; -} - -.ha-sup *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal, .ha-marginal *, .ha-btn-collapsed-box) { - position: relative; - top: -0.3em; - font-size: 80%; -} - -/* TODO: Something dooesnt work here */ - -.ha-super { - position: relative; - top: -0.3em; - vertical-align: baseline; - font-size: 0.75rem; - line-height: 1rem; - line-height: 1; - font-variant-numeric: normal; -} - -.ha-sub { - position: relative; - bottom: -0.25em; - vertical-align: baseline; - font-size: 0.75rem; - line-height: 1rem; - line-height: 1; -} - -.ha-ful, .ha-ful *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - display: inline; - border-bottom-width: 1px; - padding-bottom: 2px; -} - -.ha-dul, .ha-dul *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - -webkit-text-decoration-line: underline; - text-decoration-line: underline; - -webkit-text-decoration-style: double; - text-decoration-style: double; -} - -.ha-tul, .ha-tul *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - border-bottom-width: 3px; - border-style: double; - -webkit-text-decoration-line: underline; - text-decoration-line: underline; -} - -.ha-alignright { - float: right; -} - -.ha-aligncenter { - position: absolute; - left: 50%; - --tw-translate-x: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - white-space: nowrap; -} - -.ha-sal { - margin-left: 1.5rem; - display: inline-block; -} - -/* Classes for indents */ - -.ha-indent-1 { - padding-left: 0.5rem; -} - -@media (min-width: 700px) { - .ha-indent-1 { - padding-left: 1rem; - } -} - -.ha-indent-2 { - padding-left: 1rem; -} - -@media (min-width: 700px) { - .ha-indent-2 { - padding-left: 2rem; - } -} - -.ha-indent-3 { - padding-left: 1.5rem; -} - -@media (min-width: 700px) { - .ha-indent-3 { - padding-left: 3rem; - } -} - -.ha-indent-4 { - padding-left: 2rem; -} - -@media (min-width: 700px) { - .ha-indent-4 { - padding-left: 4rem; - } -} - -.ha-indent-5 { - padding-left: 2.5rem; -} - -@media (min-width: 700px) { - .ha-indent-5 { - padding-left: 5rem; - } -} - -.ha-indent-6 { - padding-left: 5rem; -} - -@media (min-width: 700px) { - .ha-indent-6 { - padding-left: 11rem; - } -} - -.ha-indent-7 { - padding-left: 8rem; -} - -@media (min-width: 700px) { - .ha-indent-7 { - padding-left: 16rem; - } -} - -/* Classes from Javascript */ - -.active { - pointer-events: none; -} - -.ha-topnav a.active { - -webkit-text-decoration-line: underline; - text-decoration-line: underline; - text-underline-offset: 2px; -} - -@media (min-width: 1190px) { - .ha-topnav a.active { - -webkit-text-decoration-line: none; - text-decoration-line: none; - } -} - -.ha-topnav.ha-topnav-collapsed { - margin-top: 1rem; - display: block; - height: 100%; - width: 100%; - font-size: 1rem; - line-height: 1.5rem; -} - -@media (min-width: 960px) { - .ha-topnav.ha-topnav-collapsed { - font-size: 1.125rem; - line-height: 1.75rem; - } -} - -@media (min-width: 1190px) { - .ha-topnav.ha-topnav-collapsed { - margin-top: 0px; - display: flex; - width: -webkit-fit-content; - width: -moz-fit-content; - width: fit-content; - } -} - -@media (min-width: 1680px) { - .ha-topnav.ha-topnav-collapsed { - font-size: 1.25rem; - line-height: 1.75rem; - } -} - -.ha-topnav.ha-topnav-collapsed a { - clear: both; - display: block; - width: 100%; - padding-top: 0.25rem; - padding-bottom: 0.25rem; - text-align: left; -} - -@media (min-width: 1190px) { - .ha-topnav.ha-topnav-collapsed a { - display: inline-block; - width: -webkit-fit-content; - width: -moz-fit-content; - width: fit-content; - padding-top: 0px; - padding-bottom: 0px; - } -} - -.ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown { - display: block; -} - -@media (min-width: 1190px) { - .ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown { - display: inline-block; - } - - .ha-topnav.ha-topnav-collapsed - .ha-topnav-dropdown:hover - .ha-topnav-dropdown-content { - display: block; - } -} - -.ha-topnav.ha-topnav-collapsed - .ha-topnav-dropdown - .ha-topnav-dropdown-content { - display: block; - border-style: none; - padding-top: 0px; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -@media (min-width: 1190px) { - .ha-topnav.ha-topnav-collapsed - .ha-topnav-dropdown - .ha-topnav-dropdown-content { - display: none; - padding-top: 0.5rem; - } -} - -.ha-topnav.ha-topnav-collapsed - .ha-topnav-dropdown - .ha-topnav-dropdown-content - a { - padding-top: 0.25rem; - padding-bottom: 0.25rem; -} - -@media (min-width: 1190px) { - .ha-topnav.ha-topnav-collapsed - .ha-topnav-dropdown - .ha-topnav-dropdown-content - a { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - } -} - -.ha-register .ha-headcomment .ha-btn-collapsed-box { - left: 47.6rem; -} - -.ha-register .ha-subcomment .ha-btn-collapsed-box { - left: 45.6rem; -} - -.ha-register .ha-btn-collapsed-box { - position: absolute; - top: -0.15rem; - display: none; - cursor: pointer; -} - -@media (min-width: 1190px) { - .ha-register .ha-btn-collapsed-box { - display: block; - } -} - -.ha-collapsed-box, .ha-collapsed-box * { - z-index: 0; - min-height: 0px; - min-width: 0px; - cursor: default; - overflow: hidden; - text-overflow: ellipsis; -} - -.ha-expanded-box { - z-index: 1000; - height: auto !important; - max-height: 100vh !important; - padding-bottom: 0.25rem; -} - -.pointer-events-none { - pointer-events: none; -} - -.static { - position: static; -} - -.absolute { - position: absolute; -} - -.relative { - position: relative; -} - -.sticky { - position: -webkit-sticky; - position: sticky; -} - -.bottom-0 { - bottom: 0px; -} - -.my-8 { - margin-top: 2rem; - margin-bottom: 2rem; -} - -.mx-8 { - margin-left: 2rem; - margin-right: 2rem; -} - -.mx-auto { - margin-left: auto; - margin-right: auto; -} - -.ml-8 { - margin-left: 2rem; -} - -.mb-6 { - margin-bottom: 1.5rem; -} - -.mr-2 { - margin-right: 0.5rem; -} - -.\!mr-0 { - margin-right: 0px !important; -} - -.block { - display: block; -} - -.inline-block { - display: inline-block; -} - -.flex { - display: flex; -} - -.table { - display: table; -} - -.flow-root { - display: flow-root; -} - -.hidden { - display: none; -} - -.h-full { - height: 100%; -} - -.h-8 { - height: 2rem; -} - -.min-h-screen { - min-height: 100vh; -} - -.w-full { - width: 100%; -} - -.w-8 { - width: 2rem; -} - -.shrink-0 { - flex-shrink: 0; -} - -.shrink { - flex-shrink: 1; -} - -.grow { - flex-grow: 1; -} - -.grow-0 { - flex-grow: 0; -} - -.cursor-default { - cursor: default; -} - -.resize { - resize: both; -} - -.list-disc { - list-style-type: disc; -} - -.flex-row { - flex-direction: row; -} - -.flex-wrap { - flex-wrap: wrap; -} - -.overflow-hidden { - overflow: hidden; -} - -.text-ellipsis { - text-overflow: ellipsis; -} - -.whitespace-nowrap { - white-space: nowrap; -} - -.border { - border-width: 1px; -} - -.border-t-\[5px\] { - border-top-width: 5px; -} - -.border-gray-300 { - --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity)); -} - -.border-gray-900 { - --tw-border-opacity: 1; - border-color: rgb(17 24 39 / var(--tw-border-opacity)); -} - -.border-t-gray-200 { - --tw-border-opacity: 1; - border-top-color: rgb(229 231 235 / var(--tw-border-opacity)); -} - -.border-l-gray-200 { - --tw-border-opacity: 1; - border-left-color: rgb(229 231 235 / var(--tw-border-opacity)); -} - -.bg-slate-50 { - --tw-bg-opacity: 1; - background-color: rgb(248 250 252 / var(--tw-bg-opacity)); -} - -.p-1 { - padding: 0.25rem; -} - -.py-3 { - padding-top: 0.75rem; - padding-bottom: 0.75rem; -} - -.px-3 { - padding-left: 0.75rem; - padding-right: 0.75rem; -} - -.pb-24 { - padding-bottom: 6rem; -} - -.pb-3 { - padding-bottom: 0.75rem; -} - -.pr-3 { - padding-right: 0.75rem; -} - -.align-baseline { - vertical-align: baseline; -} - -.align-bottom { - vertical-align: bottom; -} - -.font-serif { - font-family: Libertine, serif; -} - -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; -} - -.italic { - font-style: italic; -} - -.text-black { - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} - -/* Regular woff-files for regular font variants curerently - Instead we can use the Graphite versions of the font - -@font-face { - font-family: 'Biolinum'; - src: url('/fonts/LinBiolinum_R_G.ttf') format('truetype'); - font-display: swap; - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'Libertine'; - src: url('/fonts/LinLibertine_R_G.ttf') format('truetype'); - font-display: swap; - font-weight: normal; - font-style: normal; -} - -*/ - -@font-face { - font-family: "Biolinum"; - - src: url("../fonts/LinBiolinum_R.woff") format("woff"); - - font-display: swap; - - font-weight: normal; - - font-style: normal; -} - -@font-face { - font-family: "Libertine"; - - src: url("../fonts/LinLibertine_R.woff") format("woff"); - - font-display: swap; - - font-weight: normal; - - font-style: normal; -} - -@font-face { - font-family: "Biolinum"; - - src: url("../fonts/LinBiolinum_RI.woff") format("woff"); - - font-display: swap; - - font-weight: normal; - - font-style: italic; -} - -@font-face { - font-family: "Biolinum"; - - src: url("../fonts/LinBiolinum_RB.woff") format("woff"); - - font-display: swap; - - font-weight: bold; - - font-style: normal; -} - -@font-face { - font-family: "Libertine"; - - src: url("../fonts/LinLibertine_RI.woff") format("woff"); - - font-display: swap; - - font-weight: normal; - - font-style: italic; -} - -@font-face { - font-family: "Libertine"; - - src: url("../fonts/LinLibertine_RB.woff") format("woff"); - - font-display: swap; - - font-weight: bold; - - font-style: normal; -} - -@font-face { - font-family: "Playfair"; - - src: url("../fonts/PlayfairDisplay-VariableFont_wght.ttf") format("truetype"); - - font-display: swap; - - font-weight: normal; - - font-style: normal; -} - -/* Content */ - -.ha-lettertext .ha-marginalbox:before { - content: ""; -} - -.ha-lettertext .ha-marginalbox .ha-marginal::after { - content: ""; -} - -.ha-lettertext .ha-marginalbox .ha-marginal:last-of-type::after { - content: ""; -} - -.ha-nr::before { - content: " \200E\25E6"; -} - -.ha-nr::after { - content: " \200E\25E6"; -} - -.ha-added::before { - content: ""; -} - -.ha-added::after { - content: ""; -} - -.ha-note::before { - content: ""; -} - -.ha-note::after { - content: ""; -} - -.ha-bzg::after { - content: "]"; -} - -.ha-additions .ha-edits .ha-editentries tr td:nth-of-type(2)::after { - content: ""; -} - -/* Not implemented in tailwindcss */ - -* { - -webkit-text-decoration-skip-ink: all; - text-decoration-skip-ink: all; -} - -body { - background-image: url("../img/subtlenet2.png"); - background-repeat: repeat; -} - -.ha-tradzhtext .ha-marginalbox.ha-collapsed-box .ha-marginallist .ha-marginal, -.ha-lettertext .ha-marginalbox.ha-collapsed-box .ha-marginallist .ha-marginal { - display: -webkit-inline-box; - -webkit-box-orient: vertical; -} - -.ha-diagdel { - text-decoration: none !important; - -webkit-text-decoration-line: none !important; - text-decoration-line: none !important; - position: relative; - display: inline-block !important; -} - -.ha-diagdel::before, -.ha-diagdel::after { - content: ""; - width: 100%; - height: 0%; - position: absolute; - right: 0; - bottom: 1.4ex; -} - -.ha-diagdel::before { - border-width: 1px; - border-style: solid; - transform: skewY(-36deg); -} - -.ha-del .ha-del, -.ha-del .ha-del *:not(.ha-linecount *, .ha-linecount, .ha-marginalbox *, .ha-marginalbox, .ha-marginal *, .ha-marginal, .ha-btn-collapsed-box) { - -moz-text-decoration-style: double; - -webkit-text-decoration-style: double !important; - text-decoration-thickness: 1px; - text-decoration-style: double; -} - -.ha-del .ha-del .ha-ul, -.ha-ul .ha-del .ha-del, -.ha-del .ha-ul .ha-del { - text-decoration: line-through underline; - -moz-text-decoration-style: double; - -webkit-text-decoration-style: double !important; - text-decoration-thickness: 1px; - text-decoration-style: double; -} - -.ha-del .ha-ul, -.ha-ul .ha-del { - text-decoration: line-through underline; - text-decoration-thickness: 1px; - text-decoration-skip-ink: auto; - -webkit-text-decoration-skip-ink: auto; -} - -.hyphenate { - -webkit-hyphens: auto; - -ms-hyphens: auto; - hyphens: auto; -} - -.unhyphenate { - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -.numeric-mediaeval { - font-variant-numeric: oldstyle-nums; -} - -.numeric-normal { - font-variant-numeric: normal; -} - -.caps-allpetite { - font-variant-caps: all-petite-caps; -} - -.caps-petite { - font-variant-caps: petite-caps; -} - -.caps-normal { - font-variant-caps: normal; -} - -.break-inside-avoid { - -moz-column-break-inside: avoid; - break-inside: avoid; -} - -/* Symbols, Icons, Drawings, Tooltips */ - -.ha-menu-arrowsymbol::after { - display: inline-block; - margin-left: 0.2em; - vertical-align: 0.2em; - content: ""; - border-top: 0.3em solid; - border-right: 0.3em solid transparent; - border-bottom: 0; - border-left: 0.3em solid transparent; -} - -.ha-menusymbol { - border-radius: 4px; -} - -.ha-menusymbol svg { - width: 24px; - height: 24px; - stroke-width: 2; - stroke-linecap: round; - stroke-linejoin: miter; - fill: none; -} - -.ha-tooltip .ha-tooltiptext { - white-space: nowrap; - visibility: hidden; - min-width: 160px; - bottom: 155%; - left: 50%; - margin-left: -80px; - opacity: 0; - transition: opacity 0.3s; -} - -.ha-tooltip .ha-tooltiptext::after { - content: ""; - position: absolute; - top: 100%; - left: 50%; - margin-left: -5px; - border-width: 5px; - border-style: solid; - /* border-color: rgb(226 232 240 / var(--tw-bg-opacity)) transparent transparent - transparent; */ -} - -.ha-tooltip:hover .ha-tooltiptext { - visibility: visible; - opacity: 1; -} - -.ha-open-btn-collapsed-box::before { - content: "\200E+"; - font-weight: 900; -} - -.ha-close-btn-collapsed-box::before { - content: "\200E\00D7"; - font-weight: 900; -} - -.ha-uploadheader .ha-usedfilesheaderlist .ha-plussign { - content: "\200E+ "; - font-weight: bold; - display: inline-block; - background-color: lightslategray; - padding-left: 0.25rem; - padding-right: 0.25rem; -} - -/* Tooltip text */ - -.ha-uploadform .ha-uploadmessage { - visibility: visible; - text-align: center; - padding: 5px 0; - border-radius: 6px; - /* Position the tooltip text - see examples below! */ - position: absolute; - z-index: 1; - margin-top: 0.5rem; - width: 360px; - top: 100%; - left: 50%; - margin-left: -180px; - /* Use half of the width (120/2 = 60), to center the tooltip */ - opacity: 0; - transition: opacity 1s; -} - -.ha-uploadform .ha-uploadmessage::after { - content: " "; - position: absolute; - bottom: 100%; - /* At the top of the tooltip */ - left: 50%; - margin-left: -5px; - border-width: 5px; - border-style: solid; - border-color: transparent transparent grey transparent; -} - -.ha-lds-ellipsis { - display: none; - position: absolute; - bottom: 20px; -} - -.ha-lds-ellipsis div { - position: absolute; - width: 7px; - height: 7px; - border-radius: 50%; - background: #000; - -webkit-animation-timing-function: cubic-bezier(0, 1, 1, 0); - animation-timing-function: cubic-bezier(0, 1, 1, 0); -} - -.ha-lds-ellipsis div:nth-child(1) { - left: 6px; - -webkit-animation: ha-lds-ellipsis1 0.6s infinite; - animation: ha-lds-ellipsis1 0.6s infinite; -} - -.ha-lds-ellipsis div:nth-child(2) { - left: 4px; - -webkit-animation: ha-lds-ellipsis2 0.6s infinite; - animation: ha-lds-ellipsis2 0.6s infinite; -} - -.ha-lds-ellipsis div:nth-child(3) { - left: 16px; - -webkit-animation: ha-lds-ellipsis2 0.6s infinite; - animation: ha-lds-ellipsis2 0.6s infinite; -} - -.ha-lds-ellipsis div:nth-child(4) { - left: 30px; - -webkit-animation: ha-lds-ellipsis3 0.6s infinite; - animation: ha-lds-ellipsis3 0.6s infinite; -} - -@-webkit-keyframes ha-lds-ellipsis1 { - 0% { - transform: scale(0); - } - - 100% { - transform: scale(1); - } -} - -@keyframes ha-lds-ellipsis1 { - 0% { - transform: scale(0); - } - - 100% { - transform: scale(1); - } -} - -@-webkit-keyframes ha-lds-ellipsis3 { - 0% { - transform: scale(1); - } - - 100% { - transform: scale(0); - } -} - -@keyframes ha-lds-ellipsis3 { - 0% { - transform: scale(1); - } - - 100% { - transform: scale(0); - } -} - -@-webkit-keyframes ha-lds-ellipsis2 { - 0% { - transform: translate(0, 0); - } - - 100% { - transform: translate(16px, 0); - } -} - -@keyframes ha-lds-ellipsis2 { - 0% { - transform: translate(0, 0); - } - - 100% { - transform: translate(16px, 0); - } -} - -.ha-cross::before, -.ha-cross::after { - content: ""; -} - -.ha-cross::before { - transform: skewY(-27deg); -} - -/* Classes for tables */ - -.ha-table { - overflow: hidden; - white-space: nowrap; - font-variant-numeric: tabular-nums !important; -} - -.ha-hatab-0-2 { - display: inline; - position: static; - min-width: 50%; -} - -.ha-hatab-1-2 { - display: inline-block; - position: absolute; - left: 50%; - min-width: 50%; -} - -.ha-hatab-0-3 { - display: inline; - position: static; - min-width: 33.333%; -} - -.ha-hatab-1-3 { - display: inline-block; - position: absolute; - left: 33%; - min-width: 33.333%; -} - -.ha-hatab-2-3 { - display: inline-block; - position: absolute; - left: 66%; - min-width: 33.333%; -} - -.ha-hatab-0-4 { - display: inline; - position: static; - min-width: 25%; -} - -.ha-hatab-1-4 { - display: inline-block; - position: absolute; - left: 25%; - min-width: 25%; -} - -.ha-hatab-2-4 { - display: inline-block; - position: absolute; - left: 50%; - min-width: 25%; -} - -.ha-hatab-3-4 { - display: inline-block; - position: absolute; - left: 75%; - min-width: 25%; -} - -.ha-hatab-0-5 { - display: inline; - position: static; - min-width: 20%; -} - -.ha-hatab-1-5 { - display: inline-block; - position: absolute; - left: 20%; - min-width: 20%; -} - -.ha-hatab-2-5 { - display: inline-block; - position: absolute; - left: 40%; - min-width: 20%; -} - -.ha-hatab-3-5 { - display: inline-block; - position: absolute; - left: 60%; - min-width: 20%; -} - -.ha-hatab-4-5 { - display: inline-block; - position: absolute; - left: 80%; - min-width: 20%; -} - -.ha-hatab-0-6 { - display: inline; - position: static; - min-width: 16.667%; -} - -.ha-hatab-1-6 { - display: inline-block; - position: absolute; - left: 16.667%; - min-width: 16.667%; -} - -.ha-hatab-2-6 { - display: inline-block; - position: absolute; - left: 33.333%; - min-width: 16.667%; -} - -.ha-hatab-3-6 { - display: inline-block; - position: absolute; - left: 50%; - min-width: 16.667%; -} - -.ha-hatab-4-6 { - display: inline-block; - position: absolute; - left: 66.667%; - min-width: 16.667%; -} - -.ha-hatab-5-6 { - display: inline-block; - position: absolute; - left: 83.333%; - min-width: 16.667%; -} - -.ha-hatab-0-7 { - display: inline; - position: static; - min-width: 14.286%; -} - -.ha-hatab-1-7 { - display: inline-block; - position: absolute; - left: 14.286%; - min-width: 14.286%; -} - -.ha-hatab-2-7 { - display: inline-block; - position: absolute; - left: 28.571%; - min-width: 14.286%; -} - -.ha-hatab-3-7 { - display: inline-block; - position: absolute; - left: 42.857%; - min-width: 14.286%; -} - -.ha-hatab-4-7 { - display: inline-block; - position: absolute; - left: 57.143%; - min-width: 14.286%; -} - -.ha-hatab-5-7 { - display: inline-block; - position: absolute; - left: 71.429%; - min-width: 14.286%; -} - -.ha-hatab-6-7 { - display: inline-block; - position: absolute; - left: 85.714%; - min-width: 14.286%; -} - -.ha-hatab-0-8 { - display: inline; - position: static; - min-width: 12.5%; -} - -.ha-hatab-1-8 { - display: inline-block; - position: absolute; - left: 12.5%; - min-width: 12.5%; -} - -.ha-hatab-2-8 { - display: inline-block; - position: absolute; - left: 25%; - min-width: 12.5%; -} - -.ha-hatab-3-8 { - display: inline-block; - position: absolute; - left: 37.5%; - min-width: 12.5%; -} - -.ha-hatab-4-8 { - display: inline-block; - position: absolute; - left: 50%; - min-width: 12.5%; -} - -.ha-hatab-5-8 { - display: inline-block; - position: absolute; - left: 62.5%; - min-width: 12.5%; -} - -.ha-hatab-6-8 { - display: inline-block; - position: absolute; - left: 75%; - min-width: 12.5%; -} - -.ha-hatab-7-8 { - display: inline-block; - position: absolute; - left: 87.5%; - min-width: 12.5%; -} - -.ha-hatab-0-9 { - display: inline; - position: static; - min-width: 11.111%; -} - -.ha-hatab-1-9 { - display: inline-block; - position: absolute; - left: 11.111%; - min-width: 11.111%; -} - -.ha-hatab-2-9 { - display: inline-block; - position: absolute; - left: 22.222%; - min-width: 11.111%; -} - -.ha-hatab-3-9 { - display: inline-block; - position: absolute; - left: 33.333%; - min-width: 11.111%; -} - -.ha-hatab-4-9 { - display: inline-block; - position: absolute; - left: 44.444%; - min-width: 11.111%; -} - -.ha-hatab-5-9 { - display: inline-block; - position: absolute; - left: 55.555%; - min-width: 11.111%; -} - -.ha-hatab-6-9 { - display: inline-block; - position: absolute; - left: 66.666%; - min-width: 11.111%; -} - -.ha-hatab-7-9 { - display: inline-block; - position: absolute; - left: 77.777%; - min-width: 11.111%; -} - -.ha-hatab-8-9 { - display: inline-block; - position: absolute; - left: 88.888%; - min-width: 11.111%; -} - -.ha-hatab-0-10 { - display: inline-block; - position: absolute; - min-width: 10%; -} - -.ha-hatab-1-10 { - display: inline-block; - position: absolute; - left: 10%; - min-width: 10%; -} - -.ha-hatab-2-10 { - display: inline-block; - position: absolute; - left: 20%; - min-width: 10%; -} - -.ha-hatab-3-10 { - display: inline-block; - position: absolute; - left: 30%; - min-width: 10%; -} - -.ha-hatab-4-10 { - display: inline-block; - position: absolute; - left: 40%; - min-width: 10%; -} - -.ha-hatab-5-10 { - display: inline-block; - position: absolute; - left: 50%; - min-width: 10%; -} - -.ha-hatab-6-10 { - display: inline-block; - position: absolute; - left: 60%; - min-width: 10%; -} - -.ha-hatab-7-10 { - display: inline-block; - position: absolute; - left: 70%; - min-width: 10%; -} - -.ha-hatab-8-10 { - display: inline-block; - position: absolute; - left: 80%; - min-width: 10%; -} - -.ha-hatab-9-10 { - display: inline-block; - position: absolute; - left: 90%; - min-width: 10%; -} - -.ha-hatab-0-11 { - display: inline-block; - position: absolute; - min-width: 9.091%; -} - -.ha-hatab-1-11 { - display: inline-block; - position: absolute; - left: 9.091%; - min-width: 9.091%; -} - -.ha-hatab-2-11 { - display: inline-block; - position: absolute; - left: 18.182%; - min-width: 9.091%; -} - -.ha-hatab-3-11 { - display: inline-block; - position: absolute; - left: 27.273%; - min-width: 9.091%; -} - -.ha-hatab-4-11 { - display: inline-block; - position: absolute; - left: 36.364%; - min-width: 9.091%; -} - -.ha-hatab-5-11 { - display: inline-block; - position: absolute; - left: 45.455%; - min-width: 9.091%; -} - -.ha-hatab-6-11 { - display: inline-block; - position: absolute; - left: 54.545%; - min-width: 9.091%; -} - -.ha-hatab-7-11 { - display: inline-block; - position: absolute; - left: 63.636%; - min-width: 9.091%; -} - -.ha-hatab-8-11 { - display: inline-block; - position: absolute; - left: 72.727%; - min-width: 9.091%; -} - -.ha-hatab-9-11 { - display: inline-block; - position: absolute; - left: 81.818%; - min-width: 9.091%; -} - -.ha-hatab-10-11 { - display: inline-block; - position: absolute; - left: 90.909%; - min-width: 9.091%; -} - -.ha-hatab-0-12 { - display: inline-block; - position: absolute; - min-width: 8.333%; -} - -.ha-hatab-1-12 { - display: inline-block; - position: absolute; - left: 8.333%; - min-width: 8.333%; -} - -.ha-hatab-2-12 { - display: inline-block; - position: absolute; - left: 16.666%; - min-width: 8.333%; -} - -.ha-hatab-3-12 { - display: inline-block; - position: absolute; - left: 25%; - min-width: 8.333%; -} - -.ha-hatab-4-12 { - display: inline-block; - position: absolute; - left: 33.333%; - min-width: 8.333%; -} - -.ha-hatab-5-12 { - display: inline-block; - position: absolute; - left: 41.666%; - min-width: 8.333%; -} - -.ha-hatab-6-12 { - display: inline-block; - position: absolute; - left: 50%; - min-width: 8.333%; -} - -.ha-hatab-7-12 { - display: inline-block; - position: absolute; - left: 58.333%; - min-width: 8.333%; -} - -.ha-hatab-8-12 { - display: inline-block; - position: absolute; - left: 66.666%; - min-width: 8.333%; -} - -.ha-hatab-9-12 { - display: inline-block; - position: absolute; - left: 75%; - min-width: 8.333%; -} - -.ha-hatab-10-12 { - display: inline-block; - position: absolute; - left: 83.333%; - min-width: 8.333%; -} - -.ha-hatab-11-12 { - display: inline-block; - position: absolute; - left: 91.666%; - min-width: 8.333%; -} - -.hover\:text-black:hover { - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} - -.dark .dark\:border-gray-900 { - --tw-border-opacity: 1; - border-color: rgb(17 24 39 / var(--tw-border-opacity)); -} - -.dark .dark\:bg-slate-800 { - --tw-bg-opacity: 1; - background-color: rgb(30 41 59 / var(--tw-bg-opacity)); -} - -.dark .dark\:pt-2 { - padding-top: 0.5rem; -} - -.dark .dark\:pb-2 { - padding-bottom: 0.5rem; -} - -.dark .dark\:shadow-xl { - --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -@media (min-width: 700px) { - .sm\:inline { - display: inline; - } - - .sm\:hidden { - display: none; - } -} - -@media (min-width: 960px) { - .md\:inline { - display: inline; - } - - .md\:hidden { - display: none; - } - - .md\:pr-80 { - padding-right: 20rem; - } -} - -@media (min-width: 1190px) { - .desktop\:block { - display: block; - } - - .desktop\:hidden { - display: none; - } - - .desktop\:max-w-screen-desktop { - max-width: 1190px; - } - - .desktop\:px-8 { - padding-left: 2rem; - padding-right: 2rem; - } - - .desktop\:pr-8 { - padding-right: 2rem; - } -} - -@media (min-width: 1440px) { - .xl\:h-12 { - height: 3rem; - } - - .xl\:w-12 { - width: 3rem; - } - - .xl\:text-3xl { - font-size: 1.875rem; - line-height: 2.25rem; - } -} +/*! tailwindcss v3.0.24 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-family:Biolinum,sans-serif;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace,mono;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }*{transition-duration:.1s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}body{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.dark body{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity));background-image:none;color:rgb(255 255 255/var(--tw-text-opacity))}.ha-topnav-dropdown .ha-topnav-dropdown-content{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);background-color:rgb(248 250 252/var(--tw-bg-opacity));border-bottom-width:1px;border-color:rgb(148 163 184/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ha-topnav-dropdown .ha-topnav-dropdown-content a:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.ha-topnav a{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.ha-topnav a:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.dark .ha-topnav a.active{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity));font-weight:700}@media (min-width:1190px){.ha-topnav a.active{--tw-border-opacity:1;border-bottom-width:4px;border-color:rgb(226 232 240/var(--tw-border-opacity))}.ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown .ha-topnav-dropdown-content{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);border-bottom-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}.ha-menusymbol svg{stroke:#000;--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.ha-footer .ha-footertext{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity));color:rgb(0 0 0/var(--tw-text-opacity))}.dark .ha-footer .ha-footertext{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.ha-footer .ha-themetoggles{--tw-bg-opacity:1;--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);background-color:rgb(226 232 240/var(--tw-bg-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-duration:.3s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dark .ha-footer .ha-themetoggles{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}.ha-footer .ha-themetoggles #ha-toggledark:checked~.ha-themetoggleslider{background-color:rgb(226 232 240/var(--tw-bg-opacity))}.ha-footer .ha-themetoggles #ha-togglebright:checked~.ha-themetoggleslider,.ha-footer .ha-themetoggles #ha-toggledark:checked~.ha-themetoggleslider{--tw-bg-opacity:1;transition-duration:.3s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ha-footer .ha-themetoggles #ha-togglebright:checked~.ha-themetoggleslider,.ha-static{background-color:rgb(248 250 252/var(--tw-bg-opacity))}.dark .ha-static,.ha-static{--tw-bg-opacity:1}.dark .ha-static{background-color:rgb(17 24 39/var(--tw-bg-opacity))}.ha-static h3{--tw-text-opacity:1;color:rgb(216 0 0/var(--tw-text-opacity))}.dark .ha-static h3{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-weight:700}.ha-static table th{--tw-text-opacity:1;color:rgb(216 0 0/var(--tw-text-opacity))}.dark .ha-static table th{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-weight:700}.ha-static table tr:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.dark .ha-static table tr:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}.ha-register .ha-register-body,.ha-register .ha-register-head{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.dark .ha-register .ha-register-body,.dark .ha-register .ha-register-head{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);background-color:rgb(15 23 42/var(--tw-bg-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(248 250 252/var(--tw-text-opacity))}.ha-register .ha-register-head{--tw-border-opacity:1;border-bottom-width:2px;border-color:rgb(226 232 240/var(--tw-border-opacity))}.ha-register .ha-register-head .ha-register-add a{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity));border-radius:.25rem;border-width:1px}.ha-register .ha-register-head .ha-register-add a:hover{--tw-border-opacity:1;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);border-color:rgb(216 0 0/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ha-register .ha-register-head .ha-register-add a .ha-register-add-plusbutton{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity));border-bottom-left-radius:.25rem;border-top-left-radius:.25rem}.ha-register .ha-register-head .ha-register-nav a{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.ha-register .ha-register-head .ha-register-nav a:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.dark .ha-register .ha-register-head .ha-register-nav a{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark .ha-register .ha-register-head .ha-register-nav a:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.ha-register .ha-register-head .ha-register-nav a.active{--tw-border-opacity:1;border-bottom-width:2px;border-color:rgb(226 232 240/var(--tw-border-opacity))}.dark .ha-register .ha-register-head .ha-register-nav a.active{--tw-text-opacity:1!important;color:rgb(229 231 235/var(--tw-text-opacity))!important;font-weight:700}.dark .ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks,.dark .ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity));color:rgb(248 250 252/var(--tw-text-opacity))}@media (min-width:1190px){.ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks,.ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}}.ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks:before,.ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks:before{--tw-bg-opacity:1;background-color:rgb(43 97 158/var(--tw-bg-opacity))}.dark .ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks:before,.dark .ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks:before{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity))}.ha-register .ha-register-body .ha-commenthead .ha-letlinks.ha-expanded-box{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark .ha-register .ha-register-body .ha-commenthead .ha-letlinks.ha-expanded-box{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ha-register .ha-btn-collapsed-box{margin-top:.125rem}.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks .ha-hkb{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.dark .ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks .ha-hkb{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks a{-webkit-text-decoration-line:none;text-decoration-line:none}.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks a:hover{color:rgb(23 53 87/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.dark .ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks a:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.dark .ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.ha-letterhead .ha-metadata .ha-tooltiptext{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);background-color:rgb(248 250 252/var(--tw-bg-opacity));border-color:rgb(23 53 87/var(--tw-border-opacity));border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(23 53 87/var(--tw-text-opacity))}.dark .ha-letterhead .ha-metadata .ha-tooltiptext{--tw-bg-opacity:1;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgb(30 41 59/var(--tw-bg-opacity));border-style:none;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ha-tooltip .ha-tooltiptext:after{--tw-border-opacity:1;border-bottom-color:transparent;border-left-color:transparent;border-right-color:transparent;border-top-color:rgb(71 85 105/var(--tw-border-opacity))}.dark .ha-tooltip .ha-tooltiptext:after{--tw-border-opacity:1;border-top-color:rgb(30 41 59/var(--tw-border-opacity))}.ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill{--tw-border-opacity:1;--tw-text-opacity:1;--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);border-color:rgb(23 53 87/var(--tw-border-opacity));border-radius:.5rem;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(23 53 87/var(--tw-text-opacity))}.dark .ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill,.dark .ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill.ha-newpill{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);background-color:rgb(30 41 59/var(--tw-bg-opacity));border-color:rgb(148 163 184/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(255 255 255/var(--tw-text-opacity))}.ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross:before{--tw-border-opacity:1;border-bottom-width:2px;border-color:rgb(23 53 87/var(--tw-border-opacity))}.dark .ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross:before{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.ha-letterheader{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity));border-bottom-width:2px;border-color:rgb(203 213 225/var(--tw-border-opacity))}.dark .ha-letterheader{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);background-color:rgb(15 23 42/var(--tw-bg-opacity));border-color:rgb(248 250 252/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(248 250 252/var(--tw-text-opacity))}.ha-letterheader .ha-lettertabs a{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.ha-letterheader .ha-lettertabs a:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.dark .ha-letterheader .ha-lettertabs a{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark .ha-letterheader .ha-lettertabs a:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.ha-letterheader .ha-lettertabs a.active{--tw-border-opacity:1;--tw-text-opacity:1;border-bottom-width:3px;border-color:rgb(203 213 225/var(--tw-border-opacity));color:rgb(216 0 0/var(--tw-text-opacity))}.dark .ha-letterheader .ha-lettertabs a.active{--tw-border-opacity:1;--tw-text-opacity:1!important;border-color:rgb(248 250 252/var(--tw-border-opacity));color:rgb(229 231 235/var(--tw-text-opacity))!important;font-weight:700}.ha-letterheader .ha-lettermetalinks{--tw-border-opacity:1;border-bottom-width:2px;border-color:rgb(203 213 225/var(--tw-border-opacity))}.ha-letterheader .ha-lettermetalinks a{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.ha-letterheader .ha-lettermetalinks a:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.dark .ha-letterheader .ha-lettermetalinks a{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark .ha-letterheader .ha-lettermetalinks a:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.ha-letterbody{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.dark .ha-letterbody{--tw-bg-opacity:1;--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);background-color:rgb(15 23 42/var(--tw-bg-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ha-lettertext{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.dark .ha-lettertext{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}@media (min-width:700px){.ha-lettertext{border-left-width:2px}.dark .ha-lettertext{border-style:none}}.ha-marginals{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.dark .ha-marginals{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}.ha-additions{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity));display:none}.dark .ha-additions{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}.ha-additions .ha-edits .ha-editentries table tr:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.dark .ha-additions .ha-edits .ha-editentries table tr:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}.ha-linecount.ha-firstline{--tw-text-opacity:1;border-radius:.5rem;color:rgb(30 41 59/var(--tw-text-opacity))}.dark .ha-linecount.ha-firstline{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}@media (min-width:700px){.ha-linecount.ha-firstline{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);background-color:rgb(248 250 252/var(--tw-bg-opacity));border-color:rgb(71 85 105/var(--tw-border-opacity));border-width:1px}.dark .ha-linecount.ha-firstline,.ha-linecount.ha-firstline{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark .ha-linecount.ha-firstline{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);background-color:rgb(30 41 59/var(--tw-bg-opacity));border-color:rgb(148 163 184/var(--tw-border-opacity))}.ha-linecount .ha-zhline,.ha-linecount .ha-zhpage{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.dark .ha-linecount .ha-zhline,.dark .ha-linecount .ha-zhpage{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}}.ha-lettertext .ha-marginal:before,.ha-tradzhtext .ha-marginal:before{--tw-bg-opacity:1;background-color:rgb(43 97 158/var(--tw-bg-opacity))}.dark .ha-lettertext .ha-marginal:before,.dark .ha-tradzhtext .ha-marginal:before{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity))}.ha-lettertext .ha-marginalbox,.ha-tradzhtext .ha-marginalbox{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.dark .ha-lettertext .ha-marginalbox,.dark .ha-tradzhtext .ha-marginalbox{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}.ha-lettertext .ha-marginalbox.ha-expanded-box .ha-marginallist,.ha-tradzhtext .ha-marginalbox.ha-expanded-box .ha-marginallist{--tw-bg-opacity:1;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);background-color:rgb(241 245 249/var(--tw-bg-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding-bottom:.25rem}.dark .ha-lettertext .ha-marginalbox.ha-expanded-box .ha-marginallist,.dark .ha-tradzhtext .ha-marginalbox.ha-expanded-box .ha-marginallist{--tw-bg-opacity:1;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);background-color:rgb(71 85 105/var(--tw-bg-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ha-lettertext .ha-btn-collapsed-box,.ha-tradzhtext .ha-btn-collapsed-box{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.ha-lettertext .ha-btn-collapsed-box:hover,.ha-tradzhtext .ha-btn-collapsed-box:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.dark .ha-lettertext .ha-btn-collapsed-box,.dark .ha-tradzhtext .ha-btn-collapsed-box{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark .ha-lettertext .ha-btn-collapsed-box:hover,.dark .ha-tradzhtext .ha-btn-collapsed-box:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.ha-added,.ha-added :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}.dark .ha-added,.dark .ha-added :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}.ha-note,.ha-note :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.dark .ha-note,.dark .ha-note :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.ha-ful,.ha-ful :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity))}.dark .ha-ful,.dark .ha-ful :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.ha-tul,.ha-tul :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity))}.dark .ha-tul,.dark .ha-tul :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.ha-diagdel:before{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity))}.dark .ha-diagdel:before{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.active{color:rgb(216 0 0/var(--tw-text-opacity))!important}.active,.dark .active{--tw-text-opacity:1!important}.dark .active{color:rgb(0 0 0/var(--tw-text-opacity))!important}.active:hover{--tw-text-opacity:1!important;color:rgb(216 0 0/var(--tw-text-opacity))!important}.dark .active:hover{--tw-text-opacity:1!important;color:rgb(31 41 55/var(--tw-text-opacity))!important}body{font-size:1rem;height:100%;line-height:1.5rem;width:100%}@media (min-width:1190px){body{font-size:1.125rem;line-height:1.75rem}}.ha-topnav{display:flex}@media (min-width:960px){.ha-topnav{font-size:1.125rem;line-height:1.75rem}}@media (min-width:1190px){.ha-topnav{flex-grow:0;flex-shrink:0;place-self:end}}@media (min-width:1440px){.ha-topnav{margin-bottom:.25rem}}@media (min-width:1680px){.ha-topnav{font-size:1.25rem;line-height:1.75rem}}.ha-topnav a{display:none;margin-right:1.5rem}@media (min-width:1190px){.ha-topnav a{display:inline-block}}@media (min-width:1680px){.ha-topnav a{margin-right:1.75rem}}.ha-topnav a:last-child{margin-right:0}.ha-topnav-dropdown{display:none}@media (min-width:1190px){.ha-topnav-dropdown{display:inline-block;position:relative}.ha-topnav-dropdown:hover .ha-topnav-dropdown-content{display:block}}.ha-topnav-dropdown .ha-topnav-dropdown-content{display:none;margin-right:1.5rem;min-width:130px;padding-top:.25rem;right:0;z-index:50}@media (min-width:1190px){.ha-topnav-dropdown .ha-topnav-dropdown-content{position:absolute}}.ha-topnav-dropdown .ha-topnav-dropdown-content a{display:block;margin-right:0;padding:.5rem .75rem .5rem .5rem}.ha-topnav-dropdown .ha-topnav-dropdown-content .active{border-style:none}.ha-scrollbutton{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);background-color:rgb(248 250 252/var(--tw-bg-opacity));border-top-left-radius:.75rem;border-top-right-radius:.75rem;bottom:0;color:rgb(30 69 112/var(--tw-text-opacity));cursor:pointer;left:85%;opacity:0;padding:.5rem .5rem .75rem;position:fixed;text-align:center;transition-duration:.5s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ha-scrollbutton,.ha-scrollbutton:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ha-scrollbutton:hover{--tw-text-opacity:1;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);color:rgb(43 97 158/var(--tw-text-opacity))}.dark .ha-scrollbutton{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.ha-scrollbuttonarrow{height:2rem;width:2rem}.ha-footer{font-family:Libertine,serif}.ha-footer .ha-footertext{font-size:.875rem;line-height:1.25rem;margin-left:auto;margin-right:auto;max-width:1190px;padding:.5rem 1rem;text-align:right}.ha-footer a{-webkit-text-decoration-line:underline;text-decoration-line:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.ha-footer a:hover{-webkit-text-decoration-style:solid;text-decoration-style:solid}.ha-footer .ha-themetoggles{border-radius:1.5rem;height:1rem;padding-left:.125rem;padding-right:.125rem;position:relative;white-space:nowrap;width:34px}.ha-footer .ha-themetoggles *{float:left}.ha-footer .ha-themetoggles input[type=radio]{display:none}.ha-footer .ha-themetoggles label{border-radius:1.5rem;cursor:pointer;display:block;height:11px;margin:3px 2px;text-align:center;width:11px;z-index:10}.ha-footer .ha-themetoggles .ha-themetoggleslider{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);border-radius:1.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);height:11px;position:absolute;top:3px;transition-duration:.1s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:11px}.ha-footer .ha-themetoggles #ha-toggledark:checked~.ha-themetoggleslider{left:.25rem}.ha-footer .ha-themetoggles #ha-togglebright:checked~.ha-themetoggleslider{left:19px}.ha-static{font-family:Libertine,serif;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;padding:3rem;width:100%}@media (min-width:960px){.ha-static{padding-left:4rem;padding-right:4rem}}.ha-static h1{font-size:1.25rem;font-weight:700;line-height:1.75rem;margin-bottom:1.5rem}@media (min-width:1190px){.ha-static h1{font-size:2.25rem;font-weight:400;line-height:2.5rem}}.ha-static h2{font-size:1.125rem;line-height:1.75rem;margin-bottom:.75rem;margin-top:1rem}@media (min-width:1190px){.ha-static h2{font-size:1.5rem;line-height:2rem}}.ha-static h3{margin-bottom:.5rem;margin-top:1rem}.ha-static table{margin-bottom:.75rem;margin-top:.75rem;width:100%}.ha-static table th{font-weight:400;padding-left:.5rem;padding-right:.5rem;text-align:left}@media (min-width:1190px){.ha-static table th{padding-right:1rem}}.ha-static table tr td{padding-left:.5rem;padding-right:.5rem;vertical-align:top}@media (min-width:1190px){.ha-static table tr td{padding-right:1rem;white-space:nowrap}.ha-static table tr td:last-child{white-space:normal}}.ha-static p{margin-bottom:1rem;margin-top:1rem}.ha-static a{-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.ha-static a,.ha-static a:hover{-webkit-text-decoration-line:underline;text-decoration-line:underline}.ha-static a:hover{-webkit-text-decoration-style:solid;text-decoration-style:solid}.ha-static .ha-footnote{font-size:.875rem;line-height:1.25rem;position:relative}@media (min-width:1190px){.ha-static .ha-footnote{font-size:1rem;line-height:1.5rem}}.ha-static .ha-footnote .ha-footnote-ref{display:inline-block;left:-2.5rem;position:absolute;text-align:right;width:2rem}.ha-register{font-family:Libertine,serif;font-variant-numeric:oldstyle-nums;width:100%}.ha-register .ha-register-body,.ha-register .ha-register-head{padding-left:2.25rem;padding-right:2.25rem;padding-top:2.25rem}@media (min-width:960px){.ha-register .ha-register-body,.ha-register .ha-register-head{padding-left:4rem;padding-right:4rem;padding-top:3rem}}.ha-register .ha-register-head{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.ha-register .ha-register-head h1{font-size:1.25rem;font-weight:700;line-height:1.75rem;margin-bottom:1.5rem}@media (min-width:1190px){.ha-register .ha-register-head h1{font-size:2.25rem;font-weight:400;line-height:2.5rem}}.ha-register .ha-register-head .ha-register-add a{display:flex;flex-direction:row;font-family:Biolinum,sans-serif;font-size:.875rem;line-height:1.25rem;margin-bottom:1.5rem;margin-top:-1rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.ha-register .ha-register-head .ha-register-add a .ha-register-add-plusbutton{font-size:1.25rem;font-weight:700;line-height:1.75rem;line-height:1;padding-bottom:.125rem;padding-left:.5rem;padding-right:.5rem}.ha-register .ha-register-head .ha-register-add a .ha-register-add-text{line-height:1;padding-left:.25rem;padding-right:.5rem;padding-top:.25rem}.ha-register .ha-register-head .ha-register-nav{font-family:Biolinum,sans-serif}.ha-register .ha-register-head .ha-register-nav a{display:inline-block;margin-right:.25rem;padding-left:.25rem;padding-right:.25rem}@media (min-width:960px){.ha-register .ha-register-head .ha-register-nav a{margin-right:.75rem}}.ha-register .ha-register-head .ha-register-nav a:first{padding-left:0}.ha-register .ha-register-head .ha-register-nav .ha-register-left-nav,.ha-register .ha-register-head .ha-register-nav .ha-register-right-nav{display:inline-block}.ha-register .ha-register-body{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem;padding-bottom:2.25rem}@media (min-width:960px){.ha-register .ha-register-body{padding-bottom:3rem;padding-right:24rem}}.ha-register .ha-register-body .ha-comment{display:block;margin-bottom:2.25rem}@media (min-width:960px){.ha-register .ha-register-body .ha-comment{margin-bottom:3rem}}.ha-register .ha-register-body .ha-comment a{-webkit-text-decoration-line:underline;text-decoration-line:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.ha-register .ha-register-body .ha-comment a:hover{-webkit-text-decoration-style:solid;text-decoration-style:solid}.ha-register .ha-register-body .ha-comment .ha-headcomment{display:block}@media (min-width:1190px){.ha-register .ha-register-body .ha-comment .ha-headcomment{position:relative}}.ha-register .ha-register-body .ha-comment .ha-subcomment{display:block;margin-left:2rem;margin-top:.5rem}@media (min-width:1190px){.ha-register .ha-register-body .ha-comment .ha-subcomment{position:relative}}.ha-register .ha-register-body .ha-comment .ha-commenthead{display:block}.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-lemma{display:inline;font-weight:700}.ha-register .ha-forschung .ha-register-body .ha-comment .ha-commenthead .ha-lemma{display:inline;font-weight:400}.ha-register .ha-forschung .ha-register-body .ha-comment{margin-bottom:1rem;padding-left:1rem;text-indent:-1rem}@media (min-width:960px){.ha-register .ha-forschung .ha-register-body .ha-comment{margin-bottom:1.5rem}}.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks{display:inline-block;font-family:Biolinum,sans-serif;font-size:.75rem;font-variant-caps:all-petite-caps;font-weight:400;line-height:1rem;line-height:1.375;margin-left:.5rem;margin-top:.25rem}@media (min-width:960px){.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks{font-size:.875rem;line-height:1.25rem}}.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks:before{--tw-content:"";bottom:.1rem;content:var(--tw-content);left:0;margin-top:.25rem;position:absolute;top:.1rem;width:.125rem}.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks .ha-hkb{display:inline}@media (min-width:1190px){.ha-register .ha-forschung .ha-register-body .ha-headcomment .ha-commenthead .ha-letlinks,.ha-register .ha-neuzeit .ha-register-body .ha-headcomment .ha-commenthead .ha-letlinks{left:48rem}.ha-register .ha-forschung .ha-register-body .ha-subcomment .ha-commenthead .ha-letlinks,.ha-register .ha-neuzeit .ha-register-body .ha-subcomment .ha-commenthead .ha-letlinks{left:46rem}}.ha-register .ha-bibel .ha-register-body .ha-commenthead .ha-lemma a{padding-left:.5rem}.ha-register .ha-bibel .ha-register-body .ha-commenthead .ha-lemma svg{display:inline}.ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks,.ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks{padding-left:.5rem}@media (min-width:1190px){.ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks,.ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks{display:block;position:absolute;text-indent:0;top:0;width:20rem}}.ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks a:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.ha-letterhead{display:flex;flex-direction:row}.ha-letterhead .ha-letternumber{display:flex;font-size:3rem;line-height:1;margin-right:1rem}@media (min-width:1190px){.ha-letterhead .ha-letternumber{font-size:3.75rem;font-weight:400;line-height:1;margin-right:1.5rem}}.ha-letterhead .ha-letternumber .ha-letternumberinline{display:inline;line-height:1;vertical-align:middle}.ha-letterhead .ha-metadata{align-self:flex-end;display:flex;flex-grow:1;flex-shrink:0}.ha-letterhead .ha-metadata .ha-metadatarows{display:flex;flex-direction:column}.ha-letterhead .ha-metadata .ha-metadataupperrow{display:flex;flex-direction:row;line-height:1.375}.ha-letterhead .ha-metadata .ha-metadatarows .ha-metadataupperrow .ha-metadatadate{display:flex;font-variant-caps:petite-caps;font-variant-numeric:oldstyle-nums}.ha-letterhead .ha-metadata .ha-tooltip{align-self:center;cursor:default;display:inline-block;position:relative}.ha-letterhead .ha-metadata .ha-tooltiptext{border-radius:.25rem;font-size:.875rem;line-height:1.25rem;padding:.125rem .25rem;position:absolute;text-align:center;z-index:10}.ha-letterhead .ha-metadata .ha-tooltiptext:after{left:50%;position:absolute;top:100%}.ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill{border-radius:.25rem;font-size:.875rem;font-variant-caps:all-petite-caps;letter-spacing:.025em;line-height:1.25rem;line-height:1;margin-left:.5rem;padding:.125rem .375rem}.ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross{display:inline-block;position:relative}.ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross:after,.ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross:before{height:0;position:absolute;right:0;top:50%;width:100%}.ha-letterhead .ha-metadata .ha-metadatarows .hametadatapersons{display:flex;line-height:1.375}.ha-adminuploadfields{-moz-column-gap:1rem;column-gap:1rem;display:flex;flex-direction:row;flex-wrap:wrap;row-gap:1rem}.ha-adminuploadfields .ha-uploadfield{--tw-bg-opacity:1;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgb(248 250 252/var(--tw-bg-opacity));border-radius:.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:block;flex-basis:16rem;flex-grow:1;flex-shrink:0;max-width:20rem}.ha-adminuploadfields .ha-uploadfield:hover{--tw-brightness:brightness(1.1)}.ha-adminuploadfields .ha-uploadfield.active,.ha-adminuploadfields .ha-uploadfield:hover{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.ha-adminuploadfields .ha-uploadfield.active{--tw-text-opacity:1!important;--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);--tw-brightness:brightness(1.1);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(0 0 0/var(--tw-text-opacity))!important}.ha-adminuploadfields .ha-uploadfield .ha-uploadfieldname{padding:.5rem .75rem .25rem}.ha-adminuploadfields .ha-uploadusedfiles{--tw-border-opacity:1;--tw-bg-opacity:0.3;background-color:rgb(226 232 240/var(--tw-bg-opacity));border-color:rgb(203 213 225/var(--tw-border-opacity));border-top-width:1px;font-size:.875rem;line-height:1.25rem;overflow:hidden;padding:.125rem .5rem;text-overflow:ellipsis;white-space:nowrap;width:auto}.ha-adminuploadfields .ha-uploadusedfiles.ha-uploadusedfilesnotfound{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity));border-color:rgb(100 116 139/var(--tw-border-opacity))}.ha-adminuploadfields .ha-uploadpublishforms{-moz-column-gap:1rem;column-gap:1rem;display:flex;flex-direction:row;flex-grow:1}.ha-adminuploadfields .ha-uploadform{--tw-bg-opacity:1;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgb(248 250 252/var(--tw-bg-opacity));border-radius:.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);flex-grow:1;position:relative}.ha-adminuploadfields .ha-uploadform .ha-uploadtext{text-align:center}.ha-adminuploadfields .ha-uploadform .ha-lds-ellipsis{left:50%;margin-left:-20px}.ha-adminuploadfields .ha-uploadform .ha-uploadfilelabel{cursor:pointer;display:inline-block;height:100%;padding:.5rem 1rem .25rem;width:100%}.ha-adminuploadfields .ha-uploadform .ha-uploadfilelabel:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.ha-adminuploadfields .ha-uploadform .ha-uploadmessage{--tw-bg-opacity:0.3;background-color:rgb(51 65 85/var(--tw-bg-opacity));border-radius:.125rem;font-size:.875rem;line-height:1.25rem;padding-left:.25rem;padding-right:.25rem}.ha-adminuploadfields .ha-publishbutton{--tw-bg-opacity:1;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgb(248 250 252/var(--tw-bg-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);cursor:pointer;display:inline-block;flex-shrink:1;height:100%;padding:.5rem .5rem .25rem;width:100%}.ha-adminuploadfields .ha-publishbutton:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.ha-adminuploadfields .ha-publishbutton .ha-publishtext{text-align:center}.ha-adminuploadfields .ha-publishbutton .ha-publishmessage{--tw-bg-opacity:0.3;background-color:rgb(51 65 85/var(--tw-bg-opacity));border-radius:.125rem;font-size:.875rem;line-height:1.25rem;padding-left:.25rem;padding-right:.25rem}.ha-uploadheader{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity));display:flex;flex-direction:row;margin-top:1rem;padding:3rem 4rem 2rem;width:100%}.ha-uploadheader h1{font-size:3rem;line-height:1}.ha-uploadcontainer{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity));display:flex;flex-direction:column;height:100%;row-gap:.5rem;width:100%}.ha-uploadcontainer .ha-publishfilelist{margin-bottom:2rem;padding-left:4rem;padding-right:4rem}.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelisttitle{font-size:1.25rem;line-height:1.75rem;margin-bottom:.5rem}.ha-uploadcontainer .ha-publishfilelist td{padding-right:1.5rem;vertical-align:text-top}.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity));border-radius:.375rem;border-width:2px;cursor:pointer;float:right;margin-left:1.5rem;margin-top:1rem;padding-left:.75rem;padding-right:.75rem;position:relative}.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel:hover{--tw-border-opacity:1;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);border-color:rgb(30 64 175/var(--tw-border-opacity));border-width:2px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel:active{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ha-uploadcontainer .ha-availablefiles{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity));border-width:1px;cursor:pointer;padding:.5rem 4rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ha-uploadcontainer .ha-availablefiles:hover{--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity))}.ha-uploadcontainer .ha-availablefiles .ha-availablefilestitle{font-size:1.5rem;line-height:2rem}.ha-filesheader{margin-bottom:2rem}.ha-availablefileslist{padding-left:4rem;padding-right:4rem;padding-top:1rem}.ha-uploadcontainer .ha-errorswarnings{-moz-column-gap:.5rem;column-gap:.5rem;display:flex;flex-direction:row}.ha-uploadcontainer .ha-errorswarnings .ha-criticalerrors,.ha-uploadcontainer .ha-errorswarnings .ha-warnings{flex-basis:50%;flex-grow:1;flex-shrink:1;min-height:400px;min-width:40%;overflow-x:hidden;overflow-y:scroll}.ha-uploadcontainer .ha-errorswarnings .ha-criticalerrors{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.ha-uploadcontainer .ha-errorswarnings .ha-warnings{--tw-bg-opacity:1;background-color:rgb(254 215 170/var(--tw-bg-opacity))}.ha-uploadcontainer .ha-crossfilechecking{--tw-bg-opacity:1;background-color:rgb(165 243 252/var(--tw-bg-opacity));flex-grow:1;flex-shrink:0;height:100%;min-height:400px;width:100%}.ha-uploadcontainer .ha-hamannfilechooser{padding-bottom:4rem;padding-left:4rem;padding-right:4rem}.ha-filelistfieldset .ha-filelistlegend{font-size:1.25rem;line-height:1.75rem;margin-bottom:.5rem}.ha-selectfilesform .ha-filelistfile{align-items:center;-moz-column-gap:1rem;column-gap:1rem;display:flex;flex-direction:row;padding-left:.25rem;padding-right:.25rem}.ha-selectfilesform .ha-filelistfile:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.ha-selectfilesform .ha-filelistlist{height:24rem;overflow-x:hidden;overflow-y:scroll;padding-right:1rem}.ha-selectfilesform .ha-filelistfile .ha-filelistname{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace,mono}.ha-selectfilesform .ha-filelistfile .ha-filelistusedproduction{font-size:.875rem;line-height:1.25rem}.ha-selectfilesform .ha-filelistfile .ha-filelistusedproduction .ha-filelistproduction{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(13 148 136/var(--tw-border-opacity));border-radius:.375rem;border-width:1px;color:rgb(13 148 136/var(--tw-text-opacity));display:inline-block;margin-right:.5rem;padding-left:.5rem;padding-right:.5rem}.ha-selectfilesform .ha-filelistfile .ha-filelistusedproduction .ha-filelistused{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(79 70 229/var(--tw-border-opacity));border-radius:.375rem;border-width:1px;color:rgb(79 70 229/var(--tw-text-opacity));display:inline-block;padding-left:.5rem;padding-right:.5rem}.ha-selectfilesform .ha-filelistfile .ha-filelistmodified{flex-grow:1;text-align:right}.ha-selectfilesform .ha-filelistoutput{margin-left:1.5rem;margin-top:1rem}.ha-selectfilesform .ha-filelistbutton{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity));border-radius:.375rem;border-width:2px;cursor:pointer;float:right;margin-left:1.5rem;margin-top:1rem;padding-left:.75rem;padding-right:.75rem}.ha-selectfilesform .ha-filelistbutton:hover{--tw-border-opacity:1;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);border-color:rgb(30 64 175/var(--tw-border-opacity));border-width:2px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ha-selectfilesform .ha-filelistbutton:active{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ha-letterheader{border-top-left-radius:.125rem;border-top-right-radius:.125rem;padding-left:1.5rem;padding-right:1.5rem;padding-top:2rem}@media (min-width:960px){.ha-letterheader{padding-left:4rem;padding-right:4rem;padding-top:3rem}}.ha-letterheader .ha-letterheadernav{display:flex;flex-grow:1;margin-top:2.25rem}.ha-letterheader .ha-lettertabs{display:flex;flex-grow:1}.ha-letterheader .ha-lettertabs a{cursor:pointer;display:inline-block;margin-right:.25rem;padding-left:.25rem;padding-right:.25rem}@media (min-width:960px){.ha-letterheader .ha-lettertabs a{margin-right:.75rem}.ha-letterheader .ha-lettertabs .ha-marginalsbtn{display:none}}.ha-letterheader .ha-lettertabs a.active{pointer-events:none}.ha-letterheader .ha-lettertabs a:first{padding-left:0}.ha-letterheader .ha-lettermetalinks{align-self:flex-end}.ha-letterheader .ha-lettermetalinks a{align-self:flex-end;font-variant-caps:petite-caps}.ha-letterheader .ha-lettermetalinks .ha-hkb{display:inline-block;font-variant-caps:all-petite-caps}.ha-letterbody{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem;display:flex;flex-direction:row;flex-wrap:nowrap}.ha-lettertext{display:flow-root;font-family:Libertine,serif;font-variant-numeric:oldstyle-nums;line-height:1.48;margin-left:1rem;max-width:38rem;padding:1rem 1rem 2rem;position:relative}@media (min-width:700px){.ha-lettertext{flex-shrink:0;margin-left:3rem}}@media (min-width:1190px){.ha-lettertext{max-width:45rem}}.ha-marginals{display:none;font-variant-numeric:oldstyle-nums;line-height:1.48;margin-left:1rem;max-width:48rem;padding:1rem;position:relative}@media (min-width:960px){.ha-marginals{margin-left:3rem}}.ha-marginals table td{vertical-align:text-top}.ha-marginals .ha-marginalfromto{font-size:.875rem;font-weight:600;line-height:1.25rem;padding-right:1rem;white-space:nowrap}.ha-marginals .ha-marginaltext .ha-bzg{display:inline}.ha-marginals .ha-marginaltext a{-webkit-text-decoration-line:underline;text-decoration-line:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.ha-marginals .ha-marginaltext a:hover{-webkit-text-decoration-style:solid;text-decoration-style:solid}.ha-additions .ha-tradition div{display:inline}.ha-additions .ha-tradition{max-width:56rem}.ha-additions{font-family:Libertine,serif;font-variant-numeric:oldstyle-nums;line-height:1.48;margin-left:1rem;padding:1rem;position:relative}@media (min-width:960px){.ha-additions{margin-left:3rem}}.ha-additions .ha-app{display:block!important;font-weight:700;padding-top:1.5rem}.ha-additions .ha-app+br{display:none}.ha-additions .ha-tradition .ha-app:first-child{padding-top:0}.ha-additions .ha-tradition{-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.ha-additions .ha-tradition .ha-tradzhtext{display:flow-root!important;font-family:Libertine,serif;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;margin-left:-1rem;padding-left:1rem;position:relative;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.ha-additions .ha-tradition a{-webkit-text-decoration-line:underline!important;text-decoration-line:underline!important;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.ha-additions .ha-tradition a:hover{-webkit-text-decoration-style:solid;text-decoration-style:solid}.ha-additions .ha-hands{padding-top:1.5rem}.ha-additions .ha-hands .ha-handstitle{font-weight:700}.ha-additions .ha-hands .ha-handentries .ha-handfrom,.ha-additions .ha-hands .ha-handentries .ha-handto{display:inline;font-size:.875rem;font-weight:600;line-height:1.25rem;white-space:nowrap}.ha-additions .ha-hands .ha-handentries .ha-handperson{display:inline;padding-left:1rem;white-space:nowrap}.ha-additions .ha-edits .ha-editentries .ha-editfromto{white-space:nowrap}.ha-additions .ha-edits .ha-editentries .ha-editfrom,.ha-additions .ha-edits .ha-editentries .ha-editto{display:inline;font-size:.875rem;font-weight:600;line-height:1.25rem;white-space:nowrap}.ha-additions .ha-edits .ha-editentries .ha-editreference{white-space:nowrap}.ha-additions .ha-edits .ha-editentries .ha-editreference div{display:inline}.ha-additions .ha-edits{max-width:56rem;padding-top:1.5rem}.ha-additions .ha-edits .ha-editstitle{font-weight:700}.ha-additions .ha-edits .ha-editsinfo{-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;padding-bottom:1rem}.ha-additions .ha-edits .ha-editentries tr td{vertical-align:text-top}.ha-additions .ha-edits .ha-editentries .ha-editreas div{display:inline;font-family:Biolinum,sans-serif}.ha-additions .ha-edits .ha-editentries .ha-editfromto{padding-left:.25rem;padding-right:.25rem}.ha-additions .ha-edits .ha-editentries .ha-editreference{border-right-width:2px;font-size:.875rem;line-height:1.25rem;padding-left:.25rem;padding-right:.75rem}.ha-additions .ha-edits .ha-editentries .ha-editreference br{display:none}.ha-additions .ha-edits .ha-editentries .ha-editreas{padding-left:.75rem;width:100%}.ha-additions .ha-edits .ha-editentries .ha-editreas .ha-zh *{font-family:Libertine,serif!important}.hide{display:none}.ha-lettertext div{display:inline}.ha-linecount.ha-firstline{border-radius:.25rem;display:none;font-variant-caps:all-petite-caps;font-variant-numeric:normal;padding-left:.375rem;padding-right:.375rem;white-space:nowrap}@media (min-width:700px){.ha-linecount.ha-firstline{display:inline-block;line-height:1;padding-bottom:.25rem;padding-top:.125rem}}.ha-linecount{font-family:Biolinum,sans-serif;font-size:.75rem;line-height:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media (min-width:700px){.ha-linecount{margin-right:.5rem;margin-top:.25rem;position:absolute;right:100%;text-align:right}}.ha-linecount .ha-zhline{display:none}@media (min-width:700px){.ha-linecount .ha-zhline{display:inline}}.ha-linecount .ha-zhpage{display:inline-block}@media (min-width:700px){.ha-linecount .ha-zhpage{display:inline}}.ha-linecount .ha-zhline,.ha-linecount .ha-zhpage{font-variant-caps:all-petite-caps;font-variant-numeric:normal;padding-left:.25rem;padding-right:.25rem}@media (min-width:700px){.ha-linecount .ha-zhline,.ha-linecount .ha-zhpage{padding-bottom:.25rem}}.ha-linecount .ha-hiddenlinecount{display:none!important}.ha-lettertext .ha-marginal:before,.ha-tradzhtext .ha-marginal:before{--tw-content:"";bottom:.1rem;content:var(--tw-content);left:0;position:absolute;top:.2rem;width:.125rem}.ha-lettertext .ha-marginalbox,.ha-tradzhtext .ha-marginalbox{border-radius:.125rem;display:none;font-family:Biolinum,sans-serif;font-size:.875rem;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;left:100%;line-height:1.25rem;line-height:1.25;margin-left:.5rem;margin-top:.25rem;padding-left:.5rem;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:16rem}.ha-lettertext .ha-marginalbox:hover,.ha-tradzhtext .ha-marginalbox:hover{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}@media (min-width:960px){.ha-lettertext .ha-marginalbox,.ha-tradzhtext .ha-marginalbox{display:block}}@media (min-width:1190px){.ha-lettertext .ha-marginalbox,.ha-tradzhtext .ha-marginalbox{margin-left:2.5rem;width:28rem}}.ha-lettertext .ha-marginalbox .ha-marginallist,.ha-tradzhtext .ha-marginalbox .ha-marginallist{-moz-column-gap:1.5rem;column-gap:1.5rem;display:flex;flex-wrap:wrap;font-size:.875rem;line-height:1.25rem;line-height:1.25;padding-right:.25rem}.ha-lettertext .ha-marginalbox .ha-marginallist .ha-marginal,.ha-tradzhtext .ha-marginalbox .ha-marginallist .ha-marginal{display:inline;padding-left:.5rem;position:relative}.ha-lettertext .ha-marginalbox .ha-marginallist .ha-marginal a,.ha-tradzhtext .ha-marginalbox .ha-marginallist .ha-marginal a{-webkit-text-decoration-line:underline!important;text-decoration-line:underline!important;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.ha-lettertext .ha-marginalbox .ha-marginallist .ha-marginal a:hover,.ha-tradzhtext .ha-marginalbox .ha-marginallist .ha-marginal a:hover{-webkit-text-decoration-style:solid;text-decoration-style:solid}.ha-lettertext .ha-marginalbox .ha-marginallist .ha-marginal,.ha-lettertext .ha-marginalbox .ha-marginallist .ha-marginal *,.ha-tradzhtext .ha-marginalbox .ha-marginallist .ha-marginal,.ha-tradzhtext .ha-marginalbox .ha-marginallist .ha-marginal *{min-height:0;min-width:0;overflow:hidden;text-overflow:ellipsis}.ha-lettertext .ha-btn-collapsed-box,.ha-tradzhtext .ha-btn-collapsed-box{cursor:pointer;display:none;left:100%;line-height:1;margin-top:.125rem;position:absolute}@media (min-width:960px){.ha-lettertext .ha-btn-collapsed-box,.ha-tradzhtext .ha-btn-collapsed-box{display:block}}@media (min-width:1190px){.ha-lettertext .ha-btn-collapsed-box,.ha-tradzhtext .ha-btn-collapsed-box{margin-left:1.75rem}}.ha-lettertext.ha-minwidth,.ha-minwidth .ha-tradzhtext{min-width:38rem}@media (min-width:1190px){.ha-lettertext.ha-minwidth,.ha-minwidth .ha-tradzhtext{min-width:55rem}}.ha-lettertext.ha-minwidth .ha-alignright,.ha-minwidth .ha-tradzhtext .ha-alignright{float:right;margin-right:20%}.ha-lettertext.ha-minwidth .ha-aligncenter{--tw-translate-x:-50%;left:33.333333%;position:absolute;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));white-space:nowrap}.ha-zhbreak{display:none}@media (min-width:700px){.ha-zhbreak{display:inline}}.ha-up{position:relative;top:-.75rem}.ha-bzg{font-family:Libertine,serif!important;font-size:.75rem!important;font-weight:600!important;line-height:1rem!important}.ha-text,.ha-title{display:inline}.ha-title{font-style:italic}.ha-insertedlemma{display:inline}.ha-serif{font-family:Libertine,serif}.ha-aq,.ha-aq :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal,.ha-marginal *,.ha-btn-collapsed-box){font-family:Biolinum,sans-serif}.ha-ul,.ha-ul :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal,.ha-marginal *,.ha-btn-collapsed-box){-webkit-text-decoration-line:underline;text-decoration-line:underline}.ha-del,.ha-del :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-diagdel,.ha-marginal,.ha-marginal *,.ha-btn-collapsed-box){display:inline;-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.ha-hand,.ha-hand :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal,.ha-marginal *,.ha-btn-collapsed-box){font-family:Playfair,serif;font-size:.9rem}.ha-added,.ha-added :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal,.ha-marginal *,.ha-btn-collapsed-box){border-radius:.125rem;padding-left:.125rem;padding-right:.125rem}.ha-emph :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal,.ha-marginal *,.ha-btn-collapsed-box),.ha-note,.ha-note :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal,.ha-marginal *,.ha-btn-collapsed-box){font-style:italic}.ha-sup :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal,.ha-marginal *,.ha-btn-collapsed-box){font-size:80%;position:relative;top:-.3em}.ha-super{font-size:.75rem;font-variant-numeric:normal;top:-.3em}.ha-sub,.ha-super{line-height:1rem;line-height:1;position:relative;vertical-align:baseline}.ha-sub{bottom:-.25em;font-size:.75rem}.ha-ful,.ha-ful :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){border-bottom-width:1px;display:inline;padding-bottom:2px}.ha-dul,.ha-dul :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){-webkit-text-decoration-line:underline;text-decoration-line:underline;-webkit-text-decoration-style:double;text-decoration-style:double}.ha-tul,.ha-tul :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){border-bottom-width:3px;border-style:double;-webkit-text-decoration-line:underline;text-decoration-line:underline}.ha-alignright{float:right}.ha-aligncenter{--tw-translate-x:-50%;left:50%;position:absolute;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));white-space:nowrap}.ha-sal{display:inline-block;margin-left:1.5rem}.ha-indent-1{padding-left:.5rem}@media (min-width:700px){.ha-indent-1{padding-left:1rem}}.ha-indent-2{padding-left:1rem}@media (min-width:700px){.ha-indent-2{padding-left:2rem}}.ha-indent-3{padding-left:1.5rem}@media (min-width:700px){.ha-indent-3{padding-left:3rem}}.ha-indent-4{padding-left:2rem}@media (min-width:700px){.ha-indent-4{padding-left:4rem}}.ha-indent-5{padding-left:2.5rem}@media (min-width:700px){.ha-indent-5{padding-left:5rem}}.ha-indent-6{padding-left:5rem}@media (min-width:700px){.ha-indent-6{padding-left:11rem}}.ha-indent-7{padding-left:8rem}@media (min-width:700px){.ha-indent-7{padding-left:16rem}}.active{pointer-events:none}.ha-topnav a.active{-webkit-text-decoration-line:underline;text-decoration-line:underline;text-underline-offset:2px}@media (min-width:1190px){.ha-topnav a.active{-webkit-text-decoration-line:none;text-decoration-line:none}}.ha-topnav.ha-topnav-collapsed{display:block;font-size:1rem;height:100%;line-height:1.5rem;margin-top:1rem;width:100%}@media (min-width:960px){.ha-topnav.ha-topnav-collapsed{font-size:1.125rem;line-height:1.75rem}}@media (min-width:1190px){.ha-topnav.ha-topnav-collapsed{display:flex;margin-top:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}}@media (min-width:1680px){.ha-topnav.ha-topnav-collapsed{font-size:1.25rem;line-height:1.75rem}}.ha-topnav.ha-topnav-collapsed a{clear:both;display:block;padding-bottom:.25rem;padding-top:.25rem;text-align:left;width:100%}@media (min-width:1190px){.ha-topnav.ha-topnav-collapsed a{display:inline-block;padding-bottom:0;padding-top:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}}.ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown{display:block}@media (min-width:1190px){.ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown{display:inline-block}.ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown:hover .ha-topnav-dropdown-content{display:block}}.ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown .ha-topnav-dropdown-content{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border-style:none;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:block;padding-top:0}@media (min-width:1190px){.ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown .ha-topnav-dropdown-content{display:none;padding-top:.5rem}}.ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown .ha-topnav-dropdown-content a{padding-bottom:.25rem;padding-top:.25rem}@media (min-width:1190px){.ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown .ha-topnav-dropdown-content a{padding-bottom:.5rem;padding-top:.5rem}}.ha-register .ha-headcomment .ha-btn-collapsed-box{left:47.6rem}.ha-register .ha-subcomment .ha-btn-collapsed-box{left:45.6rem}.ha-register .ha-btn-collapsed-box{cursor:pointer;display:none;position:absolute;top:-.15rem}@media (min-width:1190px){.ha-register .ha-btn-collapsed-box{display:block}}.ha-collapsed-box,.ha-collapsed-box *{cursor:default;min-height:0;min-width:0;overflow:hidden;text-overflow:ellipsis;z-index:0}.ha-expanded-box{height:auto!important;max-height:100vh!important;padding-bottom:.25rem;z-index:1000}.pointer-events-none{pointer-events:none}.static{position:static}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.bottom-0{bottom:0}.my-8{margin-bottom:2rem;margin-top:2rem}.mx-8{margin-left:2rem;margin-right:2rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-8{margin-left:2rem}.mb-6{margin-bottom:1.5rem}.mr-2{margin-right:.5rem}.\!mr-0{margin-right:0!important}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.flow-root{display:flow-root}.hidden{display:none}.h-full{height:100%}.h-8{height:2rem}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-8{width:2rem}.shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.grow-0{flex-grow:0}.cursor-default{cursor:default}.resize{resize:both}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.overflow-hidden{overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.border{border-width:1px}.border-t-\[5px\]{border-top-width:5px}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity))}.border-t-gray-200{--tw-border-opacity:1;border-top-color:rgb(229 231 235/var(--tw-border-opacity))}.border-l-gray-200{--tw-border-opacity:1;border-left-color:rgb(229 231 235/var(--tw-border-opacity))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.p-1{padding:.25rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pr-3{padding-right:.75rem}.align-baseline{vertical-align:baseline}.align-bottom{vertical-align:bottom}.font-serif{font-family:Libertine,serif}.text-xl{font-size:1.25rem;line-height:1.75rem}.italic{font-style:italic}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}@font-face{font-display:swap;font-family:Biolinum;font-style:normal;font-weight:400;src:url(../fonts/LinBiolinum_R.woff) format("woff")}@font-face{font-display:swap;font-family:Libertine;font-style:normal;font-weight:400;src:url(../fonts/LinLibertine_R.woff) format("woff")}@font-face{font-display:swap;font-family:Biolinum;font-style:italic;font-weight:400;src:url(../fonts/LinBiolinum_RI.woff) format("woff")}@font-face{font-display:swap;font-family:Biolinum;font-style:normal;font-weight:700;src:url(../fonts/LinBiolinum_RB.woff) format("woff")}@font-face{font-display:swap;font-family:Libertine;font-style:italic;font-weight:400;src:url(../fonts/LinLibertine_RI.woff) format("woff")}@font-face{font-display:swap;font-family:Libertine;font-style:normal;font-weight:700;src:url(../fonts/LinLibertine_RB.woff) format("woff")}@font-face{font-display:swap;font-family:Playfair;font-style:normal;font-weight:400;src:url(../fonts/PlayfairDisplay-VariableFont_wght.ttf) format("truetype")}.ha-lettertext .ha-marginalbox .ha-marginal:after,.ha-lettertext .ha-marginalbox .ha-marginal:last-of-type:after,.ha-lettertext .ha-marginalbox:before{content:""}.ha-nr:after,.ha-nr:before{content:" \200E\25E6"}.ha-added:after,.ha-added:before,.ha-note:after,.ha-note:before{content:""}.ha-bzg:after{content:"]"}.ha-additions .ha-edits .ha-editentries tr td:nth-of-type(2):after{content:""}*{scroll-behavior:smooth;-webkit-text-decoration-skip-ink:all;text-decoration-skip-ink:all}body{background-image:url(../img/subtlenet2.png);background-repeat:repeat}.ha-lettertext .ha-marginalbox.ha-collapsed-box .ha-marginallist .ha-marginal,.ha-tradzhtext .ha-marginalbox.ha-collapsed-box .ha-marginallist .ha-marginal{-webkit-box-orient:vertical;display:-webkit-inline-box}.ha-diagdel{display:inline-block!important;position:relative;text-decoration:none!important;-webkit-text-decoration-line:none!important;text-decoration-line:none!important}.ha-diagdel:after,.ha-diagdel:before{bottom:1.4ex;content:"";height:0%;position:absolute;right:0;width:100%}.ha-diagdel:before{border-style:solid;border-width:1px;transform:skewY(-36deg)}.ha-del .ha-del,.ha-del .ha-del :not(.ha-linecount *,.ha-linecount,.ha-marginalbox *,.ha-marginalbox,.ha-marginal *,.ha-marginal,.ha-btn-collapsed-box){-moz-text-decoration-style:double;-webkit-text-decoration-style:double!important;text-decoration-style:double;text-decoration-thickness:1px}.ha-del .ha-del .ha-ul,.ha-del .ha-ul .ha-del,.ha-ul .ha-del .ha-del{text-decoration:line-through underline;-moz-text-decoration-style:double;-webkit-text-decoration-style:double!important;text-decoration-style:double;text-decoration-thickness:1px}.ha-del .ha-ul,.ha-ul .ha-del{text-decoration:line-through underline;text-decoration-skip-ink:auto;-webkit-text-decoration-skip-ink:auto;text-decoration-thickness:1px}.hyphenate{-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.unhyphenate{-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.numeric-mediaeval{font-variant-numeric:oldstyle-nums}.numeric-normal{font-variant-numeric:normal}.caps-allpetite{font-variant-caps:all-petite-caps}.caps-petite{font-variant-caps:petite-caps}.caps-normal{font-variant-caps:normal}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.ha-menu-arrowsymbol:after{border-bottom:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid;content:"";display:inline-block;margin-left:.2em;vertical-align:.2em}.ha-menusymbol{border-radius:4px}.ha-menusymbol svg{stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;fill:none;height:24px;width:24px}.ha-tooltip .ha-tooltiptext{bottom:155%;left:50%;margin-left:-80px;min-width:160px;opacity:0;transition:opacity .3s;visibility:hidden;white-space:nowrap}.ha-tooltip .ha-tooltiptext:after{border-style:solid;border-width:5px;content:"";left:50%;margin-left:-5px;position:absolute;top:100%}.ha-tooltip:hover .ha-tooltiptext{opacity:1;visibility:visible}.ha-open-btn-collapsed-box:before{content:"\200E+";font-weight:900}.ha-close-btn-collapsed-box:before{content:"\200E\00D7";font-weight:900}.ha-uploadheader .ha-usedfilesheaderlist .ha-plussign{background-color:#789;content:"\200E+ ";display:inline-block;font-weight:700;padding-left:.25rem;padding-right:.25rem}.ha-uploadform .ha-uploadmessage{border-radius:6px;left:50%;margin-left:-180px;margin-top:.5rem;opacity:0;padding:5px 0;position:absolute;text-align:center;top:100%;transition:opacity 1s;visibility:visible;width:360px;z-index:1}.ha-uploadform .ha-uploadmessage:after{border:5px solid transparent;border-bottom-color:grey;bottom:100%;content:" ";left:50%;margin-left:-5px;position:absolute}.ha-lds-ellipsis{bottom:20px;display:none;position:absolute}.ha-lds-ellipsis-load{bottom:8px;display:none;position:relative;width:38px}.ha-lds-ellipsis-publish{bottom:16px;display:none;left:-50px;position:absolute}.ha-lds-ellipsis div,.ha-lds-ellipsis-load div,.ha-lds-ellipsis-publish div{-webkit-animation-timing-function:cubic-bezier(0,1,1,0);animation-timing-function:cubic-bezier(0,1,1,0);background:#000;border-radius:50%;height:7px;position:absolute;width:7px}.ha-lds-ellipsis div:first-child,.ha-lds-ellipsis-load div:first-child,.ha-lds-ellipsis-publish div:first-child{-webkit-animation:ha-lds-ellipsis1 .6s infinite;animation:ha-lds-ellipsis1 .6s infinite;left:6px}.ha-lds-ellipsis div:nth-child(2),.ha-lds-ellipsis-load div:nth-child(2),.ha-lds-ellipsis-publish div:nth-child(2){-webkit-animation:ha-lds-ellipsis2 .6s infinite;animation:ha-lds-ellipsis2 .6s infinite;left:4px}.ha-lds-ellipsis div:nth-child(3),.ha-lds-ellipsis-load div:nth-child(3),.ha-lds-ellipsis-publish div:nth-child(3){-webkit-animation:ha-lds-ellipsis2 .6s infinite;animation:ha-lds-ellipsis2 .6s infinite;left:16px}.ha-lds-ellipsis div:nth-child(4),.ha-lds-ellipsis-load div:nth-child(4),.ha-lds-ellipsis-publish div:nth-child(4){-webkit-animation:ha-lds-ellipsis3 .6s infinite;animation:ha-lds-ellipsis3 .6s infinite;left:30px}@-webkit-keyframes ha-lds-ellipsis1{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes ha-lds-ellipsis1{0%{transform:scale(0)}to{transform:scale(1)}}@-webkit-keyframes ha-lds-ellipsis3{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes ha-lds-ellipsis3{0%{transform:scale(1)}to{transform:scale(0)}}@-webkit-keyframes ha-lds-ellipsis2{0%{transform:translate(0)}to{transform:translate(16px)}}@keyframes ha-lds-ellipsis2{0%{transform:translate(0)}to{transform:translate(16px)}}.ha-cross:after,.ha-cross:before{content:""}.ha-cross:before{transform:skewY(-27deg)}.ha-table{font-variant-numeric:tabular-nums!important;overflow:hidden;white-space:nowrap}.ha-hatab-0-2{display:inline;min-width:50%;position:static}.ha-hatab-1-2{display:inline-block;left:50%;min-width:50%;position:absolute}.ha-hatab-0-3{display:inline;min-width:33.333%;position:static}.ha-hatab-1-3{left:33%}.ha-hatab-1-3,.ha-hatab-2-3{display:inline-block;min-width:33.333%;position:absolute}.ha-hatab-2-3{left:66%}.ha-hatab-0-4{display:inline;min-width:25%;position:static}.ha-hatab-1-4{left:25%}.ha-hatab-1-4,.ha-hatab-2-4{display:inline-block;min-width:25%;position:absolute}.ha-hatab-2-4{left:50%}.ha-hatab-3-4{display:inline-block;left:75%;min-width:25%;position:absolute}.ha-hatab-0-5{display:inline;min-width:20%;position:static}.ha-hatab-1-5{left:20%}.ha-hatab-1-5,.ha-hatab-2-5{display:inline-block;min-width:20%;position:absolute}.ha-hatab-2-5{left:40%}.ha-hatab-3-5{left:60%}.ha-hatab-3-5,.ha-hatab-4-5{display:inline-block;min-width:20%;position:absolute}.ha-hatab-4-5{left:80%}.ha-hatab-0-6{display:inline;min-width:16.667%;position:static}.ha-hatab-1-6{left:16.667%}.ha-hatab-1-6,.ha-hatab-2-6{display:inline-block;min-width:16.667%;position:absolute}.ha-hatab-2-6{left:33.333%}.ha-hatab-3-6{left:50%}.ha-hatab-3-6,.ha-hatab-4-6{display:inline-block;min-width:16.667%;position:absolute}.ha-hatab-4-6{left:66.667%}.ha-hatab-5-6{display:inline-block;left:83.333%;min-width:16.667%;position:absolute}.ha-hatab-0-7{display:inline;min-width:14.286%;position:static}.ha-hatab-1-7{left:14.286%}.ha-hatab-1-7,.ha-hatab-2-7{display:inline-block;min-width:14.286%;position:absolute}.ha-hatab-2-7{left:28.571%}.ha-hatab-3-7{left:42.857%}.ha-hatab-3-7,.ha-hatab-4-7{display:inline-block;min-width:14.286%;position:absolute}.ha-hatab-4-7{left:57.143%}.ha-hatab-5-7{left:71.429%}.ha-hatab-5-7,.ha-hatab-6-7{display:inline-block;min-width:14.286%;position:absolute}.ha-hatab-6-7{left:85.714%}.ha-hatab-0-8{display:inline;min-width:12.5%;position:static}.ha-hatab-1-8{left:12.5%}.ha-hatab-1-8,.ha-hatab-2-8{display:inline-block;min-width:12.5%;position:absolute}.ha-hatab-2-8{left:25%}.ha-hatab-3-8{left:37.5%}.ha-hatab-3-8,.ha-hatab-4-8{display:inline-block;min-width:12.5%;position:absolute}.ha-hatab-4-8{left:50%}.ha-hatab-5-8{left:62.5%}.ha-hatab-5-8,.ha-hatab-6-8{display:inline-block;min-width:12.5%;position:absolute}.ha-hatab-6-8{left:75%}.ha-hatab-7-8{display:inline-block;left:87.5%;min-width:12.5%;position:absolute}.ha-hatab-0-9{display:inline;min-width:11.111%;position:static}.ha-hatab-1-9{left:11.111%}.ha-hatab-1-9,.ha-hatab-2-9{display:inline-block;min-width:11.111%;position:absolute}.ha-hatab-2-9{left:22.222%}.ha-hatab-3-9{left:33.333%}.ha-hatab-3-9,.ha-hatab-4-9{display:inline-block;min-width:11.111%;position:absolute}.ha-hatab-4-9{left:44.444%}.ha-hatab-5-9{left:55.555%}.ha-hatab-5-9,.ha-hatab-6-9{display:inline-block;min-width:11.111%;position:absolute}.ha-hatab-6-9{left:66.666%}.ha-hatab-7-9{left:77.777%}.ha-hatab-7-9,.ha-hatab-8-9{display:inline-block;min-width:11.111%;position:absolute}.ha-hatab-8-9{left:88.888%}.ha-hatab-0-10,.ha-hatab-1-10{display:inline-block;min-width:10%;position:absolute}.ha-hatab-1-10{left:10%}.ha-hatab-2-10{left:20%}.ha-hatab-2-10,.ha-hatab-3-10{display:inline-block;min-width:10%;position:absolute}.ha-hatab-3-10{left:30%}.ha-hatab-4-10{left:40%}.ha-hatab-4-10,.ha-hatab-5-10{display:inline-block;min-width:10%;position:absolute}.ha-hatab-5-10{left:50%}.ha-hatab-6-10{left:60%}.ha-hatab-6-10,.ha-hatab-7-10{display:inline-block;min-width:10%;position:absolute}.ha-hatab-7-10{left:70%}.ha-hatab-8-10{left:80%}.ha-hatab-8-10,.ha-hatab-9-10{display:inline-block;min-width:10%;position:absolute}.ha-hatab-9-10{left:90%}.ha-hatab-0-11,.ha-hatab-1-11{display:inline-block;min-width:9.091%;position:absolute}.ha-hatab-1-11{left:9.091%}.ha-hatab-2-11{left:18.182%}.ha-hatab-2-11,.ha-hatab-3-11{display:inline-block;min-width:9.091%;position:absolute}.ha-hatab-3-11{left:27.273%}.ha-hatab-4-11{left:36.364%}.ha-hatab-4-11,.ha-hatab-5-11{display:inline-block;min-width:9.091%;position:absolute}.ha-hatab-5-11{left:45.455%}.ha-hatab-6-11{left:54.545%}.ha-hatab-6-11,.ha-hatab-7-11{display:inline-block;min-width:9.091%;position:absolute}.ha-hatab-7-11{left:63.636%}.ha-hatab-8-11{left:72.727%}.ha-hatab-8-11,.ha-hatab-9-11{display:inline-block;min-width:9.091%;position:absolute}.ha-hatab-9-11{left:81.818%}.ha-hatab-10-11{display:inline-block;left:90.909%;min-width:9.091%;position:absolute}.ha-hatab-0-12,.ha-hatab-1-12{display:inline-block;min-width:8.333%;position:absolute}.ha-hatab-1-12{left:8.333%}.ha-hatab-2-12{left:16.666%}.ha-hatab-2-12,.ha-hatab-3-12{display:inline-block;min-width:8.333%;position:absolute}.ha-hatab-3-12{left:25%}.ha-hatab-4-12{left:33.333%}.ha-hatab-4-12,.ha-hatab-5-12{display:inline-block;min-width:8.333%;position:absolute}.ha-hatab-5-12{left:41.666%}.ha-hatab-6-12{left:50%}.ha-hatab-6-12,.ha-hatab-7-12{display:inline-block;min-width:8.333%;position:absolute}.ha-hatab-7-12{left:58.333%}.ha-hatab-8-12{left:66.666%}.ha-hatab-8-12,.ha-hatab-9-12{display:inline-block;min-width:8.333%;position:absolute}.ha-hatab-9-12{left:75%}.ha-hatab-10-12{left:83.333%}.ha-hatab-10-12,.ha-hatab-11-12{display:inline-block;min-width:8.333%;position:absolute}.ha-hatab-11-12{left:91.666%}.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.dark .dark\:border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity))}.dark .dark\:bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}.dark .dark\:pt-2{padding-top:.5rem}.dark .dark\:pb-2{padding-bottom:.5rem}.dark .dark\:shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:700px){.sm\:inline{display:inline}.sm\:hidden{display:none}}@media (min-width:960px){.md\:inline{display:inline}.md\:hidden{display:none}.md\:pr-80{padding-right:20rem}}@media (min-width:1190px){.desktop\:block{display:block}.desktop\:hidden{display:none}.desktop\:max-w-screen-desktop{max-width:1190px}.desktop\:px-8{padding-left:2rem}.desktop\:pr-8,.desktop\:px-8{padding-right:2rem}}@media (min-width:1440px){.xl\:h-12{height:3rem}.xl\:w-12{width:3rem}.xl\:text-3xl{font-size:1.875rem;line-height:2.25rem}} \ No newline at end of file diff --git a/HaWeb/wwwroot/css/site.css b/HaWeb/wwwroot/css/site.css index 170b938..1928e38 100644 --- a/HaWeb/wwwroot/css/site.css +++ b/HaWeb/wwwroot/css/site.css @@ -158,6 +158,22 @@ @apply border-b-2 border-slate-200 } + .ha-register .ha-register-head .ha-register-add a { + @apply rounded border border-black hover:shadow-md hover:border-hamannHighlight + } + + .ha-register .ha-register-head .ha-register-add a .ha-register-add-plusbutton { + @apply rounded-l bg-slate-200 + } + + .ha-register .ha-register-head .ha-register-add a:hover .ha-register-add-plusbutton { + + } + + .ha-register .ha-register-head .ha-register-add a .ha-register-add-text { + + } + .ha-register .ha-register-head .ha-register-nav a { @apply text-slate-700 hover:text-slate-900 dark:text-white dark:hover:text-gray-300 } @@ -173,7 +189,7 @@ .ha-register .ha-neuzeit .ha-register-body .ha-commenthead .ha-letlinks::before, .ha-register .ha-forschung .ha-register-body .ha-commenthead .ha-letlinks::before { - @apply bg-slate-400 dark:bg-slate-500 + @apply bg-hamannSlate-500 dark:bg-slate-500 } .ha-register .ha-register-body .ha-commenthead .ha-letlinks.ha-expanded-box { @@ -181,40 +197,39 @@ } .ha-register .ha-btn-collapsed-box { - @apply hidden desktop:block absolute -top-[0.15rem] cursor-pointer + @apply hidden desktop:block absolute -top-[0.15rem] cursor-pointer mt-0.5 } - .ha-register - .ha-register-body - .ha-comment - .ha-commenthead - .ha-letlinks - .ha-hkb { + .ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks .ha-hkb { @apply text-slate-900 dark:text-white } .ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks a { - @apply hover:text-slate-900 dark:hover:text-gray-200 no-underline hover:underline + @apply hover:text-hamannSlate-900 dark:hover:text-gray-200 no-underline hover:underline } .ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks { - @apply text-slate-600 dark:text-white + @apply text-slate-700 dark:text-white } .ha-letterhead .ha-metadata .ha-tooltiptext { - @apply bg-slate-100 shadow + @apply shadow-sm bg-slate-50 border-hamannSlate-900 text-hamannSlate-900 border dark:border-none dark:shadow dark:bg-slate-800 } .ha-tooltip .ha-tooltiptext::after { - @apply border-t-slate-600 border-l-transparent border-r-transparent border-b-transparent + @apply border-t-slate-600 dark:border-t-slate-800 border-l-transparent border-r-transparent border-b-transparent } .ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill { - @apply bg-slate-100 shadow dark:bg-gray-700 + @apply rounded-lg border shadow-inner border-hamannSlate-900 text-hamannSlate-900 dark:text-white dark:bg-slate-800 dark:shadow-md dark:border-slate-400 + } + + .ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill.ha-newpill { + @apply dark:text-white dark:bg-slate-800 dark:shadow-md dark:border-slate-400 } .ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross::before { - @apply border-b-2 border-gray-600 dark:border-gray-200 + @apply border-b-2 border-hamannSlate-900 dark:border-gray-200 } .ha-letterheader { @@ -258,7 +273,7 @@ } .ha-linecount.ha-firstline { - @apply sm:bg-slate-100 sm:dark:bg-gray-700 shadow + @apply rounded-lg sm:border sm:bg-slate-50 sm:shadow-inner sm:border-slate-600 text-slate-800 dark:text-white sm:dark:bg-slate-800 sm:dark:shadow-md sm:dark:border-slate-400 } .ha-linecount .ha-zhpage, @@ -268,7 +283,7 @@ .ha-tradzhtext .ha-marginal::before, .ha-lettertext .ha-marginal:before { - @apply bg-slate-400 dark:bg-slate-500 + @apply bg-hamannSlate-500 dark:bg-slate-500 } .ha-tradzhtext .ha-marginalbox, @@ -359,6 +374,14 @@ @apply border-none } + .ha-scrollbutton { + @apply opacity-0 transition-opacity duration-500 cursor-pointer fixed left-[85%] text-center bottom-0 pb-3 pt-2 bg-slate-50 dark:bg-slate-700 dark:text-white px-2 shadow-md rounded-t-xl hover:shadow-lg text-hamannSlate-700 hover:text-hamannSlate-500 + } + + .ha-scrollbuttonarrow { + @apply h-8 w-8 + } + /* Classes for the footer */ .ha-footer { @apply font-serif; @@ -435,7 +458,7 @@ } .ha-static p { - @apply my-3 + @apply my-4 } .ha-static a { @@ -473,6 +496,22 @@ @apply font-bold text-xl desktop:font-normal desktop:text-4xl mb-6 } + .ha-register .ha-register-head .ha-register-add a { + @apply -mt-4 mb-6 flex flex-row w-fit text-sm font-sans + } + + .ha-register .ha-register-head .ha-register-add a .ha-register-add-plusbutton { + @apply px-2 leading-none text-xl font-bold pb-0.5 + } + + .ha-register .ha-register-head .ha-register-add a:hover .ha-register-add-plusbutton { + + } + + .ha-register .ha-register-head .ha-register-add a .ha-register-add-text { + @apply pl-1 pr-2 leading-none pt-1 + } + .ha-register .ha-register-head .ha-register-nav { @apply font-sans } @@ -535,11 +574,11 @@ } .ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks { - @apply inline-block font-normal text-xs md:text-sm leading-snug font-sans caps-allpetite ml-2 + @apply inline-block font-normal text-xs md:text-sm leading-snug font-sans caps-allpetite ml-2 mt-1 } .ha-register .ha-register-body .ha-comment .ha-commenthead .ha-letlinks::before { - @apply absolute top-[0.1rem] bottom-[0.1rem] left-0 w-0.5 content-[''] + @apply absolute mt-1 top-[0.1rem] bottom-[0.1rem] left-0 w-0.5 content-[''] } .ha-register @@ -637,7 +676,7 @@ } .ha-letterhead .ha-metadata .ha-tooltip { - @apply self-center cursor-default inline-block relative + @apply self-center cursor-default inline-block relative } .ha-letterhead .ha-metadata .ha-tooltiptext { @@ -649,7 +688,7 @@ } .ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill { - @apply text-xs rounded px-2 ml-2 py-[0.1rem] + @apply text-sm rounded px-1.5 ml-2 py-0.5 leading-none caps-allpetite tracking-wide } .ha-letterhead .ha-metadata .ha-metadataupperrow .ha-pill .ha-cross { @@ -755,7 +794,7 @@ } .ha-uploadcontainer .ha-publishfilelist .ha-publishfilelabel { - @apply mt-4 ml-6 rounded-md px-3 border-2 border-blue-600 hover:border-2 hover:shadow active:shadow-inner hover:border-blue-800 cursor-pointer float-right; + @apply relative mt-4 ml-6 rounded-md px-3 border-2 border-blue-600 hover:border-2 hover:shadow active:shadow-inner hover:border-blue-800 cursor-pointer float-right; } .ha-uploadcontainer .ha-availablefiles { @@ -1049,7 +1088,7 @@ } .ha-linecount.ha-firstline { - @apply hidden sm:inline-block rounded px-1 sm:pb-1 caps-allpetite normal-nums whitespace-nowrap + @apply hidden sm:inline-block rounded px-1.5 sm:py-0.5 sm:pb-1 sm:leading-none caps-allpetite normal-nums whitespace-nowrap } .ha-linecount { @@ -1075,12 +1114,12 @@ .ha-tradzhtext .ha-marginal::before, .ha-lettertext .ha-marginal::before { - @apply absolute top-[0.1rem] bottom-[0.1rem] left-0 w-0.5 content-[''] + @apply absolute top-[0.2rem] bottom-[0.1rem] left-0 w-0.5 content-[''] } .ha-tradzhtext .ha-marginalbox, .ha-lettertext .ha-marginalbox { - @apply hidden pl-2 md:block absolute left-full ml-6 mt-1 w-[16rem] desktop:w-[24rem] text-sm leading-tight rounded-sm font-sans + @apply hidden select-none hover:select-auto hyphenate pl-2 md:block absolute left-full ml-2 desktop:ml-10 mt-1 w-[16rem] desktop:w-[28rem] text-sm leading-tight rounded-sm font-sans } .ha-tradzhtext .ha-marginalbox .ha-marginallist, @@ -1107,7 +1146,7 @@ .ha-tradzhtext .ha-btn-collapsed-box, .ha-lettertext .ha-btn-collapsed-box { - @apply absolute left-full ml-4 hidden md:block cursor-pointer leading-none mt-0.5 + @apply absolute left-full desktop:ml-7 hidden md:block cursor-pointer leading-none mt-0.5 } .ha-minwidth .ha-tradzhtext, @@ -1376,6 +1415,7 @@ /* Not implemented in tailwindcss */ * { + scroll-behavior: smooth; text-decoration-skip-ink: all; } @@ -1440,6 +1480,9 @@ body { -webkit-text-decoration-skip-ink: auto; } + +/* Missiung Tailwind classes */ + .hyphenate { hyphens: auto; } @@ -1468,6 +1511,7 @@ body { font-variant-caps: normal; } + .break-inside-avoid { break-inside: avoid; } @@ -1584,7 +1628,23 @@ body { bottom: 20px; } -.ha-lds-ellipsis div { +.ha-lds-ellipsis-load { + display: none; + position: relative; + width: 38px; + bottom: 8px; +} + +.ha-lds-ellipsis-publish { + display: none; + position: absolute; + left: -50px; + bottom: 16px; +} + +.ha-lds-ellipsis div, +.ha-lds-ellipsis-load div, +.ha-lds-ellipsis-publish div { position: absolute; width: 7px; height: 7px; @@ -1593,22 +1653,30 @@ body { animation-timing-function: cubic-bezier(0, 1, 1, 0); } -.ha-lds-ellipsis div:nth-child(1) { +.ha-lds-ellipsis div:nth-child(1), +.ha-lds-ellipsis-load div:nth-child(1), +.ha-lds-ellipsis-publish div:nth-child(1) { left: 6px; animation: ha-lds-ellipsis1 0.6s infinite; } -.ha-lds-ellipsis div:nth-child(2) { +.ha-lds-ellipsis div:nth-child(2), +.ha-lds-ellipsis-load div:nth-child(2), +.ha-lds-ellipsis-publish div:nth-child(2) { left: 4px; animation: ha-lds-ellipsis2 0.6s infinite; } -.ha-lds-ellipsis div:nth-child(3) { +.ha-lds-ellipsis div:nth-child(3), +.ha-lds-ellipsis-load div:nth-child(3), +.ha-lds-ellipsis-publish div:nth-child(3) { left: 16px; animation: ha-lds-ellipsis2 0.6s infinite; } -.ha-lds-ellipsis div:nth-child(4) { +.ha-lds-ellipsis div:nth-child(4), +.ha-lds-ellipsis-load div:nth-child(4), +.ha-lds-ellipsis-publish div:nth-child(4) { left: 30px; animation: ha-lds-ellipsis3 0.6s infinite; } diff --git a/HaWeb/wwwroot/js/site.js b/HaWeb/wwwroot/js/site.js index d39edb2..005d998 100644 --- a/HaWeb/wwwroot/js/site.js +++ b/HaWeb/wwwroot/js/site.js @@ -1,3 +1,4 @@ +// Functions for opening and closing the menu on mobile devices const openmenu = function () { var x = document.getElementById("ha-topnav"); if (x !== null) x.className += " ha-topnav-collapsed"; @@ -31,6 +32,7 @@ const markactive_startswith = function (element) { }; const markactive_exact = function (element) { + // Marks links active which target URL is exact the same as the current URL var all_links = element.getElementsByTagName("a"), i = 0, len = all_links.length, @@ -43,6 +45,7 @@ const markactive_exact = function (element) { } }; +// Functions for collapsing marginals, and adding a button next to those const getLineHeight = function (element) { var temp = document.createElement(element.nodeName), ret; @@ -122,7 +125,6 @@ const addbuttoncaollapsebox = function (element, height, hoverfunction) { element.parentNode.insertBefore(btn, element); }; -/* TODO: need a resize watcher to undo and reapply the effect on breakpoint */ const overlappingcollapsebox = function (selector, hoverfunction) { let boxes = document.querySelectorAll(selector); let lineheight = 1; @@ -172,6 +174,22 @@ const overlappingcollapsebox = function (selector, hoverfunction) { } }; +const marginalboxwidthset = function() { + let lt = document.getElementById("ha-letterbody"); + if (lt !== null) { + let mg = lt.querySelectorAll(".ha-lettertext .ha-marginalbox"); + if (mg.length > 0) { + let ltbcr = lt.getBoundingClientRect(); + let mgbcr = mg[0].getBoundingClientRect(); + let nw = ltbcr.right - mgbcr.left - 18; + + for (let element of mg) { + element.style.width = nw + "px"; + } + } + } +} + /* Button to hide / show traditions, marginals and the text of the letter */ const showhidebutton = function ( buttonid, @@ -215,6 +233,11 @@ const showhidebutton = function ( } }; +const collapseboxes = function () { + overlappingcollapsebox(".ha-neuzeit .ha-letlinks", true); + overlappingcollapsebox(".ha-forschung .ha-letlinks", true); + overlappingcollapsebox(".ha-lettertext .ha-marginalbox", true); +}; // Functions for switching theme const go_to_dark = function () { localStorage.setItem("theme", "ha-toggledark"); @@ -233,14 +256,26 @@ const get_theme_settings = function (standard) { let toggleSwitch = document.getElementById(theme).click(); }; -const collapseboxes = function () { - overlappingcollapsebox(".ha-neuzeit .ha-letlinks", true); - overlappingcollapsebox(".ha-forschung .ha-letlinks", true); - overlappingcollapsebox(".ha-lettertext .ha-marginalbox", true); -}; +// Functions for scrolling +const scrollFunction = function () { + button = document.getElementById("ha-scrollbutton"); + if (document.body.scrollTop > 300 || document.documentElement.scrollTop > 300) { + button.style.opacity = "1"; + } else { + button.style.opacity = "0"; + } +} //////////////////////////////// ONLOAD //////////////////////////////////// window.addEventListener("load", function () { + // Scroll button + let scrollbutton = this.document.getElementById("ha-scrollbutton"); + scrollbutton.addEventListener("click", () => { + document.body.scrollTop = 0; // For Safari + document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera + }) + this.window.addEventListener("scroll", scrollFunction); + // Menu: Show / Hide Buttons for mobile View if ( document.getElementById("openmenubutton") !== null && @@ -263,11 +298,13 @@ window.addEventListener("load", function () { markactive_exact(document.getElementById("ha-adminuploadfields")); // Letter / Register View: Collapse all unfit boxes + resize observer + marginalboxwidthset(); collapseboxes(); var doit; this.window.addEventListener("resize", function () { this.clearTimeout(doit); - this.setTimeout(collapseboxes, 250); + marginalboxwidthset(); + doit = this.setTimeout(collapseboxes, 250); }); // Letter View: Show / Hide Tabs