diff --git a/.gitignore b/.gitignore index f606da8..c9f783c 100644 --- a/.gitignore +++ b/.gitignore @@ -484,4 +484,4 @@ $RECYCLE.BIN/ *.swp # Tailwind auto-generated stylesheet -output.css +*.g.css diff --git a/YaeBlog/Components/App.razor b/YaeBlog/Components/App.razor index f6d881b..75b2658 100644 --- a/YaeBlog/Components/App.razor +++ b/YaeBlog/Components/App.razor @@ -8,7 +8,7 @@ - + diff --git a/YaeBlog/Extensions/AngleSharpExtensions.cs b/YaeBlog/Extensions/AngleSharpExtensions.cs new file mode 100644 index 0000000..a299ab8 --- /dev/null +++ b/YaeBlog/Extensions/AngleSharpExtensions.cs @@ -0,0 +1,18 @@ +using AngleSharp.Dom; + +namespace YaeBlog.Extensions; + +public static class AngleSharpExtensions +{ + public static IEnumerable EnumerateParentElements(this IElement element) + { + IElement? e = element.ParentElement; + + while (e is not null) + { + IElement c = e; + e = e.ParentElement; + yield return c; + } + } +} diff --git a/YaeBlog/Processors/EssayStylesPostRenderProcessor.cs b/YaeBlog/Processors/EssayStylesPostRenderProcessor.cs index 8329d18..a9d2321 100644 --- a/YaeBlog/Processors/EssayStylesPostRenderProcessor.cs +++ b/YaeBlog/Processors/EssayStylesPostRenderProcessor.cs @@ -1,6 +1,7 @@ using AngleSharp; using AngleSharp.Dom; using YaeBlog.Abstraction; +using YaeBlog.Extensions; using YaeBlog.Models; namespace YaeBlog.Processors; @@ -20,20 +21,21 @@ public sealed class EssayStylesPostRenderProcessor : IPostRenderProcessor ApplyGlobalCssStyles(document); BeatifyTable(document); + BeatifyList(document); + BeatifyInlineCode(document); return essay.WithNewHtmlContent(document.DocumentElement.OuterHtml); } private readonly Dictionary _globalCssStyles = new() { - { "pre", "p-4 bg-slate-300 rounded-sm overflow-x-auto" }, + { "pre", "p-4 bg-gray-100 rounded-sm overflow-x-auto" }, { "h2", "text-3xl font-bold py-4" }, { "h3", "text-2xl font-bold py-3" }, { "h4", "text-xl font-bold py-2" }, { "h5", "text-lg font-bold py-1" }, { "p", "p-2" }, { "img", "w-11/12 block mx-auto my-2 rounded-md shadow-md" }, - { "ul", "list-disc pl-2" } }; private void ApplyGlobalCssStyles(IDocument document) @@ -99,4 +101,45 @@ public sealed class EssayStylesPostRenderProcessor : IPostRenderProcessor } } } + + private static void BeatifyList(IDocument document) + { + foreach (IElement ulElement in from e in document.All + where e.LocalName == "ul" + select e) + { + // 首先给
    元素添加样式 + ulElement.ClassList.Add("list-disc ml-10"); + + + foreach (IElement liElement in from e in ulElement.Children + where e.LocalName == "li" + select e) + { + // 修改
  • 元素中的

    元素样式 + // 默认的p-2间距有点太宽了 + foreach (IElement pElement in from e in liElement.Children + where e.LocalName == "p" + select e) + { + pElement.ClassList.Remove("p-2"); + pElement.ClassList.Add("p-1"); + } + } + } + } + + private static void BeatifyInlineCode(IDocument document) + { + // 选择不在

    元素内的元素
    +        // 即行内代码
    +        IEnumerable inlineCodes = from e in document.All
    +            where e.LocalName == "code" && e.EnumerateParentElements().All(p => p.LocalName != "pre")
    +            select e;
    +
    +        foreach (IElement e in inlineCodes)
    +        {
    +            e.ClassList.Add("bg-gray-100 inline p-1 rounded-xs");
    +        }
    +    }
     }
    diff --git a/YaeBlog/YaeBlog.csproj b/YaeBlog/YaeBlog.csproj
    index 31b222f..546dc43 100644
    --- a/YaeBlog/YaeBlog.csproj
    +++ b/YaeBlog/YaeBlog.csproj
    @@ -13,7 +13,7 @@
         enable
       
     
    -  
    +  
         
         
           
    @@ -25,9 +25,13 @@
         
       
     
    -  
    +  
         
    -    
    +    
    +
    +    
    +      
    +    
       
     
     
    diff --git a/YaeBlog/package.json b/YaeBlog/package.json
    index 6a94197..1e0009f 100644
    --- a/YaeBlog/package.json
    +++ b/YaeBlog/package.json
    @@ -1,12 +1,15 @@
     {
    -  "name": "YaeBlog",
    -  "version": "1.0.0",
    -  "description": "",
    -  "scripts": {},
    -  "keywords": [],
    -  "author": "",
    -  "license": "ISC",
    -  "devDependencies": {
    -    "tailwindcss": "^3.4.16"
    -  }
    +    "name": "yae-blog",
    +    "version": "1.0.0",
    +    "description": "",
    +    "scripts": {
    +        "dev": "tailwindcss -i wwwroot/tailwind.css -o wwwroot/tailwind.g.css -w"
    +    },
    +    "keywords": [],
    +    "author": "",
    +    "license": "ISC",
    +    "devDependencies": {
    +        "tailwindcss": "^4.0.0",
    +        "@tailwindcss/cli": "^4.0.0"
    +    }
     }
    diff --git a/YaeBlog/pnpm-lock.yaml b/YaeBlog/pnpm-lock.yaml
    index dae0173..725fd8a 100644
    --- a/YaeBlog/pnpm-lock.yaml
    +++ b/YaeBlog/pnpm-lock.yaml
    @@ -8,192 +8,212 @@ importers:
     
       .:
         devDependencies:
    +      '@tailwindcss/cli':
    +        specifier: ^4.0.0
    +        version: 4.0.15
           tailwindcss:
    -        specifier: ^3.4.16
    -        version: 3.4.16
    +        specifier: ^4.0.0
    +        version: 4.0.15
     
     packages:
     
    -  '@alloc/quick-lru@5.2.0':
    -    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
    -    engines: {node: '>=10'}
    +  '@parcel/watcher-android-arm64@2.5.1':
    +    resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [arm64]
    +    os: [android]
     
    -  '@isaacs/cliui@8.0.2':
    -    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
    -    engines: {node: '>=12'}
    +  '@parcel/watcher-darwin-arm64@2.5.1':
    +    resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [arm64]
    +    os: [darwin]
     
    -  '@jridgewell/gen-mapping@0.3.8':
    -    resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
    -    engines: {node: '>=6.0.0'}
    +  '@parcel/watcher-darwin-x64@2.5.1':
    +    resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [x64]
    +    os: [darwin]
     
    -  '@jridgewell/resolve-uri@3.1.2':
    -    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
    -    engines: {node: '>=6.0.0'}
    +  '@parcel/watcher-freebsd-x64@2.5.1':
    +    resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [x64]
    +    os: [freebsd]
     
    -  '@jridgewell/set-array@1.2.1':
    -    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
    -    engines: {node: '>=6.0.0'}
    +  '@parcel/watcher-linux-arm-glibc@2.5.1':
    +    resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [arm]
    +    os: [linux]
    +    libc: [glibc]
     
    -  '@jridgewell/sourcemap-codec@1.5.0':
    -    resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
    +  '@parcel/watcher-linux-arm-musl@2.5.1':
    +    resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [arm]
    +    os: [linux]
    +    libc: [musl]
     
    -  '@jridgewell/trace-mapping@0.3.25':
    -    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
    +  '@parcel/watcher-linux-arm64-glibc@2.5.1':
    +    resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [arm64]
    +    os: [linux]
    +    libc: [glibc]
     
    -  '@nodelib/fs.scandir@2.1.5':
    -    resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
    -    engines: {node: '>= 8'}
    +  '@parcel/watcher-linux-arm64-musl@2.5.1':
    +    resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [arm64]
    +    os: [linux]
    +    libc: [musl]
     
    -  '@nodelib/fs.stat@2.0.5':
    -    resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
    -    engines: {node: '>= 8'}
    +  '@parcel/watcher-linux-x64-glibc@2.5.1':
    +    resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [x64]
    +    os: [linux]
    +    libc: [glibc]
     
    -  '@nodelib/fs.walk@1.2.8':
    -    resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
    -    engines: {node: '>= 8'}
    +  '@parcel/watcher-linux-x64-musl@2.5.1':
    +    resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [x64]
    +    os: [linux]
    +    libc: [musl]
     
    -  '@pkgjs/parseargs@0.11.0':
    -    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
    -    engines: {node: '>=14'}
    +  '@parcel/watcher-win32-arm64@2.5.1':
    +    resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [arm64]
    +    os: [win32]
     
    -  ansi-regex@5.0.1:
    -    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
    -    engines: {node: '>=8'}
    +  '@parcel/watcher-win32-ia32@2.5.1':
    +    resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [ia32]
    +    os: [win32]
     
    -  ansi-regex@6.1.0:
    -    resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
    -    engines: {node: '>=12'}
    +  '@parcel/watcher-win32-x64@2.5.1':
    +    resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==}
    +    engines: {node: '>= 10.0.0'}
    +    cpu: [x64]
    +    os: [win32]
     
    -  ansi-styles@4.3.0:
    -    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
    -    engines: {node: '>=8'}
    +  '@parcel/watcher@2.5.1':
    +    resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
    +    engines: {node: '>= 10.0.0'}
     
    -  ansi-styles@6.2.1:
    -    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
    -    engines: {node: '>=12'}
    +  '@tailwindcss/cli@4.0.15':
    +    resolution: {integrity: sha512-52RdNZCpij4O8+25N9sfWZPG124e6ahmIS1uMHcJrdw10UdpPUFgSJtyMwf7COVOnkx0nkXfmp8CcYomPCrQ1Q==}
    +    hasBin: true
     
    -  any-promise@1.3.0:
    -    resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
    +  '@tailwindcss/node@4.0.15':
    +    resolution: {integrity: sha512-IODaJjNmiasfZX3IoS+4Em3iu0fD2HS0/tgrnkYfW4hyUor01Smnr5eY3jc4rRgaTDrJlDmBTHbFO0ETTDaxWA==}
     
    -  anymatch@3.1.3:
    -    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
    -    engines: {node: '>= 8'}
    +  '@tailwindcss/oxide-android-arm64@4.0.15':
    +    resolution: {integrity: sha512-EBuyfSKkom7N+CB3A+7c0m4+qzKuiN0WCvzPvj5ZoRu4NlQadg/mthc1tl5k9b5ffRGsbDvP4k21azU4VwVk3Q==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [android]
     
    -  arg@5.0.2:
    -    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
    +  '@tailwindcss/oxide-darwin-arm64@4.0.15':
    +    resolution: {integrity: sha512-ObVAnEpLepMhV9VoO0JSit66jiN5C4YCqW3TflsE9boo2Z7FIjV80RFbgeL2opBhtxbaNEDa6D0/hq/EP03kgQ==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [darwin]
     
    -  balanced-match@1.0.2:
    -    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
    +  '@tailwindcss/oxide-darwin-x64@4.0.15':
    +    resolution: {integrity: sha512-IElwoFhUinOr9MyKmGTPNi1Rwdh68JReFgYWibPWTGuevkHkLWKEflZc2jtI5lWZ5U9JjUnUfnY43I4fEXrc4g==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [darwin]
     
    -  binary-extensions@2.3.0:
    -    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
    -    engines: {node: '>=8'}
    +  '@tailwindcss/oxide-freebsd-x64@4.0.15':
    +    resolution: {integrity: sha512-6BLLqyx7SIYRBOnTZ8wgfXANLJV5TQd3PevRJZp0vn42eO58A2LykRKdvL1qyPfdpmEVtF+uVOEZ4QTMqDRAWA==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [freebsd]
     
    -  brace-expansion@2.0.1:
    -    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
    +  '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.15':
    +    resolution: {integrity: sha512-Zy63EVqO9241Pfg6G0IlRIWyY5vNcWrL5dd2WAKVJZRQVeolXEf1KfjkyeAAlErDj72cnyXObEZjMoPEKHpdNw==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm]
    +    os: [linux]
    +
    +  '@tailwindcss/oxide-linux-arm64-gnu@4.0.15':
    +    resolution: {integrity: sha512-2NemGQeaTbtIp1Z2wyerbVEJZTkAWhMDOhhR5z/zJ75yMNf8yLnE+sAlyf6yGDNr+1RqvWrRhhCFt7i0CIxe4Q==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [linux]
    +    libc: [glibc]
    +
    +  '@tailwindcss/oxide-linux-arm64-musl@4.0.15':
    +    resolution: {integrity: sha512-342GVnhH/6PkVgKtEzvNVuQ4D+Q7B7qplvuH20Cfz9qEtydG6IQczTZ5IT4JPlh931MG1NUCVxg+CIorr1WJyw==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [linux]
    +    libc: [musl]
    +
    +  '@tailwindcss/oxide-linux-x64-gnu@4.0.15':
    +    resolution: {integrity: sha512-g76GxlKH124RuGqacCEFc2nbzRl7bBrlC8qDQMiUABkiifDRHOIUjgKbLNG4RuR9hQAD/MKsqZ7A8L08zsoBrw==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [linux]
    +    libc: [glibc]
    +
    +  '@tailwindcss/oxide-linux-x64-musl@4.0.15':
    +    resolution: {integrity: sha512-Gg/Y1XrKEvKpq6WeNt2h8rMIKOBj/W3mNa5NMvkQgMC7iO0+UNLrYmt6zgZufht66HozNpn+tJMbbkZ5a3LczA==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [linux]
    +    libc: [musl]
    +
    +  '@tailwindcss/oxide-win32-arm64-msvc@4.0.15':
    +    resolution: {integrity: sha512-7QtSSJwYZ7ZK1phVgcNZpuf7c7gaCj8Wb0xjliligT5qCGCp79OV2n3SJummVZdw4fbTNKUOYMO7m1GinppZyA==}
    +    engines: {node: '>= 10'}
    +    cpu: [arm64]
    +    os: [win32]
    +
    +  '@tailwindcss/oxide-win32-x64-msvc@4.0.15':
    +    resolution: {integrity: sha512-JQ5H+5MLhOjpgNp6KomouE0ZuKmk3hO5h7/ClMNAQ8gZI2zkli3IH8ZqLbd2DVfXDbdxN2xvooIEeIlkIoSCqw==}
    +    engines: {node: '>= 10'}
    +    cpu: [x64]
    +    os: [win32]
    +
    +  '@tailwindcss/oxide@4.0.15':
    +    resolution: {integrity: sha512-e0uHrKfPu7JJGMfjwVNyt5M0u+OP8kUmhACwIRlM+JNBuReDVQ63yAD1NWe5DwJtdaHjugNBil76j+ks3zlk6g==}
    +    engines: {node: '>= 10'}
     
       braces@3.0.3:
         resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
         engines: {node: '>=8'}
     
    -  camelcase-css@2.0.1:
    -    resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
    -    engines: {node: '>= 6'}
    -
    -  chokidar@3.6.0:
    -    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
    -    engines: {node: '>= 8.10.0'}
    -
    -  color-convert@2.0.1:
    -    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
    -    engines: {node: '>=7.0.0'}
    -
    -  color-name@1.1.4:
    -    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
    -
    -  commander@4.1.1:
    -    resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
    -    engines: {node: '>= 6'}
    -
    -  cross-spawn@7.0.6:
    -    resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
    -    engines: {node: '>= 8'}
    -
    -  cssesc@3.0.0:
    -    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
    -    engines: {node: '>=4'}
    +  detect-libc@1.0.3:
    +    resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
    +    engines: {node: '>=0.10'}
         hasBin: true
     
    -  didyoumean@1.2.2:
    -    resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
    +  detect-libc@2.0.3:
    +    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
    +    engines: {node: '>=8'}
     
    -  dlv@1.1.3:
    -    resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
    -
    -  eastasianwidth@0.2.0:
    -    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
    -
    -  emoji-regex@8.0.0:
    -    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
    -
    -  emoji-regex@9.2.2:
    -    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
    -
    -  fast-glob@3.3.2:
    -    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
    -    engines: {node: '>=8.6.0'}
    -
    -  fastq@1.17.1:
    -    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
    +  enhanced-resolve@5.18.1:
    +    resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
    +    engines: {node: '>=10.13.0'}
     
       fill-range@7.1.1:
         resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
         engines: {node: '>=8'}
     
    -  foreground-child@3.3.0:
    -    resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
    -    engines: {node: '>=14'}
    -
    -  fsevents@2.3.3:
    -    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
    -    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
    -    os: [darwin]
    -
    -  function-bind@1.1.2:
    -    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
    -
    -  glob-parent@5.1.2:
    -    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
    -    engines: {node: '>= 6'}
    -
    -  glob-parent@6.0.2:
    -    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
    -    engines: {node: '>=10.13.0'}
    -
    -  glob@10.4.5:
    -    resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
    -    hasBin: true
    -
    -  hasown@2.0.2:
    -    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
    -    engines: {node: '>= 0.4'}
    -
    -  is-binary-path@2.1.0:
    -    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
    -    engines: {node: '>=8'}
    -
    -  is-core-module@2.16.0:
    -    resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==}
    -    engines: {node: '>= 0.4'}
    +  graceful-fs@4.2.11:
    +    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
     
       is-extglob@2.1.1:
         resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
         engines: {node: '>=0.10.0'}
     
    -  is-fullwidth-code-point@3.0.0:
    -    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
    -    engines: {node: '>=8'}
    -
       is-glob@4.0.3:
         resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
         engines: {node: '>=0.10.0'}
    @@ -202,75 +222,88 @@ packages:
         resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
         engines: {node: '>=0.12.0'}
     
    -  isexe@2.0.0:
    -    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
    -
    -  jackspeak@3.4.3:
    -    resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
    -
    -  jiti@1.21.6:
    -    resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
    +  jiti@2.4.2:
    +    resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
         hasBin: true
     
    -  lilconfig@3.1.3:
    -    resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
    -    engines: {node: '>=14'}
    +  lightningcss-darwin-arm64@1.29.2:
    +    resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==}
    +    engines: {node: '>= 12.0.0'}
    +    cpu: [arm64]
    +    os: [darwin]
     
    -  lines-and-columns@1.2.4:
    -    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
    +  lightningcss-darwin-x64@1.29.2:
    +    resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==}
    +    engines: {node: '>= 12.0.0'}
    +    cpu: [x64]
    +    os: [darwin]
     
    -  lru-cache@10.4.3:
    -    resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
    +  lightningcss-freebsd-x64@1.29.2:
    +    resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==}
    +    engines: {node: '>= 12.0.0'}
    +    cpu: [x64]
    +    os: [freebsd]
     
    -  merge2@1.4.1:
    -    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
    -    engines: {node: '>= 8'}
    +  lightningcss-linux-arm-gnueabihf@1.29.2:
    +    resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==}
    +    engines: {node: '>= 12.0.0'}
    +    cpu: [arm]
    +    os: [linux]
    +
    +  lightningcss-linux-arm64-gnu@1.29.2:
    +    resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==}
    +    engines: {node: '>= 12.0.0'}
    +    cpu: [arm64]
    +    os: [linux]
    +    libc: [glibc]
    +
    +  lightningcss-linux-arm64-musl@1.29.2:
    +    resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==}
    +    engines: {node: '>= 12.0.0'}
    +    cpu: [arm64]
    +    os: [linux]
    +    libc: [musl]
    +
    +  lightningcss-linux-x64-gnu@1.29.2:
    +    resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==}
    +    engines: {node: '>= 12.0.0'}
    +    cpu: [x64]
    +    os: [linux]
    +    libc: [glibc]
    +
    +  lightningcss-linux-x64-musl@1.29.2:
    +    resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==}
    +    engines: {node: '>= 12.0.0'}
    +    cpu: [x64]
    +    os: [linux]
    +    libc: [musl]
    +
    +  lightningcss-win32-arm64-msvc@1.29.2:
    +    resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==}
    +    engines: {node: '>= 12.0.0'}
    +    cpu: [arm64]
    +    os: [win32]
    +
    +  lightningcss-win32-x64-msvc@1.29.2:
    +    resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==}
    +    engines: {node: '>= 12.0.0'}
    +    cpu: [x64]
    +    os: [win32]
    +
    +  lightningcss@1.29.2:
    +    resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==}
    +    engines: {node: '>= 12.0.0'}
     
       micromatch@4.0.8:
         resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
         engines: {node: '>=8.6'}
     
    -  minimatch@9.0.5:
    -    resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    +  mri@1.2.0:
    +    resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
    +    engines: {node: '>=4'}
     
    -  minipass@7.1.2:
    -    resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -
    -  mz@2.7.0:
    -    resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
    -
    -  nanoid@3.3.8:
    -    resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
    -    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
    -    hasBin: true
    -
    -  normalize-path@3.0.0:
    -    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  object-assign@4.1.1:
    -    resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
    -    engines: {node: '>=0.10.0'}
    -
    -  object-hash@3.0.0:
    -    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
    -    engines: {node: '>= 6'}
    -
    -  package-json-from-dist@1.0.1:
    -    resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
    -
    -  path-key@3.1.1:
    -    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
    -    engines: {node: '>=8'}
    -
    -  path-parse@1.0.7:
    -    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
    -
    -  path-scurry@1.11.1:
    -    resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
    -    engines: {node: '>=16 || 14 >=14.18'}
    +  node-addon-api@7.1.1:
    +    resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
     
       picocolors@1.1.1:
         resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
    @@ -279,558 +312,234 @@ packages:
         resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
         engines: {node: '>=8.6'}
     
    -  pify@2.3.0:
    -    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
    -    engines: {node: '>=0.10.0'}
    +  tailwindcss@4.0.15:
    +    resolution: {integrity: sha512-6ZMg+hHdMJpjpeCCFasX7K+U615U9D+7k5/cDK/iRwl6GptF24+I/AbKgOnXhVKePzrEyIXutLv36n4cRsq3Sg==}
     
    -  pirates@4.0.6:
    -    resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
    -    engines: {node: '>= 6'}
    -
    -  postcss-import@15.1.0:
    -    resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
    -    engines: {node: '>=14.0.0'}
    -    peerDependencies:
    -      postcss: ^8.0.0
    -
    -  postcss-js@4.0.1:
    -    resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
    -    engines: {node: ^12 || ^14 || >= 16}
    -    peerDependencies:
    -      postcss: ^8.4.21
    -
    -  postcss-load-config@4.0.2:
    -    resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
    -    engines: {node: '>= 14'}
    -    peerDependencies:
    -      postcss: '>=8.0.9'
    -      ts-node: '>=9.0.0'
    -    peerDependenciesMeta:
    -      postcss:
    -        optional: true
    -      ts-node:
    -        optional: true
    -
    -  postcss-nested@6.2.0:
    -    resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
    -    engines: {node: '>=12.0'}
    -    peerDependencies:
    -      postcss: ^8.2.14
    -
    -  postcss-selector-parser@6.1.2:
    -    resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
    -    engines: {node: '>=4'}
    -
    -  postcss-value-parser@4.2.0:
    -    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
    -
    -  postcss@8.4.49:
    -    resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
    -    engines: {node: ^10 || ^12 || >=14}
    -
    -  queue-microtask@1.2.3:
    -    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
    -
    -  read-cache@1.0.0:
    -    resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
    -
    -  readdirp@3.6.0:
    -    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
    -    engines: {node: '>=8.10.0'}
    -
    -  resolve@1.22.9:
    -    resolution: {integrity: sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==}
    -    hasBin: true
    -
    -  reusify@1.0.4:
    -    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
    -    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
    -
    -  run-parallel@1.2.0:
    -    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
    -
    -  shebang-command@2.0.0:
    -    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
    -    engines: {node: '>=8'}
    -
    -  shebang-regex@3.0.0:
    -    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
    -    engines: {node: '>=8'}
    -
    -  signal-exit@4.1.0:
    -    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
    -    engines: {node: '>=14'}
    -
    -  source-map-js@1.2.1:
    -    resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
    -    engines: {node: '>=0.10.0'}
    -
    -  string-width@4.2.3:
    -    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
    -    engines: {node: '>=8'}
    -
    -  string-width@5.1.2:
    -    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
    -    engines: {node: '>=12'}
    -
    -  strip-ansi@6.0.1:
    -    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
    -    engines: {node: '>=8'}
    -
    -  strip-ansi@7.1.0:
    -    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
    -    engines: {node: '>=12'}
    -
    -  sucrase@3.35.0:
    -    resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
    -    engines: {node: '>=16 || 14 >=14.17'}
    -    hasBin: true
    -
    -  supports-preserve-symlinks-flag@1.0.0:
    -    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
    -    engines: {node: '>= 0.4'}
    -
    -  tailwindcss@3.4.16:
    -    resolution: {integrity: sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==}
    -    engines: {node: '>=14.0.0'}
    -    hasBin: true
    -
    -  thenify-all@1.6.0:
    -    resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
    -    engines: {node: '>=0.8'}
    -
    -  thenify@3.3.1:
    -    resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
    +  tapable@2.2.1:
    +    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
    +    engines: {node: '>=6'}
     
       to-regex-range@5.0.1:
         resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
         engines: {node: '>=8.0'}
     
    -  ts-interface-checker@0.1.13:
    -    resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
    -
    -  util-deprecate@1.0.2:
    -    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
    -
    -  which@2.0.2:
    -    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
    -    engines: {node: '>= 8'}
    -    hasBin: true
    -
    -  wrap-ansi@7.0.0:
    -    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
    -    engines: {node: '>=10'}
    -
    -  wrap-ansi@8.1.0:
    -    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
    -    engines: {node: '>=12'}
    -
    -  yaml@2.6.1:
    -    resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==}
    -    engines: {node: '>= 14'}
    -    hasBin: true
    -
     snapshots:
     
    -  '@alloc/quick-lru@5.2.0': {}
    -
    -  '@isaacs/cliui@8.0.2':
    -    dependencies:
    -      string-width: 5.1.2
    -      string-width-cjs: string-width@4.2.3
    -      strip-ansi: 7.1.0
    -      strip-ansi-cjs: strip-ansi@6.0.1
    -      wrap-ansi: 8.1.0
    -      wrap-ansi-cjs: wrap-ansi@7.0.0
    -
    -  '@jridgewell/gen-mapping@0.3.8':
    -    dependencies:
    -      '@jridgewell/set-array': 1.2.1
    -      '@jridgewell/sourcemap-codec': 1.5.0
    -      '@jridgewell/trace-mapping': 0.3.25
    -
    -  '@jridgewell/resolve-uri@3.1.2': {}
    -
    -  '@jridgewell/set-array@1.2.1': {}
    -
    -  '@jridgewell/sourcemap-codec@1.5.0': {}
    -
    -  '@jridgewell/trace-mapping@0.3.25':
    -    dependencies:
    -      '@jridgewell/resolve-uri': 3.1.2
    -      '@jridgewell/sourcemap-codec': 1.5.0
    -
    -  '@nodelib/fs.scandir@2.1.5':
    -    dependencies:
    -      '@nodelib/fs.stat': 2.0.5
    -      run-parallel: 1.2.0
    -
    -  '@nodelib/fs.stat@2.0.5': {}
    -
    -  '@nodelib/fs.walk@1.2.8':
    -    dependencies:
    -      '@nodelib/fs.scandir': 2.1.5
    -      fastq: 1.17.1
    -
    -  '@pkgjs/parseargs@0.11.0':
    +  '@parcel/watcher-android-arm64@2.5.1':
         optional: true
     
    -  ansi-regex@5.0.1: {}
    +  '@parcel/watcher-darwin-arm64@2.5.1':
    +    optional: true
     
    -  ansi-regex@6.1.0: {}
    +  '@parcel/watcher-darwin-x64@2.5.1':
    +    optional: true
     
    -  ansi-styles@4.3.0:
    +  '@parcel/watcher-freebsd-x64@2.5.1':
    +    optional: true
    +
    +  '@parcel/watcher-linux-arm-glibc@2.5.1':
    +    optional: true
    +
    +  '@parcel/watcher-linux-arm-musl@2.5.1':
    +    optional: true
    +
    +  '@parcel/watcher-linux-arm64-glibc@2.5.1':
    +    optional: true
    +
    +  '@parcel/watcher-linux-arm64-musl@2.5.1':
    +    optional: true
    +
    +  '@parcel/watcher-linux-x64-glibc@2.5.1':
    +    optional: true
    +
    +  '@parcel/watcher-linux-x64-musl@2.5.1':
    +    optional: true
    +
    +  '@parcel/watcher-win32-arm64@2.5.1':
    +    optional: true
    +
    +  '@parcel/watcher-win32-ia32@2.5.1':
    +    optional: true
    +
    +  '@parcel/watcher-win32-x64@2.5.1':
    +    optional: true
    +
    +  '@parcel/watcher@2.5.1':
         dependencies:
    -      color-convert: 2.0.1
    +      detect-libc: 1.0.3
    +      is-glob: 4.0.3
    +      micromatch: 4.0.8
    +      node-addon-api: 7.1.1
    +    optionalDependencies:
    +      '@parcel/watcher-android-arm64': 2.5.1
    +      '@parcel/watcher-darwin-arm64': 2.5.1
    +      '@parcel/watcher-darwin-x64': 2.5.1
    +      '@parcel/watcher-freebsd-x64': 2.5.1
    +      '@parcel/watcher-linux-arm-glibc': 2.5.1
    +      '@parcel/watcher-linux-arm-musl': 2.5.1
    +      '@parcel/watcher-linux-arm64-glibc': 2.5.1
    +      '@parcel/watcher-linux-arm64-musl': 2.5.1
    +      '@parcel/watcher-linux-x64-glibc': 2.5.1
    +      '@parcel/watcher-linux-x64-musl': 2.5.1
    +      '@parcel/watcher-win32-arm64': 2.5.1
    +      '@parcel/watcher-win32-ia32': 2.5.1
    +      '@parcel/watcher-win32-x64': 2.5.1
     
    -  ansi-styles@6.2.1: {}
    -
    -  any-promise@1.3.0: {}
    -
    -  anymatch@3.1.3:
    +  '@tailwindcss/cli@4.0.15':
         dependencies:
    -      normalize-path: 3.0.0
    -      picomatch: 2.3.1
    +      '@parcel/watcher': 2.5.1
    +      '@tailwindcss/node': 4.0.15
    +      '@tailwindcss/oxide': 4.0.15
    +      enhanced-resolve: 5.18.1
    +      lightningcss: 1.29.2
    +      mri: 1.2.0
    +      picocolors: 1.1.1
    +      tailwindcss: 4.0.15
     
    -  arg@5.0.2: {}
    -
    -  balanced-match@1.0.2: {}
    -
    -  binary-extensions@2.3.0: {}
    -
    -  brace-expansion@2.0.1:
    +  '@tailwindcss/node@4.0.15':
         dependencies:
    -      balanced-match: 1.0.2
    +      enhanced-resolve: 5.18.1
    +      jiti: 2.4.2
    +      tailwindcss: 4.0.15
    +
    +  '@tailwindcss/oxide-android-arm64@4.0.15':
    +    optional: true
    +
    +  '@tailwindcss/oxide-darwin-arm64@4.0.15':
    +    optional: true
    +
    +  '@tailwindcss/oxide-darwin-x64@4.0.15':
    +    optional: true
    +
    +  '@tailwindcss/oxide-freebsd-x64@4.0.15':
    +    optional: true
    +
    +  '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.15':
    +    optional: true
    +
    +  '@tailwindcss/oxide-linux-arm64-gnu@4.0.15':
    +    optional: true
    +
    +  '@tailwindcss/oxide-linux-arm64-musl@4.0.15':
    +    optional: true
    +
    +  '@tailwindcss/oxide-linux-x64-gnu@4.0.15':
    +    optional: true
    +
    +  '@tailwindcss/oxide-linux-x64-musl@4.0.15':
    +    optional: true
    +
    +  '@tailwindcss/oxide-win32-arm64-msvc@4.0.15':
    +    optional: true
    +
    +  '@tailwindcss/oxide-win32-x64-msvc@4.0.15':
    +    optional: true
    +
    +  '@tailwindcss/oxide@4.0.15':
    +    optionalDependencies:
    +      '@tailwindcss/oxide-android-arm64': 4.0.15
    +      '@tailwindcss/oxide-darwin-arm64': 4.0.15
    +      '@tailwindcss/oxide-darwin-x64': 4.0.15
    +      '@tailwindcss/oxide-freebsd-x64': 4.0.15
    +      '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.15
    +      '@tailwindcss/oxide-linux-arm64-gnu': 4.0.15
    +      '@tailwindcss/oxide-linux-arm64-musl': 4.0.15
    +      '@tailwindcss/oxide-linux-x64-gnu': 4.0.15
    +      '@tailwindcss/oxide-linux-x64-musl': 4.0.15
    +      '@tailwindcss/oxide-win32-arm64-msvc': 4.0.15
    +      '@tailwindcss/oxide-win32-x64-msvc': 4.0.15
     
       braces@3.0.3:
         dependencies:
           fill-range: 7.1.1
     
    -  camelcase-css@2.0.1: {}
    +  detect-libc@1.0.3: {}
     
    -  chokidar@3.6.0:
    +  detect-libc@2.0.3: {}
    +
    +  enhanced-resolve@5.18.1:
         dependencies:
    -      anymatch: 3.1.3
    -      braces: 3.0.3
    -      glob-parent: 5.1.2
    -      is-binary-path: 2.1.0
    -      is-glob: 4.0.3
    -      normalize-path: 3.0.0
    -      readdirp: 3.6.0
    -    optionalDependencies:
    -      fsevents: 2.3.3
    -
    -  color-convert@2.0.1:
    -    dependencies:
    -      color-name: 1.1.4
    -
    -  color-name@1.1.4: {}
    -
    -  commander@4.1.1: {}
    -
    -  cross-spawn@7.0.6:
    -    dependencies:
    -      path-key: 3.1.1
    -      shebang-command: 2.0.0
    -      which: 2.0.2
    -
    -  cssesc@3.0.0: {}
    -
    -  didyoumean@1.2.2: {}
    -
    -  dlv@1.1.3: {}
    -
    -  eastasianwidth@0.2.0: {}
    -
    -  emoji-regex@8.0.0: {}
    -
    -  emoji-regex@9.2.2: {}
    -
    -  fast-glob@3.3.2:
    -    dependencies:
    -      '@nodelib/fs.stat': 2.0.5
    -      '@nodelib/fs.walk': 1.2.8
    -      glob-parent: 5.1.2
    -      merge2: 1.4.1
    -      micromatch: 4.0.8
    -
    -  fastq@1.17.1:
    -    dependencies:
    -      reusify: 1.0.4
    +      graceful-fs: 4.2.11
    +      tapable: 2.2.1
     
       fill-range@7.1.1:
         dependencies:
           to-regex-range: 5.0.1
     
    -  foreground-child@3.3.0:
    -    dependencies:
    -      cross-spawn: 7.0.6
    -      signal-exit: 4.1.0
    -
    -  fsevents@2.3.3:
    -    optional: true
    -
    -  function-bind@1.1.2: {}
    -
    -  glob-parent@5.1.2:
    -    dependencies:
    -      is-glob: 4.0.3
    -
    -  glob-parent@6.0.2:
    -    dependencies:
    -      is-glob: 4.0.3
    -
    -  glob@10.4.5:
    -    dependencies:
    -      foreground-child: 3.3.0
    -      jackspeak: 3.4.3
    -      minimatch: 9.0.5
    -      minipass: 7.1.2
    -      package-json-from-dist: 1.0.1
    -      path-scurry: 1.11.1
    -
    -  hasown@2.0.2:
    -    dependencies:
    -      function-bind: 1.1.2
    -
    -  is-binary-path@2.1.0:
    -    dependencies:
    -      binary-extensions: 2.3.0
    -
    -  is-core-module@2.16.0:
    -    dependencies:
    -      hasown: 2.0.2
    +  graceful-fs@4.2.11: {}
     
       is-extglob@2.1.1: {}
     
    -  is-fullwidth-code-point@3.0.0: {}
    -
       is-glob@4.0.3:
         dependencies:
           is-extglob: 2.1.1
     
       is-number@7.0.0: {}
     
    -  isexe@2.0.0: {}
    +  jiti@2.4.2: {}
     
    -  jackspeak@3.4.3:
    +  lightningcss-darwin-arm64@1.29.2:
    +    optional: true
    +
    +  lightningcss-darwin-x64@1.29.2:
    +    optional: true
    +
    +  lightningcss-freebsd-x64@1.29.2:
    +    optional: true
    +
    +  lightningcss-linux-arm-gnueabihf@1.29.2:
    +    optional: true
    +
    +  lightningcss-linux-arm64-gnu@1.29.2:
    +    optional: true
    +
    +  lightningcss-linux-arm64-musl@1.29.2:
    +    optional: true
    +
    +  lightningcss-linux-x64-gnu@1.29.2:
    +    optional: true
    +
    +  lightningcss-linux-x64-musl@1.29.2:
    +    optional: true
    +
    +  lightningcss-win32-arm64-msvc@1.29.2:
    +    optional: true
    +
    +  lightningcss-win32-x64-msvc@1.29.2:
    +    optional: true
    +
    +  lightningcss@1.29.2:
         dependencies:
    -      '@isaacs/cliui': 8.0.2
    +      detect-libc: 2.0.3
         optionalDependencies:
    -      '@pkgjs/parseargs': 0.11.0
    -
    -  jiti@1.21.6: {}
    -
    -  lilconfig@3.1.3: {}
    -
    -  lines-and-columns@1.2.4: {}
    -
    -  lru-cache@10.4.3: {}
    -
    -  merge2@1.4.1: {}
    +      lightningcss-darwin-arm64: 1.29.2
    +      lightningcss-darwin-x64: 1.29.2
    +      lightningcss-freebsd-x64: 1.29.2
    +      lightningcss-linux-arm-gnueabihf: 1.29.2
    +      lightningcss-linux-arm64-gnu: 1.29.2
    +      lightningcss-linux-arm64-musl: 1.29.2
    +      lightningcss-linux-x64-gnu: 1.29.2
    +      lightningcss-linux-x64-musl: 1.29.2
    +      lightningcss-win32-arm64-msvc: 1.29.2
    +      lightningcss-win32-x64-msvc: 1.29.2
     
       micromatch@4.0.8:
         dependencies:
           braces: 3.0.3
           picomatch: 2.3.1
     
    -  minimatch@9.0.5:
    -    dependencies:
    -      brace-expansion: 2.0.1
    +  mri@1.2.0: {}
     
    -  minipass@7.1.2: {}
    -
    -  mz@2.7.0:
    -    dependencies:
    -      any-promise: 1.3.0
    -      object-assign: 4.1.1
    -      thenify-all: 1.6.0
    -
    -  nanoid@3.3.8: {}
    -
    -  normalize-path@3.0.0: {}
    -
    -  object-assign@4.1.1: {}
    -
    -  object-hash@3.0.0: {}
    -
    -  package-json-from-dist@1.0.1: {}
    -
    -  path-key@3.1.1: {}
    -
    -  path-parse@1.0.7: {}
    -
    -  path-scurry@1.11.1:
    -    dependencies:
    -      lru-cache: 10.4.3
    -      minipass: 7.1.2
    +  node-addon-api@7.1.1: {}
     
       picocolors@1.1.1: {}
     
       picomatch@2.3.1: {}
     
    -  pify@2.3.0: {}
    +  tailwindcss@4.0.15: {}
     
    -  pirates@4.0.6: {}
    -
    -  postcss-import@15.1.0(postcss@8.4.49):
    -    dependencies:
    -      postcss: 8.4.49
    -      postcss-value-parser: 4.2.0
    -      read-cache: 1.0.0
    -      resolve: 1.22.9
    -
    -  postcss-js@4.0.1(postcss@8.4.49):
    -    dependencies:
    -      camelcase-css: 2.0.1
    -      postcss: 8.4.49
    -
    -  postcss-load-config@4.0.2(postcss@8.4.49):
    -    dependencies:
    -      lilconfig: 3.1.3
    -      yaml: 2.6.1
    -    optionalDependencies:
    -      postcss: 8.4.49
    -
    -  postcss-nested@6.2.0(postcss@8.4.49):
    -    dependencies:
    -      postcss: 8.4.49
    -      postcss-selector-parser: 6.1.2
    -
    -  postcss-selector-parser@6.1.2:
    -    dependencies:
    -      cssesc: 3.0.0
    -      util-deprecate: 1.0.2
    -
    -  postcss-value-parser@4.2.0: {}
    -
    -  postcss@8.4.49:
    -    dependencies:
    -      nanoid: 3.3.8
    -      picocolors: 1.1.1
    -      source-map-js: 1.2.1
    -
    -  queue-microtask@1.2.3: {}
    -
    -  read-cache@1.0.0:
    -    dependencies:
    -      pify: 2.3.0
    -
    -  readdirp@3.6.0:
    -    dependencies:
    -      picomatch: 2.3.1
    -
    -  resolve@1.22.9:
    -    dependencies:
    -      is-core-module: 2.16.0
    -      path-parse: 1.0.7
    -      supports-preserve-symlinks-flag: 1.0.0
    -
    -  reusify@1.0.4: {}
    -
    -  run-parallel@1.2.0:
    -    dependencies:
    -      queue-microtask: 1.2.3
    -
    -  shebang-command@2.0.0:
    -    dependencies:
    -      shebang-regex: 3.0.0
    -
    -  shebang-regex@3.0.0: {}
    -
    -  signal-exit@4.1.0: {}
    -
    -  source-map-js@1.2.1: {}
    -
    -  string-width@4.2.3:
    -    dependencies:
    -      emoji-regex: 8.0.0
    -      is-fullwidth-code-point: 3.0.0
    -      strip-ansi: 6.0.1
    -
    -  string-width@5.1.2:
    -    dependencies:
    -      eastasianwidth: 0.2.0
    -      emoji-regex: 9.2.2
    -      strip-ansi: 7.1.0
    -
    -  strip-ansi@6.0.1:
    -    dependencies:
    -      ansi-regex: 5.0.1
    -
    -  strip-ansi@7.1.0:
    -    dependencies:
    -      ansi-regex: 6.1.0
    -
    -  sucrase@3.35.0:
    -    dependencies:
    -      '@jridgewell/gen-mapping': 0.3.8
    -      commander: 4.1.1
    -      glob: 10.4.5
    -      lines-and-columns: 1.2.4
    -      mz: 2.7.0
    -      pirates: 4.0.6
    -      ts-interface-checker: 0.1.13
    -
    -  supports-preserve-symlinks-flag@1.0.0: {}
    -
    -  tailwindcss@3.4.16:
    -    dependencies:
    -      '@alloc/quick-lru': 5.2.0
    -      arg: 5.0.2
    -      chokidar: 3.6.0
    -      didyoumean: 1.2.2
    -      dlv: 1.1.3
    -      fast-glob: 3.3.2
    -      glob-parent: 6.0.2
    -      is-glob: 4.0.3
    -      jiti: 1.21.6
    -      lilconfig: 3.1.3
    -      micromatch: 4.0.8
    -      normalize-path: 3.0.0
    -      object-hash: 3.0.0
    -      picocolors: 1.1.1
    -      postcss: 8.4.49
    -      postcss-import: 15.1.0(postcss@8.4.49)
    -      postcss-js: 4.0.1(postcss@8.4.49)
    -      postcss-load-config: 4.0.2(postcss@8.4.49)
    -      postcss-nested: 6.2.0(postcss@8.4.49)
    -      postcss-selector-parser: 6.1.2
    -      resolve: 1.22.9
    -      sucrase: 3.35.0
    -    transitivePeerDependencies:
    -      - ts-node
    -
    -  thenify-all@1.6.0:
    -    dependencies:
    -      thenify: 3.3.1
    -
    -  thenify@3.3.1:
    -    dependencies:
    -      any-promise: 1.3.0
    +  tapable@2.2.1: {}
     
       to-regex-range@5.0.1:
         dependencies:
           is-number: 7.0.0
    -
    -  ts-interface-checker@0.1.13: {}
    -
    -  util-deprecate@1.0.2: {}
    -
    -  which@2.0.2:
    -    dependencies:
    -      isexe: 2.0.0
    -
    -  wrap-ansi@7.0.0:
    -    dependencies:
    -      ansi-styles: 4.3.0
    -      string-width: 4.2.3
    -      strip-ansi: 6.0.1
    -
    -  wrap-ansi@8.1.0:
    -    dependencies:
    -      ansi-styles: 6.2.1
    -      string-width: 5.1.2
    -      strip-ansi: 7.1.0
    -
    -  yaml@2.6.1: {}
    diff --git a/YaeBlog/tailwind.config.js b/YaeBlog/tailwind.config.js
    deleted file mode 100644
    index 36dd647..0000000
    --- a/YaeBlog/tailwind.config.js
    +++ /dev/null
    @@ -1,9 +0,0 @@
    -/** @type {import('tailwindcss').Config} */
    -module.exports = {
    -  content: ["**/*.razor", "**/*.cshtml", "**/*.html", "Processors/EssayStylesPostRenderProcessor.cs"],
    -  theme: {
    -    extend: {},
    -  },
    -  plugins: [],
    -}
    -
    diff --git a/YaeBlog/wwwroot/fonts/bootstrap-icons.woff b/YaeBlog/wwwroot/fonts/bootstrap-icons.woff
    deleted file mode 100644
    index 51204d2..0000000
    Binary files a/YaeBlog/wwwroot/fonts/bootstrap-icons.woff and /dev/null differ
    diff --git a/YaeBlog/wwwroot/fonts/bootstrap-icons.woff2 b/YaeBlog/wwwroot/fonts/bootstrap-icons.woff2
    deleted file mode 100644
    index cf957a1..0000000
    --- a/YaeBlog/wwwroot/fonts/bootstrap-icons.woff2
    +++ /dev/null
    @@ -1,3 +0,0 @@
    -version https://git-lfs.github.com/spec/v1
    -oid sha256:476adf42b40325098fcfa8b36ab3e769186bb4f6ce6a249753e2e1a9c22bf99e
    -size 130396
    diff --git a/YaeBlog/wwwroot/input.css b/YaeBlog/wwwroot/input.css
    deleted file mode 100644
    index b5c61c9..0000000
    --- a/YaeBlog/wwwroot/input.css
    +++ /dev/null
    @@ -1,3 +0,0 @@
    -@tailwind base;
    -@tailwind components;
    -@tailwind utilities;
    diff --git a/YaeBlog/wwwroot/tailwind.css b/YaeBlog/wwwroot/tailwind.css
    new file mode 100644
    index 0000000..f1d8c73
    --- /dev/null
    +++ b/YaeBlog/wwwroot/tailwind.css
    @@ -0,0 +1 @@
    +@import "tailwindcss";