From c545161878c456d2f3505c985cea1d26e345fc05 Mon Sep 17 00:00:00 2001 From: Tristan Druyen Date: Thu, 20 Feb 2025 02:12:49 +0100 Subject: [PATCH] Add DARM stack test --- .npmrc | 2 + Cargo.lock | 229 +- Cargo.toml | 4 +- Makefile.toml | 2 + darm_test/Cargo.toml | 22 + darm_test/TODO.org | 30 + darm_test/public/datastar.min.js | 1 + darm_test/public/js/datastar-1-0-0-beta-7.js | 13 + .../public/js/datastar-1-0-0-beta-7.js.map | 7 + .../public/js/datastar-1-0-0-beta-7.json | 1 + darm_test/public/js/datastar.min.js | 1 + darm_test/public/styles.min.css | 1 + darm_test/public/test.html | 1 + darm_test/src/main.rs | 132 ++ darm_test/src/ui/index.html | 24 + darm_test/src/ui/mod.rs | 0 darm_test/src/ui/pages/chat/mod.rs | 0 darm_test/src/ui/pages/mod.rs | 0 darm_test/src/ui/pages/proxy_dashboard/mod.rs | 0 darm_test/style/main.scss | 1 + darm_test/style/uno.css | 15 + darm_test/uno.config.ts | 31 + package-lock.json | 1835 ++++++++++++++++- package.json | 15 +- rustfmt.toml | 23 + 25 files changed, 2354 insertions(+), 36 deletions(-) create mode 100644 .npmrc create mode 100644 darm_test/Cargo.toml create mode 100644 darm_test/TODO.org create mode 120000 darm_test/public/datastar.min.js create mode 100644 darm_test/public/js/datastar-1-0-0-beta-7.js create mode 100644 darm_test/public/js/datastar-1-0-0-beta-7.js.map create mode 100644 darm_test/public/js/datastar-1-0-0-beta-7.json create mode 120000 darm_test/public/js/datastar.min.js create mode 100644 darm_test/public/styles.min.css create mode 100644 darm_test/public/test.html create mode 100644 darm_test/src/main.rs create mode 100644 darm_test/src/ui/index.html create mode 100644 darm_test/src/ui/mod.rs create mode 100644 darm_test/src/ui/pages/chat/mod.rs create mode 100644 darm_test/src/ui/pages/mod.rs create mode 100644 darm_test/src/ui/pages/proxy_dashboard/mod.rs create mode 100644 darm_test/style/main.scss create mode 100644 darm_test/style/uno.css create mode 100644 darm_test/uno.config.ts create mode 100644 rustfmt.toml diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..09b35cd --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +audit=false +fund=false diff --git a/Cargo.lock b/Cargo.lock index 75ab1af..2a6785e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -33,6 +33,12 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + [[package]] name = "ahash" version = "0.7.8" @@ -296,8 +302,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", - "axum-core", - "axum-macros", + "axum-core 0.4.5", + "axum-macros 0.4.2", "bytes", "futures-util", "http 1.2.0", @@ -306,7 +312,7 @@ dependencies = [ "hyper", "hyper-util", "itoa 1.0.14", - "matchit", + "matchit 0.7.3", "memchr", "mime", "multer", @@ -325,6 +331,40 @@ dependencies = [ "tracing", ] +[[package]] +name = "axum" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d6fd624c75e18b3b4c6b9caf42b1afe24437daaee904069137d8bab077be8b8" +dependencies = [ + "axum-core 0.5.0", + "bytes", + "form_urlencoded", + "futures-util", + "http 1.2.0", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa 1.0.14", + "matchit 0.8.4", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower 0.5.2", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "axum-core" version = "0.4.5" @@ -346,6 +386,26 @@ dependencies = [ "tracing", ] +[[package]] +name = "axum-core" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1362f362fd16024ae199c1970ce98f9661bf5ef94b9808fee734bc3698b733" +dependencies = [ + "bytes", + "futures-util", + "http 1.2.0", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "axum-macros" version = "0.4.2" @@ -357,6 +417,37 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "axum-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604fde5e028fea851ce1d8570bbdc034bec850d157f7569d10f347d06808c05c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + +[[package]] +name = "axum-typed-routing" +version = "0.2.0" +source = "git+https://github.com/jvdwrf/axum-typed-routing#160684a406d616974d851bbfc6d0d9ffa65367e5" +dependencies = [ + "axum 0.8.1", + "axum-macros 0.5.0", + "axum-typed-routing-macros", +] + +[[package]] +name = "axum-typed-routing-macros" +version = "0.2.0" +source = "git+https://github.com/jvdwrf/axum-typed-routing#160684a406d616974d851bbfc6d0d9ffa65367e5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "backtrace" version = "0.3.74" @@ -884,6 +975,15 @@ dependencies = [ "libc", ] +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -1092,6 +1192,28 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "darm_test" +version = "0.1.1" +dependencies = [ + "axum 0.8.1", + "axum-typed-routing", + "datastar", + "maud", + "mime_guess", + "rust-embed", + "serde", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "dary_heap" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04d2cd9c18b9f454ed67da600630b021a8a80bf33f8c95896ab33aaf1c26b728" + [[package]] name = "dashmap" version = "5.5.3" @@ -1106,6 +1228,14 @@ dependencies = [ "serde", ] +[[package]] +name = "datastar" +version = "0.1.0" +source = "git+https://github.com/starfederation/datastar.git#3bc1f2801963ffbfed5a1a5bc98cc8e29574f623" +dependencies = [ + "futures-util", +] + [[package]] name = "der" version = "0.7.9" @@ -2497,6 +2627,29 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "include-flate" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df49c16750695486c1f34de05da5b7438096156466e7f76c38fcdf285cf0113e" +dependencies = [ + "include-flate-codegen", + "lazy_static", + "libflate", +] + +[[package]] +name = "include-flate-codegen" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c5b246c6261be723b85c61ecf87804e8ea4a35cb68be0ff282ed84b95ffe7d7" +dependencies = [ + "libflate", + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -2700,7 +2853,7 @@ version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "910681b920c48a43508b2bd0261bdb67c4ef9456a0b3613f956a0d30e832e9de" dependencies = [ - "axum", + "axum 0.7.9", "cfg-if", "futures", "http-body-util", @@ -2912,6 +3065,30 @@ version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +[[package]] +name = "libflate" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45d9dfdc14ea4ef0900c1cddbc8dcd553fbaacd8a4a282cf4018ae9dd04fb21e" +dependencies = [ + "adler32", + "core2", + "crc32fast", + "dary_heap", + "libflate_lz77", +] + +[[package]] +name = "libflate_lz77" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e0d73b369f386f1c44abd9c570d5318f55ccde816ff4b562fa452e5182863d" +dependencies = [ + "core2", + "hashbrown 0.14.5", + "rle-decode-fast", +] + [[package]] name = "libloading" version = "0.5.2" @@ -2995,7 +3172,7 @@ dependencies = [ "anyhow", "async-broadcast", "async-trait", - "axum", + "axum 0.7.9", "bytes", "cfg-if", "chrono", @@ -3053,7 +3230,7 @@ name = "llama_proxy_man" version = "0.1.1" dependencies = [ "anyhow", - "axum", + "axum 0.7.9", "derive_more 2.0.1", "figment", "futures", @@ -3173,6 +3350,36 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + +[[package]] +name = "maud" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8156733e27020ea5c684db5beac5d1d611e1272ab17901a49466294b84fc217e" +dependencies = [ + "axum-core 0.5.0", + "http 1.2.0", + "itoa 1.0.14", + "maud_macros", +] + +[[package]] +name = "maud_macros" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7261b00f3952f617899bc012e3dbd56e4f0110a038175929fa5d18e5a19913ca" +dependencies = [ + "proc-macro2", + "proc-macro2-diagnostics", + "quote", + "syn 2.0.98", +] + [[package]] name = "md-5" version = "0.10.6" @@ -4606,6 +4813,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + [[package]] name = "rsa" version = "0.9.7" @@ -4646,6 +4859,8 @@ version = "8.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa66af4a4fdd5e7ebc276f115e895611a34739a9c1c01028383d612d550953c0" dependencies = [ + "axum 0.7.9", + "include-flate", "rust-embed-impl", "rust-embed-utils", "walkdir", @@ -5030,7 +5245,7 @@ version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fae7a3038a32e5a34ba32c6c45eb4852f8affaf8b794ebfcd4b1099e2d62ebe" dependencies = [ - "axum", + "axum 0.7.9", "bytes", "ciborium", "const_format", diff --git a/Cargo.toml b/Cargo.toml index 70baa5a..b111318 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ lto = "fat" panic = "abort" [workspace] -members = ["llama_forge_rs", "llama_proxy_man", "redvault_el_rs"] +members = ["darm_test", "llama_forge_rs", "llama_proxy_man", "redvault_el_rs"] resolver = "2" [workspace.package] @@ -29,7 +29,7 @@ description = "The redvault AI monorepo" license = "AGPL-3.0-or-later" publish = false readme = "README.md" -repository = "https://git.vlt81.de/oekonzept/oeko-mono" +repository = "https://git.vlt81.de/vault81/redvault-ai" version = "0.1.1" edition = "2021" diff --git a/Makefile.toml b/Makefile.toml index fa56588..e712544 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -75,10 +75,12 @@ dependencies = ["mksitedir", "make-docset", "cp-docset"] [tasks.make-docset] workspace = false +dependencies = ["mksitedir"] script = "cargo docset --workspace --no-clean --platform-family redvault-ai && sleep 1 && sync" [tasks.cp-docset] workspace = false +dependencies = ["make-docset"] script = "cp -r target/docset/redvault-ai.docset ~/.local/share/Zeal/Zeal/docsets/" [tasks.watch-test] diff --git a/darm_test/Cargo.toml b/darm_test/Cargo.toml new file mode 100644 index 0000000..ce4b473 --- /dev/null +++ b/darm_test/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "darm_test" +authors.workspace = true +description.workspace = true +license.workspace = true +publish.workspace = true +readme.workspace = true +repository.workspace = true +version.workspace = true +edition.workspace = true + +[dependencies] +axum = { version = "0.8", features = ["http2"] } +axum-typed-routing = { git = "https://github.com/jvdwrf/axum-typed-routing", version = "0.2.0" } +datastar = { git = "https://github.com/starfederation/datastar.git", version = "0.1.0" } +maud = { version = "0.27.0", features = ["axum"] } +mime_guess = "2.0.5" +rust-embed = { version = "8.5.0", features = ["axum", "compression"] } +serde = { version = "1.0", features = ["derive"] } +tokio = { version = "1.43", features = ["full", "tracing"] } +tracing = "0.1.41" +tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } diff --git a/darm_test/TODO.org b/darm_test/TODO.org new file mode 100644 index 0000000..2021d73 --- /dev/null +++ b/darm_test/TODO.org @@ -0,0 +1,30 @@ +* Todos +** Starter boilerplate +*** [X] Server: Axum +**** [X] Typed routes via macro +**** [X] Nested Router +**** [X] Fallbacks +*** [X] "embd tmpl": Maud +*** [ ] "html tmpl": minijinja +- only index yaml for now, test in app wether inline or external templates feel better +*** [ ] CSS Basic +- UnoCSS +- daisyUI? +*** [ ] UI framework +- data* js basic +- data* axum sdk +*** [ ] Asset bundle testing +*** [ ] DB +- SqlX/SurrealDB? +** Basic streaming chat +- build with inline html via maud +*** Stream same token in loop +*** ??? +*** Finish +** Basic Proxy Settings +- build with jinja templates +** Markdown streaming chat +*** Moar Feats +**** Tauri webview/wry? +**** Jinja tmplts for models ?? +**** Proxy integration ? diff --git a/darm_test/public/datastar.min.js b/darm_test/public/datastar.min.js new file mode 120000 index 0000000..60ad33c --- /dev/null +++ b/darm_test/public/datastar.min.js @@ -0,0 +1 @@ +css/datastar-1-0-0-beta-7.js \ No newline at end of file diff --git a/darm_test/public/js/datastar-1-0-0-beta-7.js b/darm_test/public/js/datastar-1-0-0-beta-7.js new file mode 100644 index 0000000..7d251e5 --- /dev/null +++ b/darm_test/public/js/datastar-1-0-0-beta-7.js @@ -0,0 +1,13 @@ +// Datastar v1.0.0-beta.7 +var Ue=/🖕JS_DS🚀/.source,ie=Ue.slice(0,5),Ce=Ue.slice(4),O="datastar";var Be="Datastar-Request",he=300,je=1e3,Ke="type module",ve=!1,Je=!1,ze=!0,W={Morph:"morph",Inner:"inner",Outer:"outer",Prepend:"prepend",Append:"append",Before:"before",After:"after",UpsertAttributes:"upsertAttributes"},Ye=W.Morph,k={MergeFragments:"datastar-merge-fragments",MergeSignals:"datastar-merge-signals",RemoveFragments:"datastar-remove-fragments",RemoveSignals:"datastar-remove-signals",ExecuteScript:"datastar-execute-script"};var M=(r=>(r[r.Attribute=1]="Attribute",r[r.Watcher=2]="Watcher",r[r.Action=3]="Action",r))(M||{});var oe=`${O}-signals`;var j=t=>t.trim()==="true",se=t=>t.replace(/[A-Z]+(?![a-z])|[A-Z]/g,(e,n)=>(n?"-":"")+e.toLowerCase()),B=t=>se(t).replace(/-./g,e=>e[1].toUpperCase()),Le=t=>se(t).replace(/-/g,"_"),vn=t=>B(t).replace(/^./,e=>e[0].toUpperCase()),ye=t=>new Function(`return Object.assign({}, ${t})`)(),K=t=>t.startsWith("$")?t.slice(1):t,yn={kebab:se,snake:Le,pascal:vn};function V(t,e){for(let n of e.get("case")||[]){let r=yn[n];r&&(t=r(t))}return t}var bn="computed",Xe={type:1,name:bn,keyReq:1,valReq:1,onLoad:({key:t,mods:e,signals:n,genRX:r})=>{t=V(t,e);let i=r();n.setComputed(t,i)}};var Qe={type:1,name:"signals",removeOnLoad:()=>!0,onLoad:t=>{let{key:e,mods:n,signals:r,value:i,genRX:s}=t,l=n.has("ifmissing");if(e!==""){let u=V(e,n),g=i===""?i:s()();l?r.upsertIfMissing(u,g):r.setValue(u,g)}else{let u=ye(t.value);t.value=JSON.stringify(u);let T=s()();r.merge(T,l)}}};var Ze={type:1,name:"star",keyReq:2,valReq:2,onLoad:()=>{alert("YOU ARE PROBABLY OVERCOMPLICATING IT")}};var ae=class{#e=0;#n;constructor(e=O){this.#n=e}with(e){if(typeof e=="string")for(let n of e.split(""))this.with(n.charCodeAt(0));else this.#e=(this.#e<<5)-this.#e+e;return this}get value(){return this.#n+Math.abs(this.#e).toString(36)}};function be(t){if(t.id)return t.id;let e=new ae,n=t;for(;n;){if(n.id){e.with(n.id);break}let r=n?.parentNode;r?e.with([...r.children].indexOf(n)):e.with(n.tagName),n=r}return e.value}function le(t,e){if(!t||!(t instanceof HTMLElement||t instanceof SVGElement))return null;let n=t.dataset;if("starIgnore"in n)return null;"starIgnore__self"in n||e(t);let r=t.firstElementChild;for(;r;)le(r,e),r=r.nextElementSibling}function Se(t,e){return(...n)=>{setTimeout(()=>{t(...n)},e)}}function et(t,e,n=!1,r=!0){let i=-1,s=()=>i&&clearTimeout(i);return(...l)=>{s(),n&&!i&&t(...l),i=setTimeout(()=>{r&&t(...l),s()},e)}}function tt(t,e,n=!0,r=!1){let i=!1;return(...s)=>{i||(n&&t(...s),i=!0,setTimeout(()=>{i=!1,r&&t(...s)},e))}}var Sn="https://data-star.dev/errors";function Ie(t,e,n={}){let r=new Error;r.name=`${O} ${t} error`;let i=Le(e),s=new URLSearchParams({metadata:JSON.stringify(n)}).toString(),l=JSON.stringify(n,null,2);return r.message=`${e} +More info: ${Sn}/${t}/${i}?${s} +Context: ${l}`,r}function q(t,e,n={}){return Ie("internal",e,Object.assign({from:t},n))}function H(t,e,n={}){let r={plugin:{name:e.plugin.name,type:M[e.plugin.type]}};return Ie("init",t,Object.assign(r,n))}function N(t,e,n={}){let r={plugin:{name:e.plugin.name,type:M[e.plugin.type]},element:{id:e.el.id,tag:e.el.tagName},expression:{rawKey:e.rawKey,key:e.key,value:e.value,validSignals:e.signals.paths(),fnContent:e.fnContent}};return Ie("runtime",t,Object.assign(r,n))}var X="preact-signals",Tn=Symbol.for("preact-signals"),$=1,Q=2,ce=4,ee=8,Te=16,Z=32;function Ve(){Ae++}function Oe(){if(Ae>1){Ae--;return}let t,e=!1;for(;ue!==void 0;){let n=ue;for(ue=void 0,De++;n!==void 0;){let r=n._nextBatchedEffect;if(n._nextBatchedEffect=void 0,n._flags&=~Q,!(n._flags&ee)&&rt(n))try{n._callback()}catch(i){e||(t=i,e=!0)}n=r}}if(De=0,Ae--,e)throw t}var P;var ue,Ae=0,De=0,Ee=0;function nt(t){if(P===void 0)return;let e=t._node;if(e===void 0||e._target!==P)return e={_version:0,_source:t,_prevSource:P._sources,_nextSource:void 0,_target:P,_prevTarget:void 0,_nextTarget:void 0,_rollbackNode:e},P._sources!==void 0&&(P._sources._nextSource=e),P._sources=e,t._node=e,P._flags&Z&&t._subscribe(e),e;if(e._version===-1)return e._version=0,e._nextSource!==void 0&&(e._nextSource._prevSource=e._prevSource,e._prevSource!==void 0&&(e._prevSource._nextSource=e._nextSource),e._prevSource=P._sources,e._nextSource=void 0,P._sources._nextSource=e,P._sources=e),e}function L(t){this._value=t,this._version=0,this._node=void 0,this._targets=void 0}L.prototype.brand=Tn;L.prototype._refresh=()=>!0;L.prototype._subscribe=function(t){this._targets!==t&&t._prevTarget===void 0&&(t._nextTarget=this._targets,this._targets!==void 0&&(this._targets._prevTarget=t),this._targets=t)};L.prototype._unsubscribe=function(t){if(this._targets!==void 0){let e=t._prevTarget,n=t._nextTarget;e!==void 0&&(e._nextTarget=n,t._prevTarget=void 0),n!==void 0&&(n._prevTarget=e,t._nextTarget=void 0),t===this._targets&&(this._targets=n)}};L.prototype.subscribe=function(t){return _e(()=>{let e=this.value,n=P;P=void 0;try{t(e)}finally{P=n}})};L.prototype.valueOf=function(){return this.value};L.prototype.toString=function(){return`${this.value}`};L.prototype.toJSON=function(){return this.value};L.prototype.peek=function(){let t=P;P=void 0;try{return this.value}finally{P=t}};Object.defineProperty(L.prototype,"value",{get(){let t=nt(this);return t!==void 0&&(t._version=this._version),this._value},set(t){if(t!==this._value){if(De>100)throw q(X,"SignalCycleDetected");let e=this._value,n=t;this._value=t,this._version++,Ee++,Ve();try{for(let r=this._targets;r!==void 0;r=r._nextTarget)r._target._notify()}finally{Oe()}this?._onChange({old:e,revised:n})}}});function rt(t){for(let e=t._sources;e!==void 0;e=e._nextSource)if(e._source._version!==e._version||!e._source._refresh()||e._source._version!==e._version)return!0;return!1}function it(t){for(let e=t._sources;e!==void 0;e=e._nextSource){let n=e._source._node;if(n!==void 0&&(e._rollbackNode=n),e._source._node=e,e._version=-1,e._nextSource===void 0){t._sources=e;break}}}function ot(t){let e=t._sources,n;for(;e!==void 0;){let r=e._prevSource;e._version===-1?(e._source._unsubscribe(e),r!==void 0&&(r._nextSource=e._nextSource),e._nextSource!==void 0&&(e._nextSource._prevSource=r)):n=e,e._source._node=e._rollbackNode,e._rollbackNode!==void 0&&(e._rollbackNode=void 0),e=r}t._sources=n}function z(t){L.call(this,void 0),this._fn=t,this._sources=void 0,this._globalVersion=Ee-1,this._flags=ce}z.prototype=new L;z.prototype._refresh=function(){if(this._flags&=~Q,this._flags&$)return!1;if((this._flags&(ce|Z))===Z||(this._flags&=~ce,this._globalVersion===Ee))return!0;if(this._globalVersion=Ee,this._flags|=$,this._version>0&&!rt(this))return this._flags&=~$,!0;let t=P;try{it(this),P=this;let e=this._fn();(this._flags&Te||this._value!==e||this._version===0)&&(this._value=e,this._flags&=~Te,this._version++)}catch(e){this._value=e,this._flags|=Te,this._version++}return P=t,ot(this),this._flags&=~$,!0};z.prototype._subscribe=function(t){if(this._targets===void 0){this._flags|=ce|Z;for(let e=this._sources;e!==void 0;e=e._nextSource)e._source._subscribe(e)}L.prototype._subscribe.call(this,t)};z.prototype._unsubscribe=function(t){if(this._targets!==void 0&&(L.prototype._unsubscribe.call(this,t),this._targets===void 0)){this._flags&=~Z;for(let e=this._sources;e!==void 0;e=e._nextSource)e._source._unsubscribe(e)}};z.prototype._notify=function(){if(!(this._flags&Q)){this._flags|=ce|Q;for(let t=this._targets;t!==void 0;t=t._nextTarget)t._target._notify()}};Object.defineProperty(z.prototype,"value",{get(){if(this._flags&$)throw q(X,"SignalCycleDetected");let t=nt(this);if(this._refresh(),t!==void 0&&(t._version=this._version),this._flags&Te)throw q(X,"GetComputedError",{value:this._value});return this._value}});function st(t){return new z(t)}function at(t){let e=t._cleanup;if(t._cleanup=void 0,typeof e=="function"){Ve();let n=P;P=void 0;try{e()}catch(r){throw t._flags&=~$,t._flags|=ee,ke(t),q(X,"CleanupEffectError",{error:r})}finally{P=n,Oe()}}}function ke(t){for(let e=t._sources;e!==void 0;e=e._nextSource)e._source._unsubscribe(e);t._fn=void 0,t._sources=void 0,at(t)}function An(t){if(P!==this)throw q(X,"EndEffectError");ot(this),P=t,this._flags&=~$,this._flags&ee&&ke(this),Oe()}function fe(t){this._fn=t,this._cleanup=void 0,this._sources=void 0,this._nextBatchedEffect=void 0,this._flags=Z}fe.prototype._callback=function(){let t=this._start();try{if(this._flags&ee||this._fn===void 0)return;let e=this._fn();typeof e=="function"&&(this._cleanup=e)}finally{t()}};fe.prototype._start=function(){if(this._flags&$)throw q(X,"SignalCycleDetected");this._flags|=$,this._flags&=~ee,at(this),it(this),Ve();let t=P;return P=this,An.bind(this,t)};fe.prototype._notify=function(){this._flags&Q||(this._flags|=Q,this._nextBatchedEffect=ue,ue=this)};fe.prototype._dispose=function(){this._flags|=ee,this._flags&$||ke(this)};function _e(t){let e=new fe(t);try{e._callback()}catch(n){throw e._dispose(),n}return e._dispose.bind(e)}var lt="namespacedSignals",te=t=>{document.dispatchEvent(new CustomEvent(oe,{detail:Object.assign({added:[],removed:[],updated:[]},t)}))};function ut(t,e=!1){let n={};for(let r in t)if(Object.hasOwn(t,r)){if(e&&r.startsWith("_"))continue;let i=t[r];i instanceof L?n[r]=i.value:n[r]=ut(i)}return n}function ct(t,e,n=!1){let r={added:[],removed:[],updated:[]};for(let i in e)if(Object.hasOwn(e,i)){if(i.match(/\_\_+/))throw q(lt,"InvalidSignalKey",{key:i});let s=e[i];if(s instanceof Object&&!Array.isArray(s)){t[i]||(t[i]={});let l=ct(t[i],s,n);r.added.push(...l.added.map(u=>`${i}.${u}`)),r.removed.push(...l.removed.map(u=>`${i}.${u}`)),r.updated.push(...l.updated.map(u=>`${i}.${u}`))}else{if(Object.hasOwn(t,i)){if(n)continue;let g=t[i];if(g instanceof L){let T=g.value;g.value=s,T!==s&&r.updated.push(i);continue}}let u=new L(s);u._onChange=()=>{te({updated:[i]})},t[i]=u,r.added.push(i)}}return r}function ft(t,e){for(let n in t)if(Object.hasOwn(t,n)){let r=t[n];r instanceof L?e(n,r):ft(r,(i,s)=>{e(`${n}.${i}`,s)})}}function En(t,...e){let n={};for(let r of e){let i=r.split("."),s=t,l=n;for(let g=0;gn());this.setSignal(e,r)}value(e){return this.signal(e)?.value}setValue(e,n){let r=this.upsertIfMissing(e,n),i=r.value;r.value=n,i!==n&&te({updated:[e]})}upsertIfMissing(e,n){let r=e.split("."),i=this.#e;for(let g=0;g{te({updated:[e]})},i[s]=u,te({added:[e]}),u}remove(...e){if(!e.length){this.#e={};return}let n=Array();for(let r of e){let i=r.split("."),s=this.#e;for(let u=0;ue.push(n)),e}values(e=!1){return ut(this.#e,e)}JSON(e=!0,n=!1){let r=this.values(n);return e?JSON.stringify(r,null,2):JSON.stringify(r)}toString(){return this.JSON()}};var dt=(t,e)=>`${t}${ie}${e}`,Re=class{aliasPrefix="";#e=new xe;#n=[];#r={};#a=[];#o=null;#t=new Map;get signals(){return this.#e}load(...e){let n=this;for(let r of e){let i={get signals(){return n.#e},effect:l=>_e(l),actions:this.#r,plugin:r,applyAttributePlugin:n.#i.bind(n)},s;switch(r.type){case 2:{let l=r;this.#a.push(l),s=l.onGlobalInit;break}case 3:{this.#r[r.name]=r;break}case 1:{let l=r;this.#n.push(l),s=l.onGlobalInit;break}default:throw H("InvalidPluginType",i)}s&&s(i)}this.#n.sort((r,i)=>{let s=i.name.length-r.name.length;return s!==0?s:r.name.localeCompare(i.name)}),this.#l()}#l=Se(()=>{this.#s(document.body),this.#u()},1);#s(e){le(e,n=>{let r=this.#t.get(n);if(r){for(let[,i]of r)i();this.#t.delete(n)}for(let i of Object.keys(n.dataset))this.#i(n,i)})}#u(){this.#o||(this.#o=new MutationObserver(e=>{for(let{target:n,type:r,attributeName:i,oldValue:s,addedNodes:l,removedNodes:u}of e)switch(r){case"childList":{for(let g of u){let T=g,b=this.#t.get(T);if(b){for(let[w,y]of b)y();this.#t.delete(T)}}for(let g of l){let T=g;this.#s(T)}}break;case"attributes":{{let g="data-",T=g+(this.aliasPrefix?`${this.aliasPrefix}-`:"");if(!i?.startsWith(T))break;let b=n,w=B(i.slice(g.length));if(s!==null&&b.dataset[w]!==s){let y=this.#t.get(b);if(y){let A=dt(w,s),S=y.get(A);S&&(S(),y.delete(A))}}w in b.dataset&&this.#i(b,w)}break}}}),this.#o.observe(document.body,{attributes:!0,attributeOldValue:!0,childList:!0,subtree:!0}))}#i(e,n){let r=n.slice(this.aliasPrefix.length),i=this.#n.find(p=>r.startsWith(p.name));if(!i)return;let s=this.#t.get(e);if(s)for(let[p,o]of s)p.startsWith(n)&&(o(),s.delete(p));e.id.length||(e.id=be(e));let[l,...u]=r.slice(i.name.length).split(/\_\_+/),g=l.length>0;g&&(l=B(l));let T=e.dataset[n]||"",b=T.length>0,w=this,y={get signals(){return w.#e},applyAttributePlugin:w.#i.bind(w),effect:p=>_e(p),actions:this.#r,genRX:()=>this.#c(y,...i.argNames||[]),plugin:i,el:e,rawKey:r,key:l,value:T,mods:new Map},A=i.keyReq||0;if(g){if(A===2)throw N(`${i.name}KeyNotAllowed`,y)}else if(A===1)throw N(`${i.name}KeyRequired`,y);let S=i.valReq||0;if(b){if(S===2)throw N(`${i.name}ValueNotAllowed`,y)}else if(S===1)throw N(`${i.name}ValueRequired`,y);if(A===3||S===3){if(g&&b)throw N(`${i.name}KeyAndValueProvided`,y);if(!g&&!b)throw N(`${i.name}KeyOrValueRequired`,y)}for(let p of u){let[o,...d]=p.split(".");y.mods.set(B(o),new Set(d.map(c=>c.toLowerCase())))}let E=i.onLoad(y);if(E){let p=this.#t.get(e);p||(p=new Map,this.#t.set(e,p)),p.set(dt(n,T),E)}let v=i.removeOnLoad;v&&v(r)===!0&&delete e.dataset[n]}#c(e,...n){let r="",i=/(\/(\\\/|[^\/])*\/|"(\\"|[^\"])*"|'(\\'|[^'])*'|`(\\`|[^`])*`|[^;])+/gm,s=e.value.trim().match(i);if(s){let S=s.length-1,E=s[S].trim();E.startsWith("return")||(s[S]=`return (${E});`),r=s.join(`; +`)}let l=new Map,u=new RegExp(`(?:${ie})(.*?)(?:${Ce})`,"gm");for(let S of r.matchAll(u)){let E=S[1],v=new ae("dsEscaped").with(E).value;l.set(v,E),r=r.replace(ie+E+Ce,v)}let g=/@(\w*)\(/gm,T=r.matchAll(g),b=new Set;for(let S of T)b.add(S[1]);let w=new RegExp(`@(${Object.keys(this.#r).join("|")})\\(`,"gm");r=r.replaceAll(w,"ctx.actions.$1.fn(ctx,");let y=e.signals.paths();if(y.length){let S=new RegExp(`\\$(${y.join("|")})(\\W|$)`,"gm");r=r.replaceAll(S,"ctx.signals.signal('$1').value$2")}for(let[S,E]of l)r=r.replace(S,E);let A=`return (()=> { +${r} +})()`;e.fnContent=A;try{let S=new Function("ctx",...n,A);return(...E)=>{try{return S(e,...E)}catch(v){throw N("ExecuteExpression",e,{error:v.message})}}}catch(S){throw N("GenerateExpression",e,{error:S.message})}}};var pt=new Re;pt.load(Ze,Qe,Xe);var Fe=pt;async function _n(t,e){let n=t.getReader(),r;for(;!(r=await n.read()).done;)e(r.value)}function xn(t){let e,n,r,i=!1;return function(l){e===void 0?(e=l,n=0,r=-1):e=wn(e,l);let u=e.length,g=0;for(;n0){let g=i.decode(l.subarray(0,u)),T=u+(l[u+1]===32?2:1),b=i.decode(l.subarray(T));switch(g){case"data":r.data=r.data?`${r.data} +${b}`:b;break;case"event":r.event=b;break;case"id":t(r.id=b);break;case"retry":{let w=Number.parseInt(b,10);Number.isNaN(w)||e(r.retry=w);break}}}}}function wn(t,e){let n=new Uint8Array(t.length+e.length);return n.set(t),n.set(e,t.length),n}function mt(){return{data:"",event:"",id:"",retry:void 0}}var Mn="text/event-stream",gt="last-event-id";function ht(t,e,{signal:n,headers:r,onopen:i,onmessage:s,onclose:l,onerror:u,openWhenHidden:g,fetch:T,retryInterval:b=1e3,retryScaler:w=2,retryMaxWaitMs:y=3e4,retryMaxCount:A=10,...S}){return new Promise((E,v)=>{let p=0,o={...r};o.accept||(o.accept=Mn);let d;function c(){d.abort(),document.hidden||_()}g||document.addEventListener("visibilitychange",c);let a=0;function h(){document.removeEventListener("visibilitychange",c),window.clearTimeout(a),d.abort()}n?.addEventListener("abort",()=>{h(),E()});let f=T??window.fetch,m=i??function(){};async function _(){d=new AbortController;try{let R=await f(e,{...S,headers:o,signal:d.signal});await m(R),await _n(R.body,xn(Rn(x=>{x?o[gt]=x:delete o[gt]},x=>{b=x},s))),l?.(),h(),E()}catch(R){if(!d.signal.aborted)try{let x=u?.(R)??b;window.clearTimeout(a),a=window.setTimeout(_,x),b*=w,b=Math.min(b,y),p++,p>=A?(h(),v(N("SseMaxRetries",t,{retryMaxCount:A}))):console.error(`Datastar failed to reach ${S.method}: ${e.toString()} retry in ${x}ms`)}catch(x){h(),v(x)}}}_()})}var ne=`${O}-sse`,He=`${O}-settling`,Y=`${O}-swapping`,we="started",Me="finished",vt="error",yt="retrying";function G(t,e){document.addEventListener(ne,n=>{if(n.detail.type!==t)return;let{argsRaw:r}=n.detail;e(r)})}function de(t,e){document.dispatchEvent(new CustomEvent(ne,{detail:{type:t,argsRaw:e}}))}var bt=t=>`${t}`.includes("text/event-stream"),U=async(t,e,n,r)=>{let{el:{id:i},el:s,signals:l}=t,{headers:u,contentType:g,includeLocal:T,selector:b,openWhenHidden:w,retryInterval:y,retryScaler:A,retryMaxWaitMs:S,retryMaxCount:E,abort:v}=Object.assign({headers:{},contentType:"json",includeLocal:!1,selector:null,openWhenHidden:!1,retryInterval:je,retryScaler:2,retryMaxWaitMs:3e4,retryMaxCount:10,abort:void 0},r),p=e.toLowerCase(),o=()=>{};try{if(de(we,{elId:i}),!n?.length)throw N("SseNoUrlProvided",t,{action:p});let d={};d[Be]=!0,g==="json"&&(d["Content-Type"]="application/json");let c=Object.assign({},d,u),a={method:e,headers:c,openWhenHidden:w,retryInterval:y,retryScaler:A,retryMaxWaitMs:S,retryMaxCount:E,signal:v,onopen:async m=>{if(m.status>=400){let _=m.status.toString();de(vt,{status:_})}},onmessage:m=>{if(!m.event.startsWith(O))return;let _=m.event,R={},x=m.data.split(` +`);for(let I of x){let D=I.indexOf(" "),Ge=I.slice(0,D),ge=R[Ge];ge||(ge=[],R[Ge]=ge);let hn=I.slice(D+1).trim();ge.push(hn)}let C={};for(let[I,D]of Object.entries(R))C[I]=D.join(` +`);de(_,C)},onerror:m=>{if(bt(m))throw N("InvalidContentType",t,{url:n});m&&(console.error(m.message),de(yt,{message:m.message}))}},h=new URL(n,window.location.origin),f=new URLSearchParams(h.search);if(g==="json"){let m=l.JSON(!1,!T);e==="GET"?f.set(O,m):a.body=m}else if(g==="form"){let m=b?document.querySelector(b):s.closest("form");if(m===null)throw b?N("SseFormNotFound",t,{action:p,selector:b}):N("SseClosestFormNotFound",t,{action:p});if(s!==m){let R=x=>x.preventDefault();m.addEventListener("submit",R),o=()=>m.removeEventListener("submit",R)}if(!m.checkValidity()){m.reportValidity(),o();return}let _=new FormData(m);if(e==="GET"){let R=new URLSearchParams(_);for(let[x,C]of R)f.set(x,C)}else a.body=_}else throw N("SseInvalidContentType",t,{action:p,contentType:g});h.search=f.toString();try{await ht(t,h.toString(),a)}catch(m){if(!bt(m))throw N("SseFetchFailed",t,{method:e,url:n,error:m})}}finally{de(Me,{elId:i}),o()}};var St={type:3,name:"delete",fn:async(t,e,n)=>U(t,"DELETE",e,{...n})};var Tt={type:3,name:"get",fn:async(t,e,n)=>U(t,"GET",e,{...n})};var At={type:3,name:"patch",fn:async(t,e,n)=>U(t,"PATCH",e,{...n})};var Et={type:3,name:"post",fn:async(t,e,n)=>U(t,"POST",e,{...n})};var _t={type:3,name:"put",fn:async(t,e,n)=>U(t,"PUT",e,{...n})};var xt={type:1,name:"indicator",keyReq:3,valReq:3,onLoad:({el:t,key:e,mods:n,signals:r,value:i})=>{let s=e?V(e,n):K(i),l=r.upsertIfMissing(s,!1),u=g=>{let{type:T,argsRaw:{elId:b}}=g.detail;if(b===t.id)switch(T){case we:l.value=!0;break;case Me:l.value=!1;break}};return document.addEventListener(ne,u),()=>{document.removeEventListener(ne,u)}}};var Rt={type:2,name:k.ExecuteScript,onGlobalInit:async t=>{G(k.ExecuteScript,({autoRemove:e=`${ze}`,attributes:n=Ke,script:r})=>{let i=j(e);if(!r?.length)throw H("NoScriptProvided",t);let s=document.createElement("script");for(let l of n.split(` +`)){let u=l.indexOf(" "),g=u?l.slice(0,u):l,T=u?l.slice(u):"";s.setAttribute(g.trim(),T.trim())}s.text=r,document.head.appendChild(s),i&&s.remove()})}};var pe=document,J=!!pe.startViewTransition;var wt=function(){"use strict";let t=()=>{},e={morphStyle:"outerHTML",callbacks:{beforeNodeAdded:t,afterNodeAdded:t,beforeNodeMorphed:t,afterNodeMorphed:t,beforeNodeRemoved:t,afterNodeRemoved:t,beforeAttributeUpdated:t},head:{style:"merge",shouldPreserve:y=>y.getAttribute("im-preserve")==="true",shouldReAppend:y=>y.getAttribute("im-re-append")==="true",shouldRemove:t,afterHeadMorphed:t},restoreFocus:!0};function n(y,A,S={}){y=b(y);let E=w(A),v=T(y,E,S),p=i(v,()=>u(v,y,E,o=>o.morphStyle==="innerHTML"?(s(o,y,E),Array.from(y.childNodes)):r(o,y,E)));return v.pantry.remove(),p}function r(y,A,S){let E=w(A),v=Array.from(E.childNodes),p=v.indexOf(A),o=v.length-(p+1);return s(y,E,S,A,A.nextSibling),v=Array.from(E.childNodes),v.slice(p,v.length-o)}function i(y,A){if(!y.config.restoreFocus)return A();let S=document.activeElement;if(!(S instanceof HTMLInputElement||S instanceof HTMLTextAreaElement))return A();let{id:E,selectionStart:v,selectionEnd:p}=S,o=A();return E&&E!==document.activeElement?.id&&(S=y.target.querySelector(`#${E}`),S?.focus()),S&&v&&p&&S.setSelectionRange(v,p),o}let s=function(){function y(c,a,h,f=null,m=null){a instanceof HTMLTemplateElement&&h instanceof HTMLTemplateElement&&(a=a.content,h=h.content),f||=a.firstChild;for(let _ of h.childNodes){if(f&&f!=m){let x=S(c,_,f,m);if(x){x!==f&&v(c,f,x),l(x,_,c),f=x.nextSibling;continue}}if(_ instanceof Element&&c.persistentIds.has(_.id)){let x=p(a,_.id,f,c);l(x,_,c),f=x.nextSibling;continue}let R=A(a,_,f,c);R&&(f=R.nextSibling)}for(;f&&f!=m;){let _=f;f=f.nextSibling,E(c,_)}}function A(c,a,h,f){if(f.callbacks.beforeNodeAdded(a)===!1)return null;if(f.idMap.has(a)&&a instanceof Element){let m=document.createElement(a.tagName);return c.insertBefore(m,h),l(m,a,f),f.callbacks.afterNodeAdded(m),m}else{let m=document.importNode(a,!0);return c.insertBefore(m,h),f.callbacks.afterNodeAdded(m),m}}let S=function(){function c(f,m,_,R){let x=null,C=m.nextSibling,I=0,D=_;for(;D&&D!=R;){if(h(D,m)){if(a(f,D,m))return D;x===null&&(f.idMap.has(D)||(x=D))}x===null&&C&&h(D,C)&&(I++,C=C.nextSibling,I>=2&&(x=void 0)),D=D.nextSibling}return x||null}function a(f,m,_){let R=f.idMap.get(m),x=f.idMap.get(_);if(!x||!R)return!1;for(let C of R)if(x.has(C))return!0;return!1}function h(f,m){let _=f,R=m;return _.nodeType===R.nodeType&&_.tagName===R.tagName&&(!_.id||_.id===R.id)}return c}();function E(c,a){if(c.idMap.has(a)&&a instanceof Element)d(c.pantry,a,null);else{if(c.callbacks.beforeNodeRemoved(a)===!1)return;a.parentNode?.removeChild(a),c.callbacks.afterNodeRemoved(a)}}function v(c,a,h){let f=a;for(;f&&f!==h;){let m=f;f=f.nextSibling,E(c,m)}return f}function p(c,a,h,f){let m=f.target.querySelector(`#${a}`)||f.pantry.querySelector(`#${a}`);return o(m,f),d(c,m,h),m}function o(c,a){let h=c.id;for(;c=c.parentNode;){let f=a.idMap.get(c);f&&(f.delete(h),f.size||a.idMap.delete(c))}}function d(c,a,h){if(c.moveBefore)try{c.moveBefore(a,h)}catch{c.insertBefore(a,h)}else c.insertBefore(a,h)}return y}(),l=function(){function y(o,d,c){return c.ignoreActive&&o===document.activeElement?null:(c.callbacks.beforeNodeMorphed(o,d)===!1||(o instanceof HTMLHeadElement&&c.head.ignore||(o instanceof HTMLHeadElement&&c.head.style!=="morph"?g(o,d,c):(A(o,d,c),p(o,c)||s(c,o,d))),c.callbacks.afterNodeMorphed(o,d)),o)}function A(o,d,c){let a=d.nodeType;if(a===1){let h=o,f=d,m=h.attributes,_=f.attributes;for(let R of _)v(R.name,h,"update",c)||h.getAttribute(R.name)!==R.value&&h.setAttribute(R.name,R.value);for(let R=m.length-1;0<=R;R--){let x=m[R];if(x&&!f.hasAttribute(x.name)){if(v(x.name,h,"remove",c))continue;h.removeAttribute(x.name)}}p(h,c)||S(h,f,c)}(a===8||a===3)&&o.nodeValue!==d.nodeValue&&(o.nodeValue=d.nodeValue)}function S(o,d,c){if(o instanceof HTMLInputElement&&d instanceof HTMLInputElement&&d.type!=="file"){let a=d.value,h=o.value;E(o,d,"checked",c),E(o,d,"disabled",c),d.hasAttribute("value")?h!==a&&(v("value",o,"update",c)||(o.setAttribute("value",a),o.value=a)):v("value",o,"remove",c)||(o.value="",o.removeAttribute("value"))}else if(o instanceof HTMLOptionElement&&d instanceof HTMLOptionElement)E(o,d,"selected",c);else if(o instanceof HTMLTextAreaElement&&d instanceof HTMLTextAreaElement){let a=d.value,h=o.value;if(v("value",o,"update",c))return;a!==h&&(o.value=a),o.firstChild&&o.firstChild.nodeValue!==a&&(o.firstChild.nodeValue=a)}}function E(o,d,c,a){let h=d[c],f=o[c];if(h!==f){let m=v(c,o,"update",a);m||(o[c]=d[c]),h?m||o.setAttribute(c,""):v(c,o,"remove",a)||o.removeAttribute(c)}}function v(o,d,c,a){return o==="value"&&a.ignoreActiveValue&&d===document.activeElement?!0:a.callbacks.beforeAttributeUpdated(o,d,c)===!1}function p(o,d){return!!d.ignoreActiveValue&&o===document.activeElement&&o!==document.body}return y}();function u(y,A,S,E){if(y.head.block){let v=A.querySelector("head"),p=S.querySelector("head");if(v&&p){let o=g(v,p,y);return Promise.all(o).then(()=>{let d=Object.assign(y,{head:{block:!1,ignore:!0}});return E(d)})}}return E(y)}function g(y,A,S){let E=[],v=[],p=[],o=[],d=new Map;for(let a of A.children)d.set(a.outerHTML,a);for(let a of y.children){let h=d.has(a.outerHTML),f=S.head.shouldReAppend(a),m=S.head.shouldPreserve(a);h||m?f?v.push(a):(d.delete(a.outerHTML),p.push(a)):S.head.style==="append"?f&&(v.push(a),o.push(a)):S.head.shouldRemove(a)!==!1&&v.push(a)}o.push(...d.values());let c=[];for(let a of o){let h=document.createRange().createContextualFragment(a.outerHTML).firstChild;if(S.callbacks.beforeNodeAdded(h)!==!1){if("href"in h&&h.href||"src"in h&&h.src){let f,m=new Promise(function(_){f=_});h.addEventListener("load",function(){f()}),c.push(m)}y.appendChild(h),S.callbacks.afterNodeAdded(h),E.push(h)}}for(let a of v)S.callbacks.beforeNodeRemoved(a)!==!1&&(y.removeChild(a),S.callbacks.afterNodeRemoved(a));return S.head.afterHeadMorphed(y,{added:E,kept:p,removed:v}),c}let T=function(){function y(o,d,c){let a=A(c),{persistentIds:h,idMap:f}=p(o,d),m=a.morphStyle||"outerHTML";if(!["innerHTML","outerHTML"].includes(m))throw`Do not understand how to morph style ${m}`;return{target:o,newContent:d,config:a,morphStyle:m,ignoreActive:a.ignoreActive,ignoreActiveValue:a.ignoreActiveValue,restoreFocus:a.restoreFocus,idMap:f,persistentIds:h,pantry:S(),callbacks:a.callbacks,head:a.head}}function A(o){let d=Object.assign({},e);return Object.assign(d,o),d.callbacks=Object.assign({},e.callbacks,o.callbacks),d.head=Object.assign({},e.head,o.head),d}function S(){let o=document.createElement("div");return o.hidden=!0,document.body.insertAdjacentElement("afterend",o),o}function E(o){let d=Array.from(o.querySelectorAll("[id]"));return o.id&&d.push(o),d}function v(o,d,c,a){for(let h of d)if(c.has(h.id)){let f=h;for(;f;){let m=a.get(f);if(m==null&&(m=new Set,a.set(f,m)),m.add(h.id),f===o)break;f=f.parentElement}}}function p(o,d){let c=new Map,a=new Set,h=E(o);for(let x of h){let C=x.id;c.has(C)?a.add(C):c.set(C,x.tagName)}let f=new Set,m=E(d);for(let x of m){let C=x.id,I=c.get(C);(f.has(C)||I&&I!==x.tagName)&&(a.add(C),f.delete(C)),I===x.tagName&&!a.has(C)&&f.add(C)}let _=new Map;v(o,h,f,_);let R=d;return d.__idiomorphDummyParent&&(R=d.childNodes[0]),v(R,m,f,_),{persistentIds:f,idMap:_}}return y}(),{normalizeElement:b,normalizeParent:w}=function(){let y=new WeakSet;function A(v){return v instanceof Document?v.documentElement:v}function S(v){if(v==null)return document.createElement("div");if(typeof v=="string")return S(E(v));if(y.has(v))return v;if(v instanceof Node){if(v.parentNode)return{childNodes:[v],querySelectorAll:p=>{let o=v.querySelectorAll(p);return v.matches(p)?[v,...o]:o},insertBefore:(p,o)=>v.parentNode.insertBefore(p,o),moveBefore:(p,o)=>v.parentNode.moveBefore(p,o),__idiomorphDummyParent:!0};{let p=document.createElement("div");return p.append(v),p}}else{let p=document.createElement("div");for(let o of[...v])p.append(o);return p}}function E(v){let p=new DOMParser,o=v.replace(/]*>|>)([\s\S]*?)<\/svg>/gim,"");if(o.match(/<\/html>/)||o.match(/<\/head>/)||o.match(/<\/body>/)){let d=p.parseFromString(v,"text/html");if(o.match(/<\/html>/))return y.add(d),d;{let c=d.firstChild;return c&&y.add(c),c}}else{let c=p.parseFromString("","text/html").body.querySelector("template").content;return y.add(c),c}}return{normalizeElement:A,normalizeParent:S}}();return{morph:n,defaults:e}}();var Nt={type:2,name:k.MergeFragments,onGlobalInit:async t=>{let e=document.createElement("template");G(k.MergeFragments,({fragments:n="
",selector:r="",mergeMode:i=Ye,settleDuration:s=`${he}`,useViewTransition:l=`${ve}`})=>{let u=Number.parseInt(s),g=j(l);e.innerHTML=n.trim();let T=[...e.content.children];for(let b of T){if(!(b instanceof Element))throw H("NoFragmentsFound",t);let w=r||`#${b.getAttribute("id")}`,y=[...document.querySelectorAll(w)||[]];if(!y.length)throw H("NoTargetsFound",t,{selectorOrID:w});g&&J?pe.startViewTransition(()=>Mt(t,i,u,b,y)):Mt(t,i,u,b,y)}})}};function Mt(t,e,n,r,i){for(let s of i){s.classList.add(Y);let l=s.outerHTML,u=s;switch(e){case W.Morph:{let b=new Map,w=r.cloneNode(!0);le(w,A=>{!A.id?.length&&Object.keys(A.dataset).length&&(A.id=be(A))});let y=wt.morph(u,w,{restoreFocus:!0,callbacks:{beforeAttributeUpdated:(A,S,E)=>{if(E==="update"&&A.startsWith("data-")){let v=b.get(S);v||(v=[],b.set(S,v));let p=A.slice(5);v.push(B(p))}return!0}}});if(y?.length){u=y[0];for(let[A,S]of b.entries())for(let E of S)t.applyAttributePlugin(A,E)}break}case W.Inner:u.innerHTML=r.outerHTML;break;case W.Outer:u.replaceWith(r);break;case W.Prepend:u.prepend(r);break;case W.Append:u.append(r);break;case W.Before:u.before(r);break;case W.After:u.after(r);break;case W.UpsertAttributes:for(let b of r.getAttributeNames()){let w=r.getAttribute(b);u.setAttribute(b,w)}break;default:throw H("InvalidMergeMode",t,{mergeMode:e})}let g=u.classList;g?.add(Y),setTimeout(()=>{s.classList.remove(Y),g?.remove(Y)},n);let T=u.outerHTML;g&&l!==T&&(g.add(He),setTimeout(()=>{g.remove(He)},n))}}var Pt={type:2,name:k.MergeSignals,onGlobalInit:async t=>{G(k.MergeSignals,({signals:e="{}",onlyIfMissing:n=`${Je}`})=>{let{signals:r}=t,i=j(n);r.merge(ye(e),i)})}};var Ct={type:2,name:k.RemoveFragments,onGlobalInit:async t=>{G(k.RemoveFragments,({selector:e,settleDuration:n=`${he}`,useViewTransition:r=`${ve}`})=>{if(!e.length)throw H("NoSelectorProvided",t);let i=Number.parseInt(n),s=j(r),l=document.querySelectorAll(e),u=()=>{for(let g of l)g.classList.add(Y);setTimeout(()=>{for(let g of l)g.remove()},i)};s&&J?pe.startViewTransition(()=>u()):u()})}};var Lt={type:2,name:k.RemoveSignals,onGlobalInit:async t=>{G(k.RemoveSignals,({paths:e=""})=>{let n=e.split(` +`).map(r=>r.trim());if(!n?.length)throw H("NoPathsProvided",t);t.signals.remove(...n)})}};var It={type:3,name:"clipboard",fn:(t,e)=>{if(!navigator.clipboard)throw N("ClipboardNotAvailable",t);navigator.clipboard.writeText(e)}};var Dt={type:1,name:"customValidity",keyReq:2,valReq:1,onLoad:t=>{let{el:e,genRX:n,effect:r}=t;if(!(e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement))throw N("CustomValidityInvalidElement",t);let i=n();return r(()=>{let s=i();if(typeof s!="string")throw N("CustomValidityInvalidExpression",t,{result:s});e.setCustomValidity(s)})}};var Vt="once",Ot="half",kt="full",Ft={type:1,name:"intersects",keyReq:2,mods:new Set([Vt,Ot,kt]),onLoad:({el:t,rawKey:e,mods:n,genRX:r})=>{let i={threshold:0};n.has(kt)?i.threshold=1:n.has(Ot)&&(i.threshold=.5);let s=r(),l=new IntersectionObserver(u=>{for(let g of u)g.isIntersecting&&(s(),n.has(Vt)&&(l.disconnect(),delete t.dataset[e]))},i);return l.observe(t),()=>l.disconnect()}};var Ht="session",Wt={type:1,name:"persist",mods:new Set([Ht]),onLoad:({key:t,effect:e,mods:n,signals:r,value:i})=>{t=V(t,n),t===""&&(t=O);let s=n.has(Ht)?sessionStorage:localStorage,l=i.split(/\s+/).filter(T=>T!=="");l=l.map(T=>K(T));let u=()=>{let T=s.getItem(t)||"{}",b=JSON.parse(T);r.merge(b)},g=()=>{let T;l.length?T=r.subset(...l):T=r.values(),s.setItem(t,JSON.stringify(T))};return u(),e(()=>{g()})}};var qt={type:1,name:"replaceUrl",keyReq:2,valReq:1,onLoad:({effect:t,genRX:e})=>{let n=e();return t(()=>{let r=n(),i=window.location.href,s=new URL(r,i).toString();window.history.replaceState({},"",s)})}};var Ne="smooth",We="instant",qe="auto",$t="hstart",Gt="hcenter",Ut="hend",Bt="hnearest",jt="vstart",Kt="vcenter",Jt="vend",zt="vnearest",Nn="focus",Pe="center",Yt="start",Xt="end",Qt="nearest",Zt={type:1,name:"scrollIntoView",keyReq:2,valReq:2,mods:new Set([Ne,We,qe,$t,Gt,Ut,Bt,jt,Kt,Jt,zt,Nn]),onLoad:t=>{let{el:e,mods:n,rawKey:r}=t;e.tabIndex||e.setAttribute("tabindex","0");let i={behavior:Ne,block:Pe,inline:Pe};if(n.has(Ne)&&(i.behavior=Ne),n.has(We)&&(i.behavior=We),n.has(qe)&&(i.behavior=qe),n.has($t)&&(i.inline=Yt),n.has(Gt)&&(i.inline=Pe),n.has(Ut)&&(i.inline=Xt),n.has(Bt)&&(i.inline=Qt),n.has(jt)&&(i.block=Yt),n.has(Kt)&&(i.block=Pe),n.has(Jt)&&(i.block=Xt),n.has(zt)&&(i.block=Qt),!(e instanceof HTMLElement||e instanceof SVGElement))throw N("ScrollIntoViewInvalidElement",t);return e.tabIndex||e.setAttribute("tabindex","0"),e.scrollIntoView(i),n.has("focus")&&e.focus(),delete e.dataset[r],()=>{}}};var en="none",tn="display",nn={type:1,name:"show",keyReq:2,valReq:1,onLoad:({el:{style:t},genRX:e,effect:n})=>{let r=e();return n(async()=>{r()?t.display===en&&t.removeProperty(tn):t.setProperty(tn,en)})}};var rn="view-transition",on={type:1,name:"viewTransition",keyReq:2,valReq:1,onGlobalInit(){let t=!1;for(let e of document.head.childNodes)e instanceof HTMLMetaElement&&e.name===rn&&(t=!0);if(!t){let e=document.createElement("meta");e.name=rn,e.content="same-origin",document.head.appendChild(e)}},onLoad:({effect:t,el:e,genRX:n})=>{if(!J){console.error("Browser does not support view transitions");return}let r=n();return t(()=>{let i=r();if(!i?.length)return;let s=e.style;s.viewTransitionName=i})}};var sn={type:1,name:"attr",valReq:1,onLoad:({el:t,key:e,effect:n,genRX:r})=>{let i=r();return e===""?n(async()=>{let s=i();for(let[l,u]of Object.entries(s))t.setAttribute(l,u)}):(e=se(e),n(async()=>{let s=!1;try{s=i()}catch{}let l;typeof s=="string"?l=s:l=JSON.stringify(s),!l||l==="false"||l==="null"||l==="undefined"?t.removeAttribute(e):t.setAttribute(e,l)}))}};var Pn=/^data:(?[^;]+);base64,(?.*)$/,an=["change","input","keydown"],ln={type:1,name:"bind",keyReq:3,valReq:3,onLoad:t=>{let{el:e,key:n,mods:r,signals:i,value:s,effect:l}=t,u=n?V(n,r):K(s),g=()=>{},T=()=>{},b=e.tagName.toLowerCase(),w="",y=b.includes("input"),A=e.getAttribute("type"),S=b.includes("checkbox")||y&&A==="checkbox";S&&(w=!1),y&&A==="number"&&(w=0);let v=b.includes("select"),p=b.includes("radio")||y&&A==="radio",o=y&&A==="file";p&&(e.getAttribute("name")?.length||e.setAttribute("name",u)),i.upsertIfMissing(u,w),g=()=>{let a="value"in e,h=i.value(u),f=`${h}`;if(S||p){let m=e;S?m.checked=!!h||h==="true":p&&(m.checked=f===m.value)}else if(!o)if(v){let m=e;if(m.multiple)for(let _ of m.options){if(_?.disabled)return;Array.isArray(h)||typeof h=="string"?_.selected=h.includes(_.value):typeof h=="number"?_.selected=h===Number(_.value):_.selected=h}else m.value=f}else a?e.value=f:e.setAttribute("value",f)},T=async()=>{if(o){let f=[...e?.files||[]],m=[],_=[],R=[];await Promise.all(f.map(x=>new Promise(C=>{let I=new FileReader;I.onload=()=>{if(typeof I.result!="string")throw N("InvalidFileResultType",t,{resultType:typeof I.result});let D=I.result.match(Pn);if(!D?.groups)throw N("InvalidDataUri",t,{result:I.result});m.push(D.groups.contents),_.push(D.groups.mime),R.push(x.name)},I.onloadend=()=>C(void 0),I.readAsDataURL(x)}))),i.setValue(u,m),i.setValue(`${u}Mimes`,_),i.setValue(`${u}Names`,R);return}let a=i.value(u),h=e||e;if(typeof a=="number"){let f=Number(h.value||h.getAttribute("value"));i.setValue(u,f)}else if(typeof a=="string"){let f=h.value||h.getAttribute("value")||"";i.setValue(u,f)}else if(typeof a=="boolean")if(S){let f=h.checked||h.getAttribute("checked")==="true";i.setValue(u,f)}else{let f=!!(h.value||h.getAttribute("value"));i.setValue(u,f)}else if(!(typeof a>"u"))if(Array.isArray(a))if(v){let _=[...e.selectedOptions].filter(R=>R.selected).map(R=>R.value);i.setValue(u,_)}else{let f=JSON.stringify(h.value.split(","));i.setValue(u,f)}else throw N("BindUnsupportedSignalType",t,{signalType:typeof a})};for(let a of an)e.addEventListener(a,T);let d=l(()=>g()),c=a=>{a.persisted&&T()};return window.addEventListener("pageshow",c),()=>{d();for(let a of an)e.removeEventListener(a,T);window.removeEventListener("pageshow",c)}}};var un={type:1,name:"class",valReq:1,onLoad:({el:t,key:e,mods:n,effect:r,genRX:i})=>{let s=t.classList,l=i();return r(()=>{if(e===""){let u=l();for(let[g,T]of Object.entries(u)){let b=g.split(/\s+/);T?s.add(...b):s.remove(...b)}}else e=V(e,n),l()?s.add(e):s.remove(e)})}};function me(t){if(!t||t.size<=0)return 0;for(let e of t){if(e.endsWith("ms"))return Number(e.replace("ms",""));if(e.endsWith("s"))return Number(e.replace("s",""))*1e3;try{return Number.parseFloat(e)}catch{}}return 0}function re(t,e,n=!1){return t?t.has(e.toLowerCase()):n}var Cn="evt",$e="signalsChange",Ln=$e.length,cn={type:1,name:"on",keyReq:1,valReq:1,argNames:[Cn],removeOnLoad:t=>t.startsWith("onLoad"),onLoad:({el:t,key:e,mods:n,rawKey:r,signals:i,value:s,effect:l,genRX:u})=>{let g=u(),T=t;n.has("window")&&(T=window);let b=p=>{p&&((n.has("prevent")||e==="submit")&&p.preventDefault(),n.has("stop")&&p.stopPropagation()),g(p)},w=n.get("delay");if(w){let p=me(w);b=Se(b,p)}let y=n.get("debounce");if(y){let p=me(y),o=re(y,"leading",!1),d=!re(y,"notrail",!1);b=et(b,p,o,d)}let A=n.get("throttle");if(A){let p=me(A),o=!re(A,"noleading",!1),d=re(A,"trail",!1);b=tt(b,p,o,d)}if(n.has("viewtransition")&&J){let p=b;b=(...o)=>document.startViewTransition(()=>p(...o))}let S={capture:!0,passive:!1,once:!1};if(n.has("capture")||(S.capture=!1),n.has("passive")&&(S.passive=!0),n.has("once")&&(S.once=!0),e==="load")return setTimeout(()=>b(),0),()=>{};if(e==="interval"){let p=1e3,o=n.get("duration");o&&(p=me(o),re(o,"leading",!1)&&(t.dataset[r.replace(".leading","")]=s,delete t.dataset[r],b()));let d=setInterval(b,p);return()=>{clearInterval(d)}}if(e==="raf"){let p,o=()=>{b(),p=requestAnimationFrame(o)};return p=requestAnimationFrame(o),()=>{p&&cancelAnimationFrame(p)}}if(e.startsWith($e)){if(e===$e){b();let d=c=>b(c);return document.addEventListener(oe,d),()=>{document.removeEventListener(oe,d)}}let p=V(B(e.slice(Ln)),n),o=new Map;return i.walk((d,c)=>{d.startsWith(p)&&o.set(c,c.value)}),l(()=>{for(let[d,c]of o)c!==d.value&&(b(),o.set(d,d.value))})}if(n.has("outside")){T=document;let p=b;b=d=>{let c=d?.target;t.contains(c)||p(d)}}let v=V(e,n);return T.addEventListener(v,b,S),()=>{T.removeEventListener(v,b)}}};var fn={type:1,name:"ref",keyReq:3,valReq:3,onLoad:({el:t,key:e,mods:n,signals:r,value:i})=>{let s=e?V(e,n):K(i);r.setValue(s,t)}};var dn={type:1,name:"text",keyReq:2,valReq:1,onLoad:t=>{let{el:e,effect:n,genRX:r}=t,i=r();return e instanceof HTMLElement||N("TextInvalidElement",t),n(()=>{let s=i(t);e.textContent=`${s}`})}};var{round:In,max:Dn,min:Vn}=Math,pn={type:3,name:"fit",fn:(t,e,n,r,i,s,l=!1,u=!1)=>{let g=(e-n)/(r-n)*(s-i)+i;return u&&(g=In(g)),l&&(g=Dn(i,Vn(s,g))),g}};var mn={type:3,name:"setAll",fn:({signals:t},e,n)=>{t.walk((r,i)=>{r.startsWith(e)&&(i.value=n)})}};var gn={type:3,name:"toggleAll",fn:({signals:t},e)=>{t.walk((n,r)=>{n.startsWith(e)&&(r.value=!r.value)})}};Fe.load(St,Tt,At,Et,_t,xt,Rt,Nt,Pt,Ct,Lt,It,Dt,Ft,Wt,qt,Zt,nn,on,sn,ln,un,cn,fn,dn,pn,mn,gn);var rs=Fe;export{rs as Datastar}; +//# sourceMappingURL=datastar-1-0-0-beta-7-aebc4a389b667764.js.map diff --git a/darm_test/public/js/datastar-1-0-0-beta-7.js.map b/darm_test/public/js/datastar-1-0-0-beta-7.js.map new file mode 100644 index 0000000..efd3cb5 --- /dev/null +++ b/darm_test/public/js/datastar-1-0-0-beta-7.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../engine/consts.ts", "../engine/types.ts", "../utils/text.ts", "../plugins/official/core/attributes/computed.ts", "../plugins/official/core/attributes/signals.ts", "../plugins/official/core/attributes/star.ts", "../utils/dom.ts", "../utils/timing.ts", "../engine/errors.ts", "../vendored/preact-core.ts", "../engine/signals.ts", "../engine/engine.ts", "../engine/index.ts", "../vendored/fetch-event-source.ts", "../plugins/official/backend/shared.ts", "../plugins/official/backend/actions/sse.ts", "../plugins/official/backend/actions/delete.ts", "../plugins/official/backend/actions/get.ts", "../plugins/official/backend/actions/patch.ts", "../plugins/official/backend/actions/post.ts", "../plugins/official/backend/actions/put.ts", "../plugins/official/backend/attributes/indicator.ts", "../plugins/official/backend/watchers/executeScript.ts", "../utils/view-transtions.ts", "../vendored/idiomorph.esm.js", "../plugins/official/backend/watchers/mergeFragments.ts", "../plugins/official/backend/watchers/mergeSignals.ts", "../plugins/official/backend/watchers/removeFragments.ts", "../plugins/official/backend/watchers/removeSignals.ts", "../plugins/official/browser/actions/clipboard.ts", "../plugins/official/browser/attributes/customValidity.ts", "../plugins/official/browser/attributes/intersects.ts", "../plugins/official/browser/attributes/persist.ts", "../plugins/official/browser/attributes/replaceUrl.ts", "../plugins/official/browser/attributes/scrollIntoView.ts", "../plugins/official/browser/attributes/show.ts", "../plugins/official/browser/attributes/viewTransition.ts", "../plugins/official/dom/attributes/attr.ts", "../plugins/official/dom/attributes/bind.ts", "../plugins/official/dom/attributes/class.ts", "../utils/tags.ts", "../plugins/official/dom/attributes/on.ts", "../plugins/official/dom/attributes/ref.ts", "../plugins/official/dom/attributes/text.ts", "../plugins/official/logic/actions/fit.ts", "../plugins/official/logic/actions/setAll.ts", "../plugins/official/logic/actions/toggleAll.ts", "../bundles/datastar-1-0-0-beta-7-aebc4a389b667764.ts"], + "sourcesContent": ["// This is auto-generated by Datastar. DO NOT EDIT.\nconst lol = /\uD83D\uDD95JS_DS\uD83D\uDE80/.source\nexport const DSP = lol.slice(0, 5)\nexport const DSS = lol.slice(4)\n\nexport const DATASTAR = \"datastar\";\nexport const DATASTAR_EVENT = \"datastar-event\";\nexport const DATASTAR_REQUEST = \"Datastar-Request\";\n\n// #region Defaults\n\n// #region Default durations\n\n// The default duration for settling during fragment merges. Allows for CSS transitions to complete.\nexport const DefaultFragmentsSettleDurationMs = 300;\n// The default duration for retrying SSE on connection reset. This is part of the underlying retry mechanism of SSE.\nexport const DefaultSseRetryDurationMs = 1000;\n\n// #endregion\n\n\n// #region Default strings\n\n// The default attributes for + + + + +
+

Welcome to My Website

+
div
+
div
+
div
+ div +
+ + + diff --git a/darm_test/src/ui/mod.rs b/darm_test/src/ui/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/darm_test/src/ui/pages/chat/mod.rs b/darm_test/src/ui/pages/chat/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/darm_test/src/ui/pages/mod.rs b/darm_test/src/ui/pages/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/darm_test/src/ui/pages/proxy_dashboard/mod.rs b/darm_test/src/ui/pages/proxy_dashboard/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/darm_test/style/main.scss b/darm_test/style/main.scss new file mode 100644 index 0000000..204b9c5 --- /dev/null +++ b/darm_test/style/main.scss @@ -0,0 +1 @@ +@use 'uno'; diff --git a/darm_test/style/uno.css b/darm_test/style/uno.css new file mode 100644 index 0000000..2b0ea4f --- /dev/null +++ b/darm_test/style/uno.css @@ -0,0 +1,15 @@ +/* layer: preflights */ +*,::before,::after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;} +/* layer: default */ +.static{position:static;} +.m-1, +.m1, +[m-1=""], +m1{margin:0.25rem;} +.ms, +[ms=""]{margin-inline-start:1rem;} +contents{display:contents;} +.h1{height:0.25rem;} +.b, +[b=""]{border-width:1px;} +[pe=""]{padding-inline-end:1rem;} \ No newline at end of file diff --git a/darm_test/uno.config.ts b/darm_test/uno.config.ts new file mode 100644 index 0000000..845d1ed --- /dev/null +++ b/darm_test/uno.config.ts @@ -0,0 +1,31 @@ +// import presetAttributify from '@unocss/preset-attributify' +import { + defineConfig, + presetAttributify, + presetIcons, + presetTagify, + presetWind, + transformerDirectives, + transformerVariantGroup, +} from "unocss"; + +export default defineConfig({ + content: { + filesystem: ["**/*.{html,js,ts,jsx,tsx,rs,rsx}"], + }, + cli: { + entry: { + patterns: ["**/*.{html,js,ts,jsx,tsx,rs,rsx}"], + outFile: "./style/uno.css", + }, + }, + presets: [ + presetAttributify({ + /* preset options */ + }), + presetTagify({}), + presetIcons({}), + presetWind({}), + ], + transformers: [transformerDirectives(), transformerVariantGroup()], +}); diff --git a/package-lock.json b/package-lock.json index 6387daf..d02bdc9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,15 @@ "version": "0.1.1", "license": "AGPL", "devDependencies": { + "@starfederation/datastar": "^1.0.0-beta.7", "@tailwindcss/forms": "0.5.7", "@tailwindcss/typography": "0.5.10", + "@unocss/reset": "^66.0.0", "daisyui": "4.7.3", - "tailwindcss": "3.4.17" + "sass": "^1.85.0", + "tailwindcss": "3.4.17", + "typescript": "^5.7.3", + "unocss": "^0.54.3" } }, "node_modules/@alloc/quick-lru": { @@ -27,6 +32,464 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/install-pkg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz", + "integrity": "sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "package-manager-detector": "^0.2.8", + "tinyexec": "^0.3.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@antfu/utils": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz", + "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz", + "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.0.0", + "@antfu/utils": "^8.1.0", + "@iconify/types": "^2.0.0", + "debug": "^4.4.0", + "globals": "^15.14.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "mlly": "^1.7.4" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -45,14 +508,15 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz", - "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -63,30 +527,34 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz", - "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -127,6 +595,316 @@ "node": ">= 8" } }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "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" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -137,6 +915,56 @@ "node": ">=14" } }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@starfederation/datastar": { + "version": "1.0.0-beta.7", + "resolved": "https://registry.npmjs.org/@starfederation/datastar/-/datastar-1.0.0-beta.7.tgz", + "integrity": "sha512-mt3nnhn/Nz4W/TKYEK/C5BTeoDMVG5hmlTP3FP5dy/zhpfAsAcYwOLVhdby73AMdJo51dffLuC4Ik5M4D4Y+MA==", + "dev": true, + "license": "MIT" + }, "node_modules/@tailwindcss/forms": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz", @@ -164,6 +992,374 @@ "tailwindcss": ">=3.0.0 || insiders" } }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@unocss/astro": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/astro/-/astro-0.54.3.tgz", + "integrity": "sha512-/gmnSIIsYtAVPbcIGXuuaoCM71x8s8I0VtsEQZicNB51ux7BhSyXIQ5CE/W384NqTaqJt7gHVfbjn+io4ZSJXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3", + "@unocss/reset": "0.54.3", + "@unocss/vite": "0.54.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/astro/node_modules/@unocss/reset": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/reset/-/reset-0.54.3.tgz", + "integrity": "sha512-5FjdfZKvwJ0JrUr2rVWnZzHfg7jOCMaJjD93VvCdFIr8Q9dChSzuZoWGCcx6EEsZm5zEfpB7+qwwz6Y2lN9vxg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/cli": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/cli/-/cli-0.54.3.tgz", + "integrity": "sha512-IZkza5EWYVgYC5ZbJyFw7xUpoucpvaF/lW2pqXcjywONadq18TWwvu+LPExOZ37ycHE0uid50tzfN4oqgtJIXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@rollup/pluginutils": "^5.0.2", + "@unocss/config": "0.54.3", + "@unocss/core": "0.54.3", + "@unocss/preset-uno": "0.54.3", + "cac": "^6.7.14", + "chokidar": "^3.5.3", + "colorette": "^2.0.20", + "consola": "^3.2.3", + "fast-glob": "^3.3.1", + "magic-string": "^0.30.2", + "pathe": "^1.1.1", + "perfect-debounce": "^1.0.0" + }, + "bin": { + "unocss": "bin/unocss.mjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/config": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/config/-/config-0.54.3.tgz", + "integrity": "sha512-afyJTtYZxq0N5ZpFlVcQfwVzDZjyKrHS/gL0SrXRBfj0W3s2FuPeDDMC6QOFLUwKH58snI6bzzE7ao7kLTRecA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3", + "unconfig": "^0.3.10" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/core": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/core/-/core-0.54.3.tgz", + "integrity": "sha512-XAVfnq6hO7Zaa5VnsFKi1KQKgUS3jOhZYgdedIgJVx2WkmkpM/UQ2lummIlB27uHp0o+Wzf5kueKlMS3q+2lvA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/extractor-arbitrary-variants": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/extractor-arbitrary-variants/-/extractor-arbitrary-variants-0.54.3.tgz", + "integrity": "sha512-Vab8pb1EQZ4KO63N/w2nvean8DlAhTurupmNWEqLzj7XsfH6IMJiUyonYXxTUKWY8oLsHEh3OOTuLMv7NV7bSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/inspector": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/inspector/-/inspector-0.54.3.tgz", + "integrity": "sha512-1DyYr1Oe/OT4u7CH6Zrga1IIG41r3gJnvTA0I49QcGCE5rRR1lk/RFX4Js1exlRsWfqTCue9c1J32K5ymyCn1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "gzip-size": "^6.0.0", + "sirv": "^2.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/postcss": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/postcss/-/postcss-0.54.3.tgz", + "integrity": "sha512-LPVSa+euzeh9Nzsb/IJI2ZeW0SUeifn0dRmPtB3bTOHkVeVba8IFWPzU3grC+m2tU9ysiTLs/9U2tLObljfC3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/config": "0.54.3", + "@unocss/core": "0.54.3", + "css-tree": "^2.3.1", + "fast-glob": "^3.3.1", + "magic-string": "^0.30.2", + "postcss": "^8.4.27" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/@unocss/preset-attributify": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/preset-attributify/-/preset-attributify-0.54.3.tgz", + "integrity": "sha512-DuxNOCByPfboDXN/80RxiD3O5yWJwzQRsIGlHNufs6HEj+hET6ArSBZuxph7gnfSdZUZxi9YonSZjop61iC5TA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-icons": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/preset-icons/-/preset-icons-0.54.3.tgz", + "integrity": "sha512-RIZ9gewKqKuvnDvi66rHzBShiWjUPS4I1JchKMkofX8h4uJniPtQFb2Yy5YRzm0YL5eZPWjLQK5uHiNN+EhMkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@iconify/utils": "^2.1.7", + "@unocss/core": "0.54.3", + "ofetch": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-mini": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/preset-mini/-/preset-mini-0.54.3.tgz", + "integrity": "sha512-HgjoAn3TwO0jimNPoEF5q8mOHUlHChKfIdTdPUGg4zIfFK+lPBSsmTJFnTRNx/Hr2YkaiTV2C9pDBRFazw/zwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3", + "@unocss/extractor-arbitrary-variants": "0.54.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-tagify": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/preset-tagify/-/preset-tagify-0.54.3.tgz", + "integrity": "sha512-5151PeVaZ3EqGR6Xla2KPtsh/B+f7ghC83Tv9e4TPnRisNteWsj4CzwvqQoKv9xWeHVBkvhaXl5msv/mbtrKEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-typography": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/preset-typography/-/preset-typography-0.54.3.tgz", + "integrity": "sha512-Fm6d9huYax0f0L48we7QER5+XCicp1O9CvP+10AwXgizBwrqmXo+BFafodc65QPOAnGUixmGpJjSgm6kN/76Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3", + "@unocss/preset-mini": "0.54.3" + } + }, + "node_modules/@unocss/preset-uno": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/preset-uno/-/preset-uno-0.54.3.tgz", + "integrity": "sha512-uz1uh/LYQ9lXkGOrBMx+aBtwphl9GA1u1aooMuP4bxXqsaA/jlcoJGb1PD+y2b4aDoY27Vc/IhLVxwMVd42Emw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3", + "@unocss/preset-mini": "0.54.3", + "@unocss/preset-wind": "0.54.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-web-fonts": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/preset-web-fonts/-/preset-web-fonts-0.54.3.tgz", + "integrity": "sha512-z8hmt1voo8UpWJvPFiNR+y83gXuN+/l1l4SHZ/yiVQtSsO7R/po6p0qTb0t1hNlk4tUcAz8Olq8ArmU3x8QyJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3", + "ofetch": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-wind": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/preset-wind/-/preset-wind-0.54.3.tgz", + "integrity": "sha512-il9OtJ9WWQBFLXRJBZc9ItMh5ILC5ZML+fnRpjkQ2y+tq29/eQzw23WusYuSWpS5fT/IwiGKDBGPteRx7ZZwYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3", + "@unocss/preset-mini": "0.54.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/reset": { + "version": "66.0.0", + "resolved": "https://registry.npmjs.org/@unocss/reset/-/reset-66.0.0.tgz", + "integrity": "sha512-YLFz/5yT7mFJC8JSmIUA5+bS3CBCJbtztOw+8rWzjQr/BEVSGuihWUUpI2Df6VVxXIXxKanZR6mIl59yvf+GEA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/scope": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/scope/-/scope-0.54.3.tgz", + "integrity": "sha512-bR9TQ4430KgjGoGKM6SRO41tbntbC3z/8xIjJ7W1VVHo7pxnfdqBI7cDqL5kF3bIDdhszVwpsCMsc1PiURPu6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@unocss/transformer-attributify-jsx": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-0.54.3.tgz", + "integrity": "sha512-3JdoFXpT5QLf3TdLxt28iwmjMmeujjsnZsT7ZP9mN83h/Dka+mUQHhQPMwSzSvNUursXMamiqRximC8PwozJng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-attributify-jsx-babel": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx-babel/-/transformer-attributify-jsx-babel-0.54.3.tgz", + "integrity": "sha512-M9c3Q1Xik/+P1l4db/g/PIoRrfwlara9KFz3JPSNcortF8I5OFf6vDV0JMWTVvv/PSy2sgMbihTUF97eYOPVpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-compile-class": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/transformer-compile-class/-/transformer-compile-class-0.54.3.tgz", + "integrity": "sha512-KgkMmr9TEd/SIrniGKull/iH2dCAf88ozVWoMuyay/DqUCfAFq5vlQ+2lmhSv3mANS0BIVQwP4lONmrw38iQVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-directives": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/transformer-directives/-/transformer-directives-0.54.3.tgz", + "integrity": "sha512-0aowyhk9pL2ZQ8avb6Yr21w8Fe3m/55j7meulXPyLxAbXw5qatRx37TBeKVJ9BbvnfBQtj/49z9jXj2bXNpoMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3", + "css-tree": "^2.3.1" + } + }, + "node_modules/@unocss/transformer-variant-group": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/transformer-variant-group/-/transformer-variant-group-0.54.3.tgz", + "integrity": "sha512-4YZSi2LBTvrvPKDFZdb7rmqAlFr+hf4f92MfmPDRPwFp/qvJeO2UoBUCkiZoTjLHzCykHuLEJUiXgr3QNO2D1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/core": "0.54.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/vite": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/vite/-/vite-0.54.3.tgz", + "integrity": "sha512-UxVo7WQpTAr5uHyjLKW1xs5kcecctUXsPApUChFxQwHRUeMT1gnBftd0r7dtSwdsdELClbIUgRVCrpFAPy2Y3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@rollup/pluginutils": "^5.0.2", + "@unocss/config": "0.54.3", + "@unocss/core": "0.54.3", + "@unocss/inspector": "0.54.3", + "@unocss/scope": "0.54.3", + "@unocss/transformer-directives": "0.54.3", + "chokidar": "^3.5.3", + "fast-glob": "^3.3.1", + "magic-string": "^0.30.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", @@ -250,6 +1446,16 @@ "node": ">=8" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/camelcase-css": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", @@ -313,6 +1519,13 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -322,11 +1535,29 @@ "node": ">= 6" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", "dev": true, + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.0.tgz", + "integrity": "sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -346,6 +1577,20 @@ "fastparse": "^1.1.2" } }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -386,6 +1631,52 @@ "url": "https://opencollective.com/daisyui" } }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "dev": true, + "license": "MIT" + }, + "node_modules/destr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -398,6 +1689,13 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true, + "license": "MIT" + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -410,6 +1708,52 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -539,6 +1883,35 @@ "node": ">=10.13.0" } }, + "node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/hasown": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", @@ -551,6 +1924,13 @@ "node": ">= 0.4" } }, + "node_modules/immutable": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "dev": true, + "license": "MIT" + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -649,6 +2029,13 @@ "jiti": "bin/jiti.js" } }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, "node_modules/lilconfig": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", @@ -668,6 +2055,23 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/local-pkg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.0.0.tgz", + "integrity": "sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.3", + "pkg-types": "^1.3.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/lodash.castarray": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", @@ -695,6 +2099,23 @@ "node": "14 || >=16.14" } }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -751,6 +2172,43 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, + "node_modules/mlly/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -781,6 +2239,21 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-fetch-native": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.6.tgz", + "integrity": "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==", + "dev": true, + "license": "MIT" + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -808,6 +2281,25 @@ "node": ">= 6" } }, + "node_modules/ofetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", + "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==", + "dev": true, + "license": "MIT", + "dependencies": { + "destr": "^2.0.3", + "node-fetch-native": "^1.6.4", + "ufo": "^1.5.4" + } + }, + "node_modules/package-manager-detector": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.9.tgz", + "integrity": "sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==", + "dev": true, + "license": "MIT" + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -839,6 +2331,20 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -876,10 +2382,29 @@ "node": ">= 6" } }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/pkg-types/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "dev": true, "funding": [ { @@ -1103,6 +2628,24 @@ "node": ">=0.10.0" } }, + "node_modules/rollup": { + "version": "3.29.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -1126,6 +2669,57 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/sass": { + "version": "1.85.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.85.0.tgz", + "integrity": "sha512-3ToiC1xZ1Y8aU7+CkgCI/tqyuPXEmYGJXO7H4uqp0xkLXUqp88rQQ4j1HmP37xSJLbCJPaIiv+cT1y+grssrww==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -1159,6 +2753,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -1372,6 +2981,13 @@ "node": ">=0.8" } }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -1385,18 +3001,184 @@ "node": ">=8.0" } }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unconfig": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/unconfig/-/unconfig-0.3.13.tgz", + "integrity": "sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.7", + "defu": "^6.1.4", + "jiti": "^1.21.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/unconfig/node_modules/@antfu/utils": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz", + "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/unocss": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/unocss/-/unocss-0.54.3.tgz", + "integrity": "sha512-uaoCKFigRkqceLmBrtWhLqQR6D6NyBAtSFVUnM1m57BSqA0EwAFmBsgoynzAmZRTQQFsPrBzKQjEmaCUTyUd9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@unocss/astro": "0.54.3", + "@unocss/cli": "0.54.3", + "@unocss/core": "0.54.3", + "@unocss/extractor-arbitrary-variants": "0.54.3", + "@unocss/postcss": "0.54.3", + "@unocss/preset-attributify": "0.54.3", + "@unocss/preset-icons": "0.54.3", + "@unocss/preset-mini": "0.54.3", + "@unocss/preset-tagify": "0.54.3", + "@unocss/preset-typography": "0.54.3", + "@unocss/preset-uno": "0.54.3", + "@unocss/preset-web-fonts": "0.54.3", + "@unocss/preset-wind": "0.54.3", + "@unocss/reset": "0.54.3", + "@unocss/transformer-attributify-jsx": "0.54.3", + "@unocss/transformer-attributify-jsx-babel": "0.54.3", + "@unocss/transformer-compile-class": "0.54.3", + "@unocss/transformer-directives": "0.54.3", + "@unocss/transformer-variant-group": "0.54.3", + "@unocss/vite": "0.54.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@unocss/webpack": "0.54.3" + }, + "peerDependenciesMeta": { + "@unocss/webpack": { + "optional": true + } + } + }, + "node_modules/unocss/node_modules/@unocss/reset": { + "version": "0.54.3", + "resolved": "https://registry.npmjs.org/@unocss/reset/-/reset-0.54.3.tgz", + "integrity": "sha512-5FjdfZKvwJ0JrUr2rVWnZzHfg7jOCMaJjD93VvCdFIr8Q9dChSzuZoWGCcx6EEsZm5zEfpB7+qwwz6Y2lN9vxg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, + "node_modules/vite": { + "version": "4.5.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.9.tgz", + "integrity": "sha512-qK9W4xjgD3gXbC0NmdNFFnVFLMWSNiR3swj957yutwzzN16xF/E7nmtAyp1rT9hviDroQANjE4HK3H4WqWdFtw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -1504,10 +3286,11 @@ } }, "node_modules/yaml": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.0.tgz", - "integrity": "sha512-j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "dev": true, + "license": "ISC", "bin": { "yaml": "bin.mjs" }, diff --git a/package.json b/package.json index 8514235..80bb7ef 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,23 @@ "version": "0.1.1", "author": "Tristan Druyen ", "license": "AGPL", + "scripts": { + "watch-unocss": "cd ./darm_test && unocss --watch", + "watch-bundle": "npm run build-bundle", + "build-unocss": "cd ./darm_test && unocss", + "build-bundle": "cd ./darm_test && sass -scompressed style/main.scss > public/styles.min.css", + "watch-all": "npm run watch-unocss & npm run watch-bundle", + "build-all": "npm run build-unocss & npm run build-bundle" + }, "devDependencies": { + "@starfederation/datastar": "^1.0.0-beta.7", "@tailwindcss/forms": "0.5.7", "@tailwindcss/typography": "0.5.10", + "@unocss/reset": "^66.0.0", "daisyui": "4.7.3", - "tailwindcss": "3.4.17" + "sass": "^1.85.0", + "tailwindcss": "3.4.17", + "typescript": "^5.7.3", + "unocss": "^0.54.3" } } diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 0000000..7b821b6 --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,23 @@ + +edition = "2021" +max_width = 100 +tab_spaces = 4 + + +# unstable +format_macro_bodies = true +format_macro_matchers = true +format_strings = true +group_imports = "StdExternalCrate" +imports_granularity = "Crate" +imports_layout = "HorizontalVertical" +overflow_delimited_expr = true +reorder_impl_items = true +struct_field_align_threshold = 4 +struct_lit_single_line = false +trailing_comma = "Vertical" +unstable_features = true +use_field_init_shorthand = true +use_try_shorthand = true +wrap_comments = false +# format_brace_macros = true