commit 684b057b2783bdbb7135d85362271f1bd4679cc4 Author: Arthur Belleville Date: Sat Jan 18 22:40:32 2025 +0100 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6acaf43 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# air +tmp diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..bdef820 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["svelte.svelte-vscode"] +} diff --git a/backend/.air.toml b/backend/.air.toml new file mode 100644 index 0000000..a7b49d9 --- /dev/null +++ b/backend/.air.toml @@ -0,0 +1,52 @@ +root = "." +testdata_dir = "testdata" +tmp_dir = "tmp" + +[build] +args_bin = [] +bin = "./tmp/main" +cmd = "go build -o tmp/main" +delay = 1000 +exclude_dir = ["assets", "tmp", "vendor", "testdata", "ui"] +exclude_file = [] +exclude_regex = ["_test.go"] +exclude_unchanged = false +follow_symlink = false +full_bin = "" +include_dir = [] +include_ext = ["go", "tpl", "tmpl", "html"] +include_file = [] +kill_delay = "0s" +log = "build-errors.log" +poll = false +poll_interval = 0 +post_cmd = [] +pre_cmd = [] +rerun = false +rerun_delay = 500 +send_interrupt = false +stop_on_error = false + +[color] +app = "" +build = "yellow" +main = "magenta" +runner = "green" +watcher = "cyan" + +[log] +main_only = false +silent = false +time = false + +[misc] +clean_on_exit = true + +[proxy] +app_port = 0 +enabled = false +proxy_port = 0 + +[screen] +clear_on_rebuild = false +keep_scroll = true diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..9e193d9 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,30 @@ +FROM golang:alpine + +# Set necessary environmet variables needed for our image +ENV GO111MODULE=on \ + CGO_ENABLED=0 \ + GOOS=linux \ + GOARCH=amd64 + +# Move to working directory /build +WORKDIR /build + +# Copy the code from /app to the build folder into the container +COPY . . + +# Configure the build (go.mod and go.sum are already copied with prior step) +RUN go mod download + +# Build the application +RUN go build -o main . + +WORKDIR /app + +# Copy binary from build to main folder +RUN cp /build/main . + +# Export necessary port +EXPOSE 8080 + +# Command to run when starting the container +CMD ["/app/main"] \ No newline at end of file diff --git a/backend/go.mod b/backend/go.mod new file mode 100644 index 0000000..c9bedd6 --- /dev/null +++ b/backend/go.mod @@ -0,0 +1,15 @@ +module xtablo-backend + +go 1.23.4 + +require ( + github.com/go-chi/chi/v5 v5.2.0 + github.com/olivere/vite v0.0.0-20241125063354-5c2fc1f1ddc2 +) + +require ( + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/rs/zerolog v1.33.0 + golang.org/x/sys v0.29.0 // indirect +) diff --git a/backend/go.sum b/backend/go.sum new file mode 100644 index 0000000..9b9e453 --- /dev/null +++ b/backend/go.sum @@ -0,0 +1,25 @@ +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/go-chi/chi/v5 v5.2.0 h1:Aj1EtB0qR2Rdo2dG4O94RIU35w2lvQSj6BRA4+qwFL0= +github.com/go-chi/chi/v5 v5.2.0/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/olivere/vite v0.0.0-20241125063354-5c2fc1f1ddc2 h1:yrFRHF77HTyASeJG/11+Zflj7Z5OVT+oIkeUc/EIwpI= +github.com/olivere/vite v0.0.0-20241125063354-5c2fc1f1ddc2/go.mod h1:GcOsJRAsACfTzrwnVKPHHQb2IpqJo2o7OEGht882nuA= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= diff --git a/backend/internal/frontend/dist/.vite/manifest.json b/backend/internal/frontend/dist/.vite/manifest.json new file mode 100644 index 0000000..8eb9c25 --- /dev/null +++ b/backend/internal/frontend/dist/.vite/manifest.json @@ -0,0 +1,11 @@ +{ + "src/main.ts": { + "file": "assets/main-B7j1Bbjq.js", + "name": "main", + "src": "src/main.ts", + "isEntry": true, + "css": [ + "assets/main-D3T09nt8.css" + ] + } +} \ No newline at end of file diff --git a/backend/internal/frontend/dist/assets/main-B7j1Bbjq.js b/backend/internal/frontend/dist/assets/main-B7j1Bbjq.js new file mode 100644 index 0000000..07e4966 --- /dev/null +++ b/backend/internal/frontend/dist/assets/main-B7j1Bbjq.js @@ -0,0 +1,5 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();const pr=!1;var Kt=Array.isArray,Rn=Array.from,wr=Object.defineProperty,$e=Object.getOwnPropertyDescriptor,Ei=Object.getOwnPropertyDescriptors,yr=Object.prototype,xr=Array.prototype,Dn=Object.getPrototypeOf;function Lt(t){return typeof t=="function"}const at=()=>{};function kr(t){return t()}function Gt(t){for(var e=0;e=g.v&&J(g,y+1)}ii(s)}return!0},ownKeys(f){k(s);var d=Reflect.ownKeys(f).filter(u=>{var h=r.get(u);return h===void 0||h.v!==Ee});for(var[l,o]of r)o.v!==Ee&&!(l in f)&&d.push(l);return d},setPrototypeOf(){Ar()}})}function ii(t,e=1){J(t,t.v+e)}var ri,Di,Mi;function Br(){if(ri===void 0){ri=window;var t=Element.prototype,e=Node.prototype;Di=$e(e,"firstChild").get,Mi=$e(e,"nextSibling").get,t.__click=void 0,t.__className="",t.__attributes=null,t.__styles=null,t.__e=void 0,Text.prototype.__t=void 0}}function Wn(t=""){return document.createTextNode(t)}function kt(t){return Di.call(t)}function ln(t){return Mi.call(t)}function L(t,e){return kt(t)}function ce(t,e){{var n=kt(t);return n instanceof Comment&&n.data===""?ln(n):n}}function A(t,e=1,n=!1){let i=t;for(;e--;)i=ln(i);return i}function Jr(t){t.textContent=""}function $t(t){var e=Ze|lt;X===null?e|=mt:X.f|=Oi;var n=te!==null&&te.f&Ze?te:null;const i={children:null,ctx:H,deps:null,equals:Ci,f:e,fn:t,reactions:null,v:null,version:0,parent:n??X};return n!==null&&(n.children??(n.children=[])).push(i),i}function At(t){const e=$t(t);return e.equals=Zn,e}function Zi(t){var e=t.children;if(e!==null){t.children=null;for(var n=0;nnew Promise(i=>{n.outro?Dt(e,()=>{ct(e),i(void 0)}):(ct(e),i(void 0))})}function Fn(t){return Pt(Pi,t,!1)}function ne(t,e){var n=H,i={effect:null,ran:!1};n.l.r1.push(i),i.effect=Ot(()=>{t(),!i.ran&&(i.ran=!0,J(n.l.r2,!0),ut(e))})}function Ne(){var t=H;Ot(()=>{if(k(t.l.r2)){for(var e of t.l.r1){var n=e.effect;n.f&Ie&&Ke(n,St),zt(n)&&Vt(n),e.ran=!1}t.l.r2.v=!1}})}function Ot(t){return Pt(Ft,t,!0)}function Z(t){return un(t)}function un(t,e=0){return Pt(Ft|Mn|e,t,!0)}function It(t,e=!0){return Pt(Ft|We,t,!0,e)}function Ui(t){var e=t.teardown;if(e!==null){const n=Xn,i=te;oi(!0),qe(null);try{e.call(null)}finally{oi(n),qe(i)}}}function Vi(t){var e=t.deriveds;if(e!==null){t.deriveds=null;for(var n=0;n{ct(t),e&&e()})}function Hi(t,e){var n=t.length;if(n>0){var i=()=>--n||e();for(var r of t)r.out(i)}else e()}function Un(t,e,n){if(!(t.f&Ye)){if(t.f^=Ye,t.transitions!==null)for(const s of t.transitions)(s.is_global||n)&&e.push(s);for(var i=t.first;i!==null;){var r=i.next,a=(i.f&on)!==0||(i.f&We)!==0;Un(i,e,a?n:!1),i=r}}}function en(t){qi(t,!0)}function qi(t,e){if(t.f&Ye){zt(t)&&Vt(t),t.f^=Ye;for(var n=t.first;n!==null;){var i=n.next,r=(n.f&on)!==0||(n.f&We)!==0;qi(n,r?e:!1),n=i}if(t.transitions!==null)for(const a of t.transitions)(a.is_global||e)&&a.in()}}let En=!1,Pn=[];function na(){En=!1;const t=Pn.slice();Pn=[],Gt(t)}function Vn(t){En||(En=!0,queueMicrotask(na)),Pn.push(t)}function dn(t){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}let Bt=!1,tn=!1,nn=null,xt=!1,Xn=!1;function ai(t){xt=t}function oi(t){Xn=t}let On=[],Rt=0;let te=null;function qe(t){te=t}let X=null;function je(t){X=t}let He=null;function ia(t){He=t}let ge=null,Pe=0,st=null;function ra(t){st=t}let Bi=1,vt=!1,H=null;function Ji(){return++Bi}function fn(){return!Et||H!==null&&H.l===null}function zt(t){var s,c;var e=t.f;if(e<)return!0;if(e&St){var n=t.deps,i=(e&mt)!==0;if(n!==null){var r;if(e&Qt){for(r=0;rt.version)return!0}}(!i||X!==null&&!vt)&&Ke(t,Ie)}return!1}function aa(t,e){for(var n=e;n!==null;){if(n.f&Sn)try{n.fn(t);return}catch{n.f^=Sn}n=n.parent}throw Bt=!1,t}function oa(t){return(t.f&Tt)===0&&(t.parent===null||(t.parent.f&Sn)===0)}function hn(t,e,n,i){if(Bt){if(n===null&&(Bt=!1),oa(e))throw t;return}n!==null&&(Bt=!0);{aa(t,e);return}}function Gi(t){var u;var e=ge,n=Pe,i=st,r=te,a=vt,s=He,c=H,f=t.f;ge=null,Pe=0,st=null,te=f&(We|Ut)?null:t,vt=!xt&&(f&mt)!==0,He=null,H=t.ctx;try{var d=(0,t.fn)(),l=t.deps;if(ge!==null){var o;if(Mt(t,Pe),l!==null&&Pe>0)for(l.length=Pe+ge.length,o=0;o1e3){Rt=0;try{Cr()}catch(t){if(nn!==null)hn(t,nn,null);else throw t}}Rt++}function ca(t){var e=t.length;if(e!==0){la();var n=xt;xt=!0;try{for(var i=0;i1001)return;const t=On;On=[],ca(t),tn||(Rt=0,nn=null)}function vn(t){tn||(tn=!0,queueMicrotask(da)),nn=t;for(var e=t;e.parent!==null;){e=e.parent;var n=e.f;if(n&(Ut|We)){if(!(n&Ie))return;e.f^=Ie}}On.push(e)}function Qi(t,e){var n=t.first,i=[];e:for(;n!==null;){var r=n.f,a=(r&We)!==0,s=a&&(r&Ie)!==0,c=n.next;if(!s&&!(r&Ye))if(r&Ft){if(a)n.f^=Ie;else try{zt(n)&&Vt(n)}catch(o){hn(o,n,null,n.ctx)}var f=n.first;if(f!==null){n=f;continue}}else r&Pi&&i.push(n);if(c===null){let o=n.parent;for(;o!==null;){if(t===o)break e;var d=o.next;if(d!==null){n=d;continue e}o=o.parent}}n=c}for(var l=0;l{document.activeElement===n&&t.focus()})}}let li=!1;function ka(){li||(li=!0,document.addEventListener("reset",t=>{Promise.resolve().then(()=>{var e;if(!t.defaultPrevented)for(const n of t.target.elements)(e=n.__on_r)==null||e.call(n)})},{capture:!0}))}function er(t){var e=te,n=X;qe(null),je(null);try{return t()}finally{qe(e),je(n)}}function Ia(t,e,n,i=n){t.addEventListener(e,()=>er(n));const r=t.__on_r;r?t.__on_r=()=>{r(),i(!0)}:t.__on_r=()=>i(!0),ka()}const tr=new Set,Cn=new Set;function nr(t,e,n,i){function r(a){if(i.capture||Nt.call(e,a),!a.cancelBubble)return er(()=>n.call(this,a))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?Vn(()=>{e.addEventListener(t,r,i)}):e.addEventListener(t,r,i),r}function z(t,e,n,i,r){var a={capture:i,passive:r},s=nr(t,e,n,a);(e===document.body||e===window||e===document)&&cn(()=>{e.removeEventListener(t,s,a)})}function Sa(t){for(var e=0;e{throw _});throw u}}finally{t.__root=e,delete t.currentTarget,qe(l),je(o)}}}function ir(t){var e=document.createElement("template");return e.innerHTML=t,e.content}function Zt(t,e){var n=X;n.nodes_start===null&&(n.nodes_start=t,n.nodes_end=e)}function U(t,e){var n=(e&Yr)!==0,i=(e&Hr)!==0,r,a=!t.startsWith("");return()=>{r===void 0&&(r=ir(a?t:""+t),n||(r=kt(r)));var s=i?document.importNode(r,!0):r.cloneNode(!0);if(n){var c=kt(s),f=s.lastChild;Zt(c,f)}else Zt(s,s);return s}}function Ta(t,e){var n=U(t,e);return()=>Ea(n())}function Xt(t,e,n="svg"){var i=!t.startsWith(""),r=`<${n}>${i?t:""+t}`,a;return()=>{if(!a){var s=ir(r),c=kt(s);a=kt(c)}var f=a.cloneNode(!0);return Zt(f,f),f}}function Ea(t){const e=t.nodeType===11,n=t.tagName==="SCRIPT"?[t]:t.querySelectorAll("script"),i=X;for(const a of n){const s=document.createElement("script");for(var r of a.attributes)s.setAttribute(r.name,r.value);s.textContent=a.textContent,(e?t.firstChild===a:t===a)&&(i.nodes_start=s),(e?t.lastChild===a:t===a)&&(i.nodes_end=s),a.replaceWith(s)}return t}function Me(t=""){{var e=Wn(t+"");return Zt(e,e),e}}function ve(){var t=document.createDocumentFragment(),e=document.createComment(""),n=Wn();return t.append(e,n),Zt(e,n),t}function E(t,e){t!==null&&t.before(e)}function ae(t,e){var n=e==null?"":typeof e=="object"?e+"":e;n!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=n,t.nodeValue=n==null?"":n+"")}function Pa(t,e){return Oa(t,e)}const gt=new Map;function Oa(t,{target:e,anchor:n,props:i={},events:r,context:a,intro:s=!0}){Br();var c=new Set,f=o=>{for(var u=0;u{var o=n??e.appendChild(Wn());return It(()=>{if(a){_e({});var u=H;u.c=a}r&&(i.$$events=r),d=t(o,i)||{},a&&me()}),()=>{var v;for(var u of c){e.removeEventListener(u,Nt);var h=gt.get(u);--h===0?(document.removeEventListener(u,Nt),gt.delete(u)):gt.set(u,h)}Cn.delete(f),o!==n&&((v=o.parentNode)==null||v.removeChild(o))}});return za.set(d,l),d}let za=new WeakMap;function W(t,e,n=!1){var i=t,r=null,a=null,s=Ee,c=n?on:0,f=!1;const d=(o,u=!0)=>{f=!0,l(u,o)},l=(o,u)=>{s!==(s=o)&&(s?(r?en(r):u&&(r=It(()=>u(i))),a&&Dt(a,()=>{a=null})):(a?en(a):u&&(a=It(()=>u(i))),r&&Dt(r,()=>{r=null})))};un(()=>{f=!1,e(d),f||l(null,null)},c)}function Ca(t,e,n,i){for(var r=[],a=e.length,s=0;s0&&r.length===0&&n!==null;if(c){var f=n.parentNode;Jr(f),f.append(n),i.clear(),it(t,e[0].prev,e[a-1].next)}Hi(r,()=>{for(var d=0;d{var l=n(),o=Kt(l)?l:l==null?[]:Rn(l),u=o.length;if(!(d&&u===0)){d=u===0;{var h=te;ja(o,c,s,r,e,(h.f&Ye)!==0,i)}a!==null&&(u===0?f?en(f):f=It(()=>a(s)):f!==null&&Dt(f,()=>{f=null})),n()}})}function ja(t,e,n,i,r,a,s,c){var f=t.length,d=e.items,l=e.first,o=l,u,h=null,v=[],m=[],x,g,y,_;for(_=0;_0){var Y=null;Ca(e,C,Y,d)}}X.first=e.first&&e.first.e,X.last=h&&h.e}function Na(t,e,n,i){Ni(t.v,e),t.i=n}function Aa(t,e,n,i,r,a,s,c,f,d){var l=(f&Zr)!==0,o=(f&Kr)===0,u=l?o?sn(r):Oe(r):r,h=f&Wr?Oe(s):s,v={i:h,v:u,k:a,a:null,e:null,prev:n,next:i};try{return v.e=It(()=>c(t,u,h),Ri),v.e.prev=n&&n.e,v.e.next=i&&i.e,n===null?e.first=v:(n.next=v,n.e.next=v.e),i!==null&&(i.prev=v,i.e.prev=v.e),v}finally{}}function ci(t,e,n){for(var i=t.next?t.next.e.nodes_start:n,r=e?e.e.nodes_start:n,a=t.e.nodes_start;a!==i;){var s=ln(a);r.before(a),a=s}}function it(t,e,n){e===null?t.first=n:(e.next=n,e.e.next=n&&n.e),n!==null&&(n.prev=e,n.e.prev=e&&e.e)}function he(t,e,n,i,r){var c;var a=(c=e.$$slots)==null?void 0:c[n],s=!1;a===!0&&(a=e[n==="default"?"children":n],s=!0),a===void 0?r!==null&&r(t):a(t,s?()=>i:i)}function Yn(t){const e={};t.children&&(e.default=!0);for(const n in t.$$slots)e[n]=!0;return e}function an(t,e,n){var i=t,r,a;un(()=>{r!==(r=e())&&(a&&(Dt(a),a=null),r&&(a=It(()=>n(i,r))))},on)}function rr(t){var e,n,i="";if(typeof t=="string"||typeof t=="number")i+=t;else if(typeof t=="object")if(Array.isArray(t)){var r=t.length;for(e=0;e{var a=r?t.defaultValue:t.value;if(a=gn(t)?pn(a):a,n(a),i&&a!==(a=e())){var s=t.selectionStart,c=t.selectionEnd;t.value=a??"",c!==null&&(t.selectionStart=s,t.selectionEnd=Math.min(c,t.value.length))}}),ut(e)==null&&t.value&&n(gn(t)?pn(t.value):t.value),Ot(()=>{var r=e();gn(t)&&r===pn(t.value)||t.type==="date"&&!r&&!t.value||r!==t.value&&(t.value=r??"")})}function gn(t){var e=t.type;return e==="number"||e==="range"}function pn(t){return t===""?null:+t}function di(t,e,n){var i=$e(t,e);i&&i.set&&(t[e]=n,cn(()=>{t[e]=null}))}function fi(t,e){return t===e||(t==null?void 0:t[ot])===e}function et(t={},e,n,i){return Fn(()=>{var r,a;return Ot(()=>{r=a,a=[],ut(()=>{t!==n(...a)&&(e(t,...a),r&&fi(n(...r),t)&&e(null,...r))})}),()=>{Vn(()=>{a&&fi(n(...a),t)&&e(null,...a)})}}),t}function Ka(t,e,n,i,r){var a=()=>{i(n[t])};n.addEventListener(e,a),r?Ot(()=>{n[t]=r()}):a(),(n===document.body||n===window||n===document)&&cn(()=>{n.removeEventListener(e,a)})}function ye(t=!1){const e=H,n=e.l.u;if(!n)return;let i=()=>M(e.s);if(t){let r=0,a={};const s=$t(()=>{let c=!1;const f=e.s;for(const d in f)f[d]!==a[d]&&(a[d]=f[d],c=!0);return c&&r++,r});i=()=>k(s)}n.b.length&&$r(()=>{hi(e,i),Gt(n.b)}),Tn(()=>{const r=ut(()=>n.m.map(kr));return()=>{for(const a of r)typeof a=="function"&&a()}}),n.a.length&&Tn(()=>{hi(e,i),Gt(n.a)})}function hi(t,e){if(t.l.s)for(const n of t.l.s)k(n);e()}function T(t,e){var a;var n=(a=t.$$events)==null?void 0:a[e.type],i=Kt(n)?n.slice():n==null?[]:[n];for(var r of i)r.call(this,e)}function lr(t,e,n){if(t==null)return e(void 0),n&&n(void 0),at;const i=ut(()=>t.subscribe(e,n));return i.unsubscribe?()=>i.unsubscribe():i}let Yt=!1;function Ht(t,e,n){const i=n[e]??(n[e]={store:null,source:sn(void 0),unsubscribe:at});if(i.store!==t)if(i.unsubscribe(),i.store=t??null,t==null)i.source.v=void 0,i.unsubscribe=at;else{var r=!0;i.unsubscribe=lr(t,a=>{r?i.source.v=a:J(i.source,a)}),r=!1}return k(i.source)}function Fa(){const t={};return cn(()=>{for(var e in t)t[e].unsubscribe()}),t}function Ua(t){var e=Yt;try{return Yt=!1,[t(),Yt]}finally{Yt=e}}const Va={get(t,e){if(!t.exclude.includes(e))return k(t.version),e in t.special?t.special[e]():t.props[e]},set(t,e,n){return e in t.special||(t.special[e]=p({get[e](){return t.props[e]}},e,ji)),t.special[e](n),si(t.version),!0},getOwnPropertyDescriptor(t,e){if(!t.exclude.includes(e)&&e in t.props)return{enumerable:!0,configurable:!0,value:t.props[e]}},deleteProperty(t,e){return t.exclude.includes(e)||(t.exclude.push(e),si(t.version)),!0},has(t,e){return t.exclude.includes(e)?!1:e in t.props},ownKeys(t){return Reflect.ownKeys(t.props).filter(e=>!t.exclude.includes(e))}};function oe(t,e){return new Proxy({props:t,exclude:e,special:{},version:Oe(0)},Va)}const Xa={get(t,e){let n=t.props.length;for(;n--;){let i=t.props[n];if(Lt(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i)return i[e]}},set(t,e,n){let i=t.props.length;for(;i--;){let r=t.props[i];Lt(r)&&(r=r());const a=$e(r,e);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(t,e){let n=t.props.length;for(;n--;){let i=t.props[n];if(Lt(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i){const r=$e(i,e);return r&&!r.configurable&&(r.configurable=!0),r}}},has(t,e){if(e===ot||e===zi)return!1;for(let n of t.props)if(Lt(n)&&(n=n()),n!=null&&e in n)return!0;return!1},ownKeys(t){const e=[];for(let n of t.props){Lt(n)&&(n=n());for(const i in n)e.includes(i)||e.push(i)}return e}};function rt(...t){return new Proxy({props:t},Xa)}function vi(t){for(var e=X,n=X;e!==null&&!(e.f&(We|Ut));)e=e.parent;try{return je(e),t()}finally{je(n)}}function p(t,e,n,i){var F;var r=(n&Fr)!==0,a=!Et||(n&Ur)!==0,s=(n&Vr)!==0,c=(n&Xr)!==0,f=!1,d;s?[d,f]=Ua(()=>t[e]):d=t[e];var l=ot in t||zi in t,o=((F=$e(t,e))==null?void 0:F.set)??(l&&s&&e in t?N=>t[e]=N:void 0),u=i,h=!0,v=!1,m=()=>(v=!0,h&&(h=!1,c?u=ut(i):u=i),u);d===void 0&&i!==void 0&&(o&&a&&jr(),d=m(),o&&o(d));var x;if(a)x=()=>{var N=t[e];return N===void 0?m():(h=!0,v=!1,N)};else{var g=vi(()=>(r?$t:At)(()=>t[e]));g.f|=Sr,x=()=>{var N=k(g);return N!==void 0&&(u=void 0),N===void 0?u:N}}if(!(n&ji))return x;if(o){var y=t.$$legacy;return function(N,C){return arguments.length>0?((!a||!C||y||f)&&o(C?x():N),N):x()}}var _=!1,w=!1,P=sn(d),I=vi(()=>$t(()=>{var N=x(),C=k(P);return _?(_=!1,w=!0,C):(w=!1,P.v=N)}));return r||(I.equals=Zn),function(N,C){if(arguments.length>0){const R=C?k(I):a&&s?wt(N):N;return I.equals(R)||(_=!0,J(P,R),v&&u!==void 0&&(u=R),ut(()=>k(I))),N}return k(I)}}function qn(t){H===null&&dn(),Et&&H.l!==null?ur(H).m.push(t):Tn(()=>{const e=ut(t);if(typeof e=="function")return e})}function Ya(t,e,{bubbles:n=!1,cancelable:i=!1}={}){return new CustomEvent(t,{detail:e,bubbles:n,cancelable:i})}function Ct(){const t=H;return t===null&&dn(),(e,n,i)=>{var a;const r=(a=t.s.$$events)==null?void 0:a[e];if(r){const s=Kt(r)?r.slice():[r],c=Ya(e,n,i);for(const f of s)f.call(t.x,c);return!c.defaultPrevented}return!0}}function cr(t){H===null&&dn(),H.l===null&&Lr(),ur(H).a.push(t)}function ur(t){var e=t.l;return e.u??(e.u={a:[],b:[],m:[]})}const Ha="5";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Ha);Mr();const pt=[];function qa(t,e){return{subscribe:Qe(t,e).subscribe}}function Qe(t,e=at){let n=null;const i=new Set;function r(c){if(Li(t,c)&&(t=c,n)){const f=!pt.length;for(const d of i)d[1](),pt.push(d,t);if(f){for(let d=0;d{i.delete(d),i.size===0&&n&&(n(),n=null)}}return{set:r,update:a,subscribe:s}}function Ba(t,e,n){const i=!Array.isArray(t),r=i?[t]:t;if(!r.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const a=e.length<2;return qa(n,(s,c)=>{let f=!1;const d=[];let l=0,o=at;const u=()=>{if(l)return;o();const v=e(i?d[0]:d,s,c);a?s(v):o=typeof v=="function"?v:at},h=r.map((v,m)=>lr(v,x=>{d[m]=x,l&=~(1<{l|=1<"),Ga=U(" "),Qa=U("
"),$a=U(" ");function wn(t,e){const n=Yn(e),i=oe(e,["children","$$slots","$$events","$$legacy"]),r=oe(i,["size","href","inline","icon","disabled","visited","ref"]);_e(e,!1);let a=p(e,"size",8,void 0),s=p(e,"href",8,void 0),c=p(e,"inline",8,!1),f=p(e,"icon",8,void 0),d=p(e,"disabled",8,!1),l=p(e,"visited",8,!1),o=p(e,"ref",12,null);ye();var u=ve(),h=ce(u);{var v=x=>{var g=Ga();let y;var _=L(g);he(_,e,"default",{},null);var w=A(_,2);{var P=I=>{var F=Ja();b(F,"bx--link__icon",!0);var N=L(F);he(N,e,"icon",{},C=>{var R=ve(),Y=ce(R);an(Y,f,(se,q)=>{q(se,{})}),E(C,R)}),E(I,F)};W(w,I=>{!c()&&(n.icon||f())&&I(P)})}et(g,I=>o(I),()=>o()),Z(()=>{y=we(g,y,{role:"link","aria-disabled":"true",...r}),b(g,"bx--link",!0),b(g,"bx--link--disabled",d()),b(g,"bx--link--inline",c()),b(g,"bx--link--visited",l())}),z("click",g,function(I){T.call(this,e,I)}),z("mouseover",g,function(I){T.call(this,e,I)}),z("mouseenter",g,function(I){T.call(this,e,I)}),z("mouseleave",g,function(I){T.call(this,e,I)}),E(x,g)},m=x=>{var g=$a();let y;var _=L(g);he(_,e,"default",{},null);var w=A(_,2);{var P=I=>{var F=Qa();b(F,"bx--link__icon",!0);var N=L(F);he(N,e,"icon",{},C=>{var R=ve(),Y=ce(R);an(Y,f,(se,q)=>{q(se,{})}),E(C,R)}),E(I,F)};W(w,I=>{!c()&&(n.icon||f())&&I(P)})}et(g,I=>o(I),()=>o()),Z(()=>{y=we(g,y,{rel:r.target==="_blank"?"noopener noreferrer":void 0,href:s(),...r}),b(g,"bx--link",!0),b(g,"bx--link--disabled",d()),b(g,"bx--link--inline",c()),b(g,"bx--link--visited",l()),b(g,"bx--link--sm",a()==="sm"),b(g,"bx--link--lg",a()==="lg")}),z("click",g,function(I){T.call(this,e,I)}),z("mouseover",g,function(I){T.call(this,e,I)}),z("mouseenter",g,function(I){T.call(this,e,I)}),z("mouseleave",g,function(I){T.call(this,e,I)}),E(x,g)};W(h,x=>{d()?x(v):x(m,!1)})}E(t,u),me()}var eo=U(""),to=U("
");function no(t,e){const n=oe(e,["children","$$slots","$$events","$$legacy"]),i=oe(n,["href","size"]);_e(e,!1);let r=p(e,"href",8,void 0),a=p(e,"size",8,"default");ye();var s=ve(),c=ce(s);{var f=l=>{var o=eo();let u;o.textContent="",Z(()=>{u=we(o,u,{href:r(),rel:i.target==="_blank"?"noopener noreferrer":void 0,role:"button",...i}),b(o,"bx--skeleton",!0),b(o,"bx--btn",!0),b(o,"bx--btn--field",a()==="field"),b(o,"bx--btn--sm",a()==="small"),b(o,"bx--btn--lg",a()==="lg"),b(o,"bx--btn--xl",a()==="xl")}),z("click",o,function(h){T.call(this,e,h)}),z("focus",o,function(h){T.call(this,e,h)}),z("blur",o,function(h){T.call(this,e,h)}),z("mouseover",o,function(h){T.call(this,e,h)}),z("mouseenter",o,function(h){T.call(this,e,h)}),z("mouseleave",o,function(h){T.call(this,e,h)}),E(l,o)},d=l=>{var o=to();let u;Z(()=>{u=we(o,u,{...i}),b(o,"bx--skeleton",!0),b(o,"bx--btn",!0),b(o,"bx--btn--field",a()==="field"),b(o,"bx--btn--sm",a()==="small"),b(o,"bx--btn--lg",a()==="lg"),b(o,"bx--btn--xl",a()==="xl")}),z("click",o,function(h){T.call(this,e,h)}),z("focus",o,function(h){T.call(this,e,h)}),z("blur",o,function(h){T.call(this,e,h)}),z("mouseover",o,function(h){T.call(this,e,h)}),z("mouseenter",o,function(h){T.call(this,e,h)}),z("mouseleave",o,function(h){T.call(this,e,h)}),E(l,o)};W(c,l=>{r()?l(f):l(d,!1)})}E(t,s),me()}var io=U(" "),ro=U(" "),ao=U(" "),oo=U("");function so(t,e){const n=Yn(e),i=oe(e,["children","$$slots","$$events","$$legacy"]),r=oe(i,["kind","size","expressive","isSelected","icon","iconDescription","tooltipAlignment","tooltipPosition","as","skeleton","disabled","href","tabindex","type","ref"]);_e(e,!1);const a=le(),s=le(),c=le();let f=p(e,"kind",8,"primary"),d=p(e,"size",8,"default"),l=p(e,"expressive",8,!1),o=p(e,"isSelected",8,!1),u=p(e,"icon",8,void 0),h=p(e,"iconDescription",8,void 0),v=p(e,"tooltipAlignment",8,"center"),m=p(e,"tooltipPosition",8,"bottom"),x=p(e,"as",8,!1),g=p(e,"skeleton",8,!1),y=p(e,"disabled",8,!1),_=p(e,"href",8,void 0),w=p(e,"tabindex",8,"0"),P=p(e,"type",8,"button"),I=p(e,"ref",12,null);const F=rn("ComposedModal");ne(()=>M(I()),()=>{F&&I()&&F.declareRef(I())}),ne(()=>M(u()),()=>{J(a,(u()||n.icon)&&!n.default)}),ne(()=>M(h()),()=>{J(s,{"aria-hidden":"true",class:"bx--btn__icon","aria-label":h()})}),ne(()=>(M(_()),M(y()),M(P()),M(w()),k(a),M(f()),M(o()),M(r),M(l()),M(d()),M(m()),M(v())),()=>{J(c,{type:_()&&!y()?void 0:P(),tabindex:w(),disabled:y()===!0?!0:void 0,href:_(),"aria-pressed":k(a)&&f()==="ghost"&&!_()?o():void 0,...r,class:["bx--btn",l()&&"bx--btn--expressive",(d()==="small"&&!l()||d()==="sm"&&!l()||d()==="small"&&!l())&&"bx--btn--sm",d()==="field"&&!l()||d()==="md"&&!l()&&"bx--btn--md",d()==="field"&&"bx--btn--field",d()==="small"&&"bx--btn--sm",d()==="lg"&&"bx--btn--lg",d()==="xl"&&"bx--btn--xl",f()&&`bx--btn--${f()}`,y()&&"bx--btn--disabled",k(a)&&"bx--btn--icon-only",k(a)&&"bx--tooltip__trigger",k(a)&&"bx--tooltip--a11y",k(a)&&m()&&`bx--btn--icon-only--${m()}`,k(a)&&v()&&`bx--tooltip--align-${v()}`,k(a)&&o()&&f()==="ghost"&&"bx--btn--selected",r.class].filter(Boolean).join(" ")})}),Ne(),ye();var N=ve(),C=ce(N);{var R=se=>{var q=At(()=>k(a)&&"width: 3rem;");no(se,rt({get href(){return _()},get size(){return d()}},()=>r,{get style(){return k(q)},$$events:{click(ie){T.call(this,e,ie)},focus(ie){T.call(this,e,ie)},blur(ie){T.call(this,e,ie)},mouseover(ie){T.call(this,e,ie)},mouseenter(ie){T.call(this,e,ie)},mouseleave(ie){T.call(this,e,ie)}}}))},Y=se=>{var q=ve(),ie=ce(q);{var Ae=K=>{var be=ve(),tt=ce(be);he(tt,e,"default",{get props(){return k(c)}},null),E(K,be)},Se=K=>{var be=ve(),tt=ce(be);{var ze=Ce=>{var G=ro();let Fe;var Be=L(G);{var dt=O=>{var re=io();b(re,"bx--assistive-text",!0);var fe=L(re);Z(()=>ae(fe,h())),E(O,re)};W(Be,O=>{k(a)&&O(dt)})}var V=A(Be,2);he(V,e,"default",{},null);var $=A(V,2);{var de=O=>{var re=ve(),fe=ce(re);he(fe,e,"icon",rt({get style(){return k(a)?"margin-left: 0":void 0}},()=>k(s)),null),E(O,re)},Q=O=>{var re=ve(),fe=ce(re);{var Je=Te=>{var Re=ve(),De=ce(Re),Ge=At(()=>k(a)?"margin-left: 0":void 0);an(De,u,(Ue,ee)=>{ee(Ue,rt({get style(){return k(Ge)}},()=>k(s)))}),E(Te,Re)};W(fe,Te=>{u()&&Te(Je)},!0)}E(O,re)};W($,O=>{n.icon?O(de):O(Q,!1)})}et(G,O=>I(O),()=>I()),Z(()=>Fe=we(G,Fe,{...k(c)})),z("click",G,function(O){T.call(this,e,O)}),z("focus",G,function(O){T.call(this,e,O)}),z("blur",G,function(O){T.call(this,e,O)}),z("mouseover",G,function(O){T.call(this,e,O)}),z("mouseenter",G,function(O){T.call(this,e,O)}),z("mouseleave",G,function(O){T.call(this,e,O)}),E(Ce,G)},bt=Ce=>{var G=oo();let Fe;var Be=L(G);{var dt=O=>{var re=ao();b(re,"bx--assistive-text",!0);var fe=L(re);Z(()=>ae(fe,h())),E(O,re)};W(Be,O=>{k(a)&&O(dt)})}var V=A(Be,2);he(V,e,"default",{},null);var $=A(V,2);{var de=O=>{var re=ve(),fe=ce(re);he(fe,e,"icon",rt({get style(){return k(a)?"margin-left: 0":void 0}},()=>k(s)),null),E(O,re)},Q=O=>{var re=ve(),fe=ce(re);{var Je=Te=>{var Re=ve(),De=ce(Re),Ge=At(()=>k(a)?"margin-left: 0":void 0);an(De,u,(Ue,ee)=>{ee(Ue,rt({get style(){return k(Ge)}},()=>k(s)))}),E(Te,Re)};W(fe,Te=>{u()&&Te(Je)},!0)}E(O,re)};W($,O=>{n.icon?O(de):O(Q,!1)})}et(G,O=>I(O),()=>I()),Z(()=>Fe=we(G,Fe,{...k(c)})),z("click",G,function(O){T.call(this,e,O)}),z("focus",G,function(O){T.call(this,e,O)}),z("blur",G,function(O){T.call(this,e,O)}),z("mouseover",G,function(O){T.call(this,e,O)}),z("mouseenter",G,function(O){T.call(this,e,O)}),z("mouseleave",G,function(O){T.call(this,e,O)}),E(Ce,G)};W(tt,Ce=>{_()&&!y()?Ce(ze):Ce(bt,!1)},!0)}E(K,be)};W(ie,K=>{x()?K(Ae):K(Se,!1)},!0)}E(se,q)};W(C,se=>{g()?se(R):se(Y,!1)})}E(t,N),me()}var lo=U("
");function co(t,e){const n=oe(e,["children","$$slots","$$events","$$legacy"]),i=oe(n,[]);var r=lo();let a;var s=L(r);b(s,"bx--checkbox-label-text",!0),b(s,"bx--skeleton",!0),Z(()=>{a=we(r,a,{...i}),b(r,"bx--form-item",!0),b(r,"bx--checkbox-wrapper",!0),b(r,"bx--checkbox-label",!0)}),z("click",r,function(c){T.call(this,e,c)}),z("mouseover",r,function(c){T.call(this,e,c)}),z("mouseenter",r,function(c){T.call(this,e,c)}),z("mouseleave",r,function(c){T.call(this,e,c)}),E(t,r)}var uo=U('
');function fo(t,e){const n=oe(e,["children","$$slots","$$events","$$legacy"]),i=oe(n,["value","checked","group","indeterminate","skeleton","required","readonly","disabled","labelText","hideLabel","name","title","id","ref"]);_e(e,!1);const r=le(),a=le();let s=p(e,"value",8,""),c=p(e,"checked",12,!1),f=p(e,"group",12,void 0),d=p(e,"indeterminate",12,!1),l=p(e,"skeleton",8,!1),o=p(e,"required",8,!1),u=p(e,"readonly",8,!1),h=p(e,"disabled",8,!1),v=p(e,"labelText",8,""),m=p(e,"hideLabel",8,!1),x=p(e,"name",8,""),g=p(e,"title",12,void 0),y=p(e,"id",24,()=>"ccs-"+Math.random().toString(36)),_=p(e,"ref",12,null);const w=Ct();let P=le(null);ne(()=>M(f()),()=>{J(r,Array.isArray(f()))}),ne(()=>(M(c()),k(r),M(f()),M(s())),()=>{c(k(r)?f().includes(s()):c())}),ne(()=>M(c()),()=>{w("check",c())}),ne(()=>k(P),()=>{var R,Y;J(a,((R=k(P))==null?void 0:R.offsetWidth)<((Y=k(P))==null?void 0:Y.scrollWidth))}),ne(()=>(M(g()),k(a),k(P)),()=>{var R;g(!g()&&k(a)?(R=k(P))==null?void 0:R.innerText:g())}),Ne(),ye();var I=ve(),F=ce(I);{var N=R=>{co(R,rt(()=>i,{$$events:{click(Y){T.call(this,e,Y)},mouseover(Y){T.call(this,e,Y)},mouseenter(Y){T.call(this,e,Y)},mouseleave(Y){T.call(this,e,Y)}}}))},C=R=>{var Y=uo();let se;var q=L(Y);et(q,K=>_(K),()=>_());var ie=A(q,2),Ae=L(ie);b(Ae,"bx--checkbox-label-text",!0);var Se=L(Ae);he(Se,e,"labelText",{},K=>{var be=Me();Z(()=>ae(be,v())),E(K,be)}),et(Ae,K=>J(P,K),()=>k(P)),Z(()=>{se=we(Y,se,{...i}),b(Y,"bx--form-item",!0),b(Y,"bx--checkbox-wrapper",!0),Da(q,s()),or(q,c()),q.disabled=h(),B(q,"id",y()),B(q,"name",x()),q.required=o(),q.readOnly=u(),b(q,"bx--checkbox",!0),B(ie,"for",y()),B(ie,"title",g()),b(ie,"bx--checkbox-label",!0),b(Ae,"bx--visually-hidden",m())}),Ka("indeterminate","change",q,d,d),z("change",q,()=>{k(r)?f(f().includes(s())?f().filter(K=>K!==s()):[...f(),s()]):c(!c())}),z("change",q,function(K){T.call(this,e,K)}),z("focus",q,function(K){T.call(this,e,K)}),z("blur",q,function(K){T.call(this,e,K)}),z("click",Y,function(K){T.call(this,e,K)}),z("mouseover",Y,function(K){T.call(this,e,K)}),z("mouseenter",Y,function(K){T.call(this,e,K)}),z("mouseleave",Y,function(K){T.call(this,e,K)}),E(R,Y)};W(F,R=>{l()?R(N):R(C,!1)})}E(t,I),me()}var ho=U(" "),vo=Xt('');function jn(t,e){const n=oe(e,["children","$$slots","$$events","$$legacy"]),i=oe(n,["size","title"]);_e(e,!1);const r=le(),a=le();let s=p(e,"size",8,16),c=p(e,"title",8,void 0);ne(()=>(M(n),M(c())),()=>{J(r,n["aria-label"]||n["aria-labelledby"]||c())}),ne(()=>(k(r),M(n)),()=>{J(a,{"aria-hidden":k(r)?void 0:!0,role:k(r)?"img":void 0,focusable:Number(n.tabindex)===0?!0:void 0})}),Ne(),ye();var f=vo();let d;var l=L(f);{var o=u=>{var h=ho(),v=L(h);Z(()=>ae(v,c())),E(u,h)};W(l,u=>{c()&&u(o)})}Z(()=>d=we(f,d,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:s(),height:s(),...k(a),...i},void 0,!0)),E(t,f),me()}var _o=U(" "),mo=Xt('');function dr(t,e){const n=oe(e,["children","$$slots","$$events","$$legacy"]),i=oe(n,["size","title"]);_e(e,!1);const r=le(),a=le();let s=p(e,"size",8,16),c=p(e,"title",8,void 0);ne(()=>(M(n),M(c())),()=>{J(r,n["aria-label"]||n["aria-labelledby"]||c())}),ne(()=>(k(r),M(n)),()=>{J(a,{"aria-hidden":k(r)?void 0:!0,role:k(r)?"img":void 0,focusable:Number(n.tabindex)===0?!0:void 0})}),Ne(),ye();var f=mo();let d;var l=L(f);{var o=u=>{var h=_o(),v=L(h);Z(()=>ae(v,c())),E(u,h)};W(l,u=>{c()&&u(o)})}Z(()=>d=we(f,d,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:s(),height:s(),...k(a),...i},void 0,!0)),E(t,f),me()}var bo=U(" "),go=Xt('');function _i(t,e){const n=oe(e,["children","$$slots","$$events","$$legacy"]),i=oe(n,["size","title"]);_e(e,!1);const r=le(),a=le();let s=p(e,"size",8,16),c=p(e,"title",8,void 0);ne(()=>(M(n),M(c())),()=>{J(r,n["aria-label"]||n["aria-labelledby"]||c())}),ne(()=>(k(r),M(n)),()=>{J(a,{"aria-hidden":k(r)?void 0:!0,role:k(r)?"img":void 0,focusable:Number(n.tabindex)===0?!0:void 0})}),Ne(),ye();var f=go();let d;var l=L(f);{var o=u=>{var h=bo(),v=L(h);Z(()=>ae(v,c())),E(u,h)};W(l,u=>{c()&&u(o)})}Z(()=>d=we(f,d,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:s(),height:s(),...k(a),...i},void 0,!0)),E(t,f),me()}function po(t,e){_e(e,!1);let n=p(e,"key",8,"local-storage-key"),i=p(e,"value",12,"");function r(){localStorage.removeItem(n())}function a(){localStorage.clear()}const s=Ct();let c=i();function f(){typeof i()=="object"?localStorage.setItem(n(),JSON.stringify(i())):localStorage.setItem(n(),i())}return qn(()=>{const d=localStorage.getItem(n());if(d!=null)try{i(JSON.parse(d))}catch{i(d)}else f(i()),s("save")}),cr(()=>{c!==i()&&(f(i()),s("update",{prevValue:c,value:i()})),c=i()}),ye(),di(e,"clearItem",r),di(e,"clearAll",a),me({clearItem:r,clearAll:a})}var wo=U(" "),yo=Xt('');function xo(t,e){const n=oe(e,["children","$$slots","$$events","$$legacy"]),i=oe(n,["size","title"]);_e(e,!1);const r=le(),a=le();let s=p(e,"size",8,16),c=p(e,"title",8,void 0);ne(()=>(M(n),M(c())),()=>{J(r,n["aria-label"]||n["aria-labelledby"]||c())}),ne(()=>(k(r),M(n)),()=>{J(a,{"aria-hidden":k(r)?void 0:!0,role:k(r)?"img":void 0,focusable:Number(n.tabindex)===0?!0:void 0})}),Ne(),ye();var f=yo();let d;var l=L(f);{var o=u=>{var h=wo(),v=L(h);Z(()=>ae(v,c())),E(u,h)};W(l,u=>{c()&&u(o)})}Z(()=>d=we(f,d,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:s(),height:s(),...k(a),...i},void 0,!0)),E(t,f),me()}var ko=U(""),Io=U("
"),So=U("
"),To=U("
",1),Eo=U("
"),Po=U("
"),Oo=U("
"),zo=U("
",1),Co=U("
");function Lo(t,e){const n=oe(e,["children","$$slots","$$events","$$legacy"]),i=oe(n,["selected","size","inline","light","disabled","id","name","invalid","invalidText","warn","warnText","helperText","noLabel","labelText","hideLabel","ref","required"]);_e(e,!1);const r=Fa(),a=()=>Ht(ie,"$defaultValue",r),s=()=>Ht(q,"$defaultSelectId",r),c=()=>Ht(Ae,"$itemTypesByValue",r),f=()=>Ht(se,"$selectedValue",r),d=le();let l=p(e,"selected",12,void 0),o=p(e,"size",8,void 0),u=p(e,"inline",8,!1),h=p(e,"light",8,!1),v=p(e,"disabled",8,!1),m=p(e,"id",24,()=>"ccs-"+Math.random().toString(36)),x=p(e,"name",8,void 0),g=p(e,"invalid",8,!1),y=p(e,"invalidText",8,""),_=p(e,"warn",8,!1),w=p(e,"warnText",8,""),P=p(e,"helperText",8,""),I=p(e,"noLabel",8,!1),F=p(e,"labelText",8,""),N=p(e,"hideLabel",8,!1),C=p(e,"ref",12,null),R=p(e,"required",8,!1);const Y=Ct(),se=Qe(l()),q=Qe(null),ie=Qe(null),Ae=Qe({});ha("Select",{selectedValue:se,setDefaultValue:(V,$)=>{a()===null?(q.set(V),ie.set($)):s()===V&&se.set($),Ae.update(de=>({...de,[$]:typeof $}))}});const Se=({target:V})=>{let $=V.value;c()[$]==="number"&&($=Number($)),se.set($)};let K;cr(()=>{l(f()),K!==void 0&&l()!==K&&Y("update",f()),K=l()}),ne(()=>M(m()),()=>{J(d,`error-${m()}`)}),ne(()=>(M(l()),a()),()=>{se.set(l()??a())}),Ne(),ye();var be=Co();let tt;var ze=L(be);b(ze,"bx--select",!0);var bt=L(ze);{var Ce=V=>{var $=ko(),de=L($);he(de,e,"labelText",{},Q=>{var O=Me();Z(()=>ae(O,F())),E(Q,O)}),Z(()=>{B($,"for",m()),b($,"bx--label",!0),b($,"bx--visually-hidden",N()),b($,"bx--label--disabled",v())}),E(V,$)};W(bt,V=>{I()||V(Ce)})}var G=A(bt,2);{var Fe=V=>{var $=To(),de=ce($);b(de,"bx--select-input--inline__wrapper",!0);var Q=L(de),O=L(Q),re=L(O);he(re,e,"default",{},null),et(O,ee=>C(ee),()=>C());var fe=A(O,2);_i(fe,{class:"bx--select__arrow"});var Je=A(fe,2);{var Te=ee=>{jn(ee,{class:"bx--select__invalid-icon"})};W(Je,ee=>{g()&&ee(Te)})}var Re=A(Q,2);{var De=ee=>{var S=Io(),j=L(S);Z(()=>{B(S,"id",k(d)),b(S,"bx--form-requirement",!0),ae(j,y())}),E(ee,S)};W(Re,ee=>{g()&&ee(De)})}var Ge=A(de,2);{var Ue=ee=>{var S=So();b(S,"bx--form__helper-text",!0);var j=L(S);Z(()=>{b(S,"bx--form__helper-text--disabled",v()),ae(j,P())}),E(ee,S)};W(Ge,ee=>{!g()&&!_()&&P()&&ee(Ue)})}Z(()=>{B(Q,"data-invalid",g()||void 0),b(Q,"bx--select-input__wrapper",!0),B(O,"aria-describedby",g()?k(d):void 0),B(O,"aria-invalid",g()||void 0),O.disabled=v()||void 0,O.required=R()||void 0,B(O,"id",m()),B(O,"name",x()),b(O,"bx--select-input",!0),b(O,"bx--select-input--sm",o()==="sm"),b(O,"bx--select-input--xl",o()==="xl")}),z("change",O,Se),z("change",O,function(ee){T.call(this,e,ee)}),z("input",O,function(ee){T.call(this,e,ee)}),z("focus",O,function(ee){T.call(this,e,ee)}),z("blur",O,function(ee){T.call(this,e,ee)}),E(V,$)};W(G,V=>{u()&&V(Fe)})}var Be=A(G,2);{var dt=V=>{var $=zo(),de=ce($),Q=L(de),O=L(Q);he(O,e,"default",{},null),et(Q,D=>C(D),()=>C());var re=A(Q,2);_i(re,{class:"bx--select__arrow"});var fe=A(re,2);{var Je=D=>{jn(D,{class:"bx--select__invalid-icon"})};W(fe,D=>{g()&&D(Je)})}var Te=A(fe,2);{var Re=D=>{dr(D,{class:"bx--select__invalid-icon bx--select__invalid-icon--warning"})};W(Te,D=>{!g()&&_()&&D(Re)})}var De=A(de,2);{var Ge=D=>{var ue=Eo();b(ue,"bx--form__helper-text",!0);var Le=L(ue);Z(()=>{b(ue,"bx--form__helper-text--disabled",v()),ae(Le,P())}),E(D,ue)};W(De,D=>{!g()&&P()&&D(Ge)})}var Ue=A(De,2);{var ee=D=>{var ue=Po(),Le=L(ue);Z(()=>{B(ue,"id",k(d)),b(ue,"bx--form-requirement",!0),ae(Le,y())}),E(D,ue)};W(Ue,D=>{g()&&D(ee)})}var S=A(Ue,2);{var j=D=>{var ue=Oo(),Le=L(ue);Z(()=>{B(ue,"id",k(d)),b(ue,"bx--form-requirement",!0),ae(Le,w())}),E(D,ue)};W(S,D=>{!g()&&_()&&D(j)})}Z(()=>{B(de,"data-invalid",g()||void 0),b(de,"bx--select-input__wrapper",!0),B(Q,"id",m()),B(Q,"name",x()),B(Q,"aria-describedby",g()?k(d):void 0),Q.disabled=v()||void 0,Q.required=R()||void 0,B(Q,"aria-invalid",g()||void 0),b(Q,"bx--select-input",!0),b(Q,"bx--select-input--sm",o()==="sm"),b(Q,"bx--select-input--xl",o()==="xl")}),z("change",Q,Se),z("change",Q,function(D){T.call(this,e,D)}),z("input",Q,function(D){T.call(this,e,D)}),z("focus",Q,function(D){T.call(this,e,D)}),z("blur",Q,function(D){T.call(this,e,D)}),E(V,$)};W(Be,V=>{u()||V(dt)})}Z(()=>{tt=we(be,tt,{...i}),b(be,"bx--form-item",!0),b(ze,"bx--select--inline",u()),b(ze,"bx--select--light",h()),b(ze,"bx--select--invalid",g()),b(ze,"bx--select--disabled",v()),b(ze,"bx--select--warning",_())}),E(t,be),me()}var jo=U("");function No(t,e){_e(e,!1);let n=p(e,"value",8,""),i=p(e,"text",8,""),r=p(e,"hidden",8,!1),a=p(e,"disabled",8,!1),s=p(e,"class",8,void 0),c=p(e,"style",8,void 0);const f="ccs-"+Math.random().toString(36),d=rn("Select")||rn("TimePickerSelect");let l=le(!1);const o=d.selectedValue.subscribe(m=>{J(l,m===n())});qn(()=>()=>o()),ne(()=>M(n()),()=>{var m;(m=d==null?void 0:d.setDefaultValue)==null||m.call(d,f,n())}),Ne(),ye();var u=jo(),h={},v=L(u);Z(()=>{h!==(h=n())&&(u.value=(u.__value=n())==null?"":n()),u.disabled=a(),u.hidden=r(),sr(u,k(l)),Ma(u,ar(s()),""),B(u,"style",c()),b(u,"bx--select-option",!0),ae(v,i()||n())}),E(t,u),me()}var Ao=U(""),Ro=U("
"),Do=U("
"),Mo=U(""),Zo=U(" ",1),Wo=U("
"),Ko=U("
"),Fo=U("
"),Uo=U("
"),Vo=U("
"),Xo=U("
"),Yo=U("
");function mi(t,e){const n=Yn(e),i=oe(e,["children","$$slots","$$events","$$legacy"]),r=oe(i,["size","value","placeholder","light","disabled","helperText","id","name","labelText","hideLabel","invalid","invalidText","warn","warnText","ref","required","inline","readonly"]);_e(e,!1);const a=le(),s=le(),c=le(),f=le();let d=p(e,"size",8,void 0),l=p(e,"value",12,""),o=p(e,"placeholder",8,""),u=p(e,"light",8,!1),h=p(e,"disabled",8,!1),v=p(e,"helperText",8,""),m=p(e,"id",24,()=>"ccs-"+Math.random().toString(36)),x=p(e,"name",8,void 0),g=p(e,"labelText",8,""),y=p(e,"hideLabel",8,!1),_=p(e,"invalid",8,!1),w=p(e,"invalidText",8,""),P=p(e,"warn",8,!1),I=p(e,"warnText",8,""),F=p(e,"ref",12,null),N=p(e,"required",8,!1),C=p(e,"inline",8,!1),R=p(e,"readonly",8,!1);const Y=rn("Form"),se=Ct();function q(S){return r.type!=="number"?S:S!=""?Number(S):null}const ie=S=>{l(q(S.target.value)),se("input",l())},Ae=S=>{se("change",q(S.target.value))},Se=!!Y&&Y.isFluid;ne(()=>(M(_()),M(R())),()=>{J(a,_()&&!R())}),ne(()=>M(m()),()=>{J(s,`helper-${m()}`)}),ne(()=>M(m()),()=>{J(c,`error-${m()}`)}),ne(()=>M(m()),()=>{J(f,`warn-${m()}`)}),Ne(),ye();var K=Yo();b(K,"bx--form-item",!0),b(K,"bx--text-input-wrapper",!0);var be=L(K);{var tt=S=>{var j=Do();b(j,"bx--text-input__label-helper-wrapper",!0);var D=L(j);{var ue=xe=>{var ke=Ao(),bn=L(ke);he(bn,e,"labelText",{},gr=>{var ni=Me();Z(()=>ae(ni,g())),E(gr,ni)}),Z(()=>{B(ke,"for",m()),b(ke,"bx--label",!0),b(ke,"bx--visually-hidden",y()),b(ke,"bx--label--disabled",h()),b(ke,"bx--label--inline",C()),b(ke,"bx--label--inline--sm",d()==="sm"),b(ke,"bx--label--inline--xl",d()==="xl")}),E(xe,ke)};W(D,xe=>{g()&&xe(ue)})}var Le=A(D,2);{var mn=xe=>{var ke=Ro();b(ke,"bx--form__helper-text",!0);var bn=L(ke);Z(()=>{b(ke,"bx--form__helper-text--disabled",h()),b(ke,"bx--form__helper-text--inline",C()),ae(bn,v())}),E(xe,ke)};W(Le,xe=>{!Se&&v()&&xe(mn)})}E(S,j)};W(be,S=>{C()&&S(tt)})}var ze=A(be,2);{var bt=S=>{var j=Mo(),D=L(j);he(D,e,"labelText",{},ue=>{var Le=Me();Z(()=>ae(Le,g())),E(ue,Le)}),Z(()=>{B(j,"for",m()),b(j,"bx--label",!0),b(j,"bx--visually-hidden",y()),b(j,"bx--label--disabled",h()),b(j,"bx--label--inline",C()),b(j,"bx--label--inline-sm",C()&&d()==="sm"),b(j,"bx--label--inline-xl",C()&&d()==="xl")}),E(S,j)};W(ze,S=>{!C()&&(g()||n.labelText)&&S(bt)})}var Ce=A(ze,2);b(Ce,"bx--text-input__field-outer-wrapper",!0);var G=L(Ce),Fe=L(G);{var Be=S=>{xo(S,{class:"bx--text-input__readonly-icon"})},dt=S=>{var j=Zo(),D=ce(j);{var ue=xe=>{jn(xe,{class:"bx--text-input__invalid-icon"})};W(D,xe=>{_()&&xe(ue)})}var Le=A(D,2);{var mn=xe=>{dr(xe,{class:`bx--text-input__invalid-icon + bx--text-input__invalid-icon--warning`})};W(Le,xe=>{!_()&&P()&&xe(mn)})}E(S,j)};W(Fe,S=>{R()?S(Be):S(dt,!1)})}var V=A(Fe,2);let $;et(V,S=>F(S),()=>F());var de=A(V,2);{var Q=S=>{var j=Wo();b(j,"bx--text-input__divider",!0),E(S,j)};W(de,S=>{Se&&S(Q)})}var O=A(de,2);{var re=S=>{var j=Ko(),D=L(j);Z(()=>{B(j,"id",k(c)),b(j,"bx--form-requirement",!0),ae(D,w())}),E(S,j)};W(O,S=>{Se&&!C()&&_()&&S(re)})}var fe=A(O,2);{var Je=S=>{var j=Fo(),D=L(j);Z(()=>{B(j,"id",k(f)),b(j,"bx--form-requirement",!0),ae(D,I())}),E(S,j)};W(fe,S=>{Se&&!C()&&P()&&S(Je)})}var Te=A(G,2);{var Re=S=>{var j=Uo(),D=L(j);Z(()=>{B(j,"id",k(s)),b(j,"bx--form__helper-text",!0),b(j,"bx--form__helper-text--disabled",h()),b(j,"bx--form__helper-text--inline",C()),ae(D,v())}),E(S,j)};W(Te,S=>{!_()&&!P()&&!Se&&!C()&&v()&&S(Re)})}var De=A(Te,2);{var Ge=S=>{var j=Vo(),D=L(j);Z(()=>{B(j,"id",k(c)),b(j,"bx--form-requirement",!0),ae(D,w())}),E(S,j)};W(De,S=>{!Se&&_()&&S(Ge)})}var Ue=A(De,2);{var ee=S=>{var j=Xo(),D=L(j);Z(()=>{B(j,"id",k(f)),b(j,"bx--form-requirement",!0),ae(D,I())}),E(S,j)};W(Ue,S=>{!Se&&!_()&&P()&&S(ee)})}Z(()=>{b(K,"bx--text-input-wrapper--inline",C()),b(K,"bx--text-input-wrapper--light",u()),b(K,"bx--text-input-wrapper--readonly",R()),b(Ce,"bx--text-input__field-outer-wrapper--inline",C()),B(G,"data-invalid",k(a)||void 0),B(G,"data-warn",P()||void 0),b(G,"bx--text-input__field-wrapper",!0),b(G,"bx--text-input__field-wrapper--warning",!_()&&P()),$=we(V,$,{"data-invalid":k(a)||void 0,"aria-invalid":k(a)||void 0,"data-warn":P()||void 0,"aria-describedby":k(a)?k(c):P()?k(f):v()?k(s):void 0,disabled:h(),id:m(),name:x(),placeholder:o(),required:N(),readonly:R(),...r}),b(V,"bx--text-input",!0),b(V,"bx--text-input--light",u()),b(V,"bx--text-input--invalid",k(a)),b(V,"bx--text-input--warning",P()),b(V,"bx--text-input--sm",d()==="sm"),b(V,"bx--text-input--xl",d()==="xl")}),Wa(V,l),z("change",V,Ae),z("input",V,ie),z("keydown",V,function(S){T.call(this,e,S)}),z("keyup",V,function(S){T.call(this,e,S)}),z("focus",V,function(S){T.call(this,e,S)}),z("blur",V,function(S){T.call(this,e,S)}),z("paste",V,function(S){T.call(this,e,S)}),z("click",K,function(S){T.call(this,e,S)}),z("mouseover",K,function(S){T.call(this,e,S)}),z("mouseenter",K,function(S){T.call(this,e,S)}),z("mouseleave",K,function(S){T.call(this,e,S)}),E(t,K),me()}var Ho=U('
');function qo(t,e){const n=oe(e,["children","$$slots","$$events","$$legacy"]),i=oe(n,["size","toggled","disabled","labelA","labelB","labelText","hideLabel","id","name"]);_e(e,!1);let r=p(e,"size",8,"default"),a=p(e,"toggled",12,!1),s=p(e,"disabled",8,!1),c=p(e,"labelA",8,"Off"),f=p(e,"labelB",8,"On"),d=p(e,"labelText",8,""),l=p(e,"hideLabel",8,!1),o=p(e,"id",24,()=>"ccs-"+Math.random().toString(36)),u=p(e,"name",8,void 0);const h=Ct();ne(()=>M(a()),()=>{h("toggle",{toggled:a()})}),Ne(),ye();var v=Ho();let m;var x=L(v),g=A(x,2),y=L(g),_=L(y);he(_,e,"labelText",{},C=>{var R=Me();Z(()=>ae(R,d())),E(C,R)});var w=A(y,2);b(w,"bx--toggle__switch",!0);var P=L(w);b(P,"bx--toggle__text--off",!0);var I=L(P);he(I,e,"labelA",{},C=>{var R=Me();Z(()=>ae(R,c())),E(C,R)});var F=A(P,2);b(F,"bx--toggle__text--on",!0);var N=L(F);he(N,e,"labelB",{},C=>{var R=Me();Z(()=>ae(R,f())),E(C,R)}),Z(()=>{m=we(v,m,{...i}),b(v,"bx--form-item",!0),ui(v,"user-select","none"),or(x,a()),x.disabled=s(),B(x,"id",o()),B(x,"name",u()),b(x,"bx--toggle-input",!0),b(x,"bx--toggle-input--small",r()==="sm"),B(g,"aria-label",d()?void 0:n["aria-label"]||"Toggle"),B(g,"for",o()),b(g,"bx--toggle-input__label",!0),b(y,"bx--visually-hidden",l()),ui(w,"margin-top",l()?0:void 0)}),z("change",x,()=>{a(!a())}),z("change",x,function(C){T.call(this,e,C)}),z("keyup",x,C=>{(C.key===" "||C.key==="Enter")&&(C.preventDefault(),a(!a()))}),z("keyup",x,function(C){T.call(this,e,C)}),z("focus",x,function(C){T.call(this,e,C)}),z("blur",x,function(C){T.call(this,e,C)}),z("click",v,function(C){T.call(this,e,C)}),z("mouseover",v,function(C){T.call(this,e,C)}),z("mouseenter",v,function(C){T.call(this,e,C)}),z("mouseleave",v,function(C){T.call(this,e,C)}),E(t,v),me()}var Bo=U(" ",1);function Jo(t,e){_e(e,!1);let n=p(e,"theme",12,"white"),i=p(e,"tokens",24,()=>({})),r=p(e,"persist",8,!1),a=p(e,"persistKey",8,"theme"),s=p(e,"render",8,void 0),c=p(e,"toggle",24,()=>({themes:["white","g100"],labelA:"",labelB:"",labelText:"Dark mode",hideLabel:!1}));const f={white:"White",g10:"Gray 10",g80:"Gray 80",g90:"Gray 90",g100:"Gray 100"},d=Object.keys(f);let l=p(e,"select",24,()=>({themes:d,labelText:"Themes",hideLabel:!1}));const o=Ct();ne(()=>(M(i()),M(n())),()=>{typeof window<"u"&&(Object.entries(i()).forEach(([_,w])=>{document.documentElement.style.setProperty(`--cds-${_}`,w)}),n()in f?(document.documentElement.setAttribute("theme",n()),o("update",{theme:n()})):console.warn(`[Theme.svelte] invalid theme "${n()}". Value must be one of: ${JSON.stringify(Object.keys(f))}`))}),Ne(),ye();var u=Bo(),h=ce(u);{var v=_=>{po(_,{get key(){return a()},get value(){return n()},set value(w){n(w)},$$legacy:!0})};W(h,_=>{r()&&_(v)})}var m=A(h,2);{var x=_=>{var w=At(()=>n()===c().themes[1]);qo(_,rt(c,{get toggled(){return k(w)},$$events:{toggle:({detail:P})=>{n(P.toggled?c().themes[1]:c().themes[0])}}}))},g=_=>{var w=ve(),P=ce(w);{var I=F=>{Lo(F,rt(l,{get selected(){return n()},set selected(N){n(N)},children:(N,C)=>{var R=ve(),Y=ce(R);La(Y,1,()=>l().themes,q=>q,(q,ie)=>{No(q,{get value(){return k(ie)},get text(){return f[k(ie)]}})}),E(N,R)},$$slots:{default:!0},$$legacy:!0}))};W(P,F=>{s()==="select"&&F(I)},!0)}E(_,w)};W(m,_=>{s()==="toggle"?_(x):_(g,!1)})}var y=A(m,2);he(y,e,"default",{get theme(){return n()}},null),E(t,u),me()}var Go=U(" "),Qo=Xt('');function $o(t,e){const n=oe(e,["children","$$slots","$$events","$$legacy"]),i=oe(n,["size","title"]);_e(e,!1);const r=le(),a=le();let s=p(e,"size",8,16),c=p(e,"title",8,void 0);ne(()=>(M(n),M(c())),()=>{J(r,n["aria-label"]||n["aria-labelledby"]||c())}),ne(()=>(k(r),M(n)),()=>{J(a,{"aria-hidden":k(r)?void 0:!0,role:k(r)?"img":void 0,focusable:Number(n.tabindex)===0?!0:void 0})}),Ne(),ye();var f=Qo();let d;var l=L(f);{var o=u=>{var h=Go(),v=L(h);Z(()=>ae(v,c())),E(u,h)};W(l,u=>{c()&&u(o)})}Z(()=>d=we(f,d,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:s(),height:s(),...k(a),...i},void 0,!0)),E(t,f),me()}var es=Ta(`
+ + diff --git a/ui/package.json b/ui/package.json new file mode 100644 index 0000000..c4f6ed8 --- /dev/null +++ b/ui/package.json @@ -0,0 +1,28 @@ +{ + "name": "xtablo-ui", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "@tsconfig/svelte": "^5.0.4", + "svelte": "^5.15.0", + "svelte-check": "^4.1.1", + "typescript": "~5.6.2", + "vite": "^6.0.5" + }, + "dependencies": { + "@auth0/auth0-spa-js": "^2.1.3", + "carbon-components-svelte": "^0.87.0", + "carbon-icons-svelte": "^12.13.0", + "less": "^4.2.1", + "svelte-google-login": "^0.0.3", + "tachyons": "4.12.0" + } +} \ No newline at end of file diff --git a/ui/pnpm-lock.yaml b/ui/pnpm-lock.yaml new file mode 100644 index 0000000..ba9b481 --- /dev/null +++ b/ui/pnpm-lock.yaml @@ -0,0 +1,1062 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@auth0/auth0-spa-js': + specifier: ^2.1.3 + version: 2.1.3 + carbon-components-svelte: + specifier: ^0.87.0 + version: 0.87.0 + carbon-icons-svelte: + specifier: ^12.13.0 + version: 12.13.0 + less: + specifier: ^4.2.1 + version: 4.2.1 + svelte-google-login: + specifier: ^0.0.3 + version: 0.0.3 + tachyons: + specifier: 4.12.0 + version: 4.12.0 + devDependencies: + '@sveltejs/vite-plugin-svelte': + specifier: ^5.0.3 + version: 5.0.3(svelte@5.16.0)(vite@6.0.6(less@4.2.1)) + '@tsconfig/svelte': + specifier: ^5.0.4 + version: 5.0.4 + svelte: + specifier: ^5.15.0 + version: 5.16.0 + svelte-check: + specifier: ^4.1.1 + version: 4.1.1(svelte@5.16.0)(typescript@5.6.3) + typescript: + specifier: ~5.6.2 + version: 5.6.3 + vite: + specifier: ^6.0.5 + version: 6.0.6(less@4.2.1) + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@auth0/auth0-spa-js@2.1.3': + resolution: {integrity: sha512-NMTBNuuG4g3rame1aCnNS5qFYIzsTUV5qTFPRfTyYFS1feS6jsCBR+eTq9YkxCp1yuoM2UIcjunPaoPl77U9xQ==} + + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@ibm/telemetry-js@1.8.0': + resolution: {integrity: sha512-1u/8f5TtDHXWNQe+YfIESesZGX2PmhEfyU0znlyFvATch+xc5fPYjXj2gWKMTmdKsDawqAm/BkJBQjx2CDlZww==} + hasBin: true + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@rollup/rollup-android-arm-eabi@4.29.1': + resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.29.1': + resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.29.1': + resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.29.1': + resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.29.1': + resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.29.1': + resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.29.1': + resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.29.1': + resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.29.1': + resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': + resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.29.1': + resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.29.1': + resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.29.1': + resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.29.1': + resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.29.1': + resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.29.1': + resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.29.1': + resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} + cpu: [x64] + os: [win32] + + '@sveltejs/vite-plugin-svelte-inspector@4.0.1': + resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^5.0.0 + svelte: ^5.0.0 + vite: ^6.0.0 + + '@sveltejs/vite-plugin-svelte@5.0.3': + resolution: {integrity: sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: + svelte: ^5.0.0 + vite: ^6.0.0 + + '@tsconfig/svelte@5.0.4': + resolution: {integrity: sha512-BV9NplVgLmSi4mwKzD8BD/NQ8erOY/nUE/GpgWe2ckx+wIQF5RyRirn/QsSSCPeulVpc3RA/iJt6DpfTIZps0Q==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + acorn-typescript@1.4.13: + resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} + peerDependencies: + acorn: '>=8.9.0' + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + async-script-loader@0.0.1: + resolution: {integrity: sha512-z8S6g70nj5x9ZZFDzK9ozrAUJanbI3iZ0ZLdhabl5um35b23hxrVGIGUhbnmIHzomS8CElN/bFtN4lcVTVrdSg==} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + carbon-components-svelte@0.87.0: + resolution: {integrity: sha512-c4wPLzVFlPPsLSqNLvQjP3e/1Fq+01sN7EiA9uh17qsHZS2agRCXa0Qp8xhE98JKENAwVJTT5e08gIjxIXPI+Q==} + + carbon-icons-svelte@12.13.0: + resolution: {integrity: sha512-Tkp5Aa34GgAIQ5XSpD0JIKZTqiTUgtIt43SZxXuSDYvQjQ+HQVKNgYiDZ3oAA5etdcGT4O8+vDsVdGeL90Eezg==} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + + esm-env@1.2.1: + resolution: {integrity: sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==} + + esrap@1.3.2: + resolution: {integrity: sha512-C4PXusxYhFT98GjLSmb20k9PREuUdporer50dhzGuJu9IJXktbMddVCMLAERl5dAHyAi73GWWCE4FVHGP1794g==} + + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + flatpickr@4.6.9: + resolution: {integrity: sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + + is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + less@4.2.1: + resolution: {integrity: sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg==} + engines: {node: '>=6'} + hasBin: true + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} + hasBin: true + + parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + + rollup@4.29.1: + resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + svelte-check@4.1.1: + resolution: {integrity: sha512-NfaX+6Qtc8W/CyVGS/F7/XdiSSyXz+WGYA9ZWV3z8tso14V2vzjfXviKaTFEzB7g8TqfgO2FOzP6XT4ApSTUTw==} + engines: {node: '>= 18.0.0'} + hasBin: true + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: '>=5.0.0' + + svelte-google-login@0.0.3: + resolution: {integrity: sha512-HpruVUyL3hy56DlPTJ54N0wiLxQIPFWopYqqhOvpTJ6kWasH0rgTxMBA+NPkgvMjiKmNN2V94c8CAJkkQgypVA==} + + svelte@5.16.0: + resolution: {integrity: sha512-Ygqsiac6UogVED2ruKclU+pOeMThxWtp9LG+li7BXeDKC2paVIsRTMkNmcON4Zejerd1s5sZHWx6ZtU85xklVg==} + engines: {node: '>=18'} + + tachyons@4.12.0: + resolution: {integrity: sha512-2nA2IrYFy3raCM9fxJ2KODRGHVSZNTW3BR0YnlGsLUf1DA3pk3YfWZ/DdfbnZK6zLZS+jUenlUGJsKcA5fUiZg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + + vite@6.0.6: + resolution: {integrity: sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitefu@1.0.4: + resolution: {integrity: sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + vite: + optional: true + + zimmerframe@1.1.2: + resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@auth0/auth0-spa-js@2.1.3': {} + + '@esbuild/aix-ppc64@0.24.2': + optional: true + + '@esbuild/android-arm64@0.24.2': + optional: true + + '@esbuild/android-arm@0.24.2': + optional: true + + '@esbuild/android-x64@0.24.2': + optional: true + + '@esbuild/darwin-arm64@0.24.2': + optional: true + + '@esbuild/darwin-x64@0.24.2': + optional: true + + '@esbuild/freebsd-arm64@0.24.2': + optional: true + + '@esbuild/freebsd-x64@0.24.2': + optional: true + + '@esbuild/linux-arm64@0.24.2': + optional: true + + '@esbuild/linux-arm@0.24.2': + optional: true + + '@esbuild/linux-ia32@0.24.2': + optional: true + + '@esbuild/linux-loong64@0.24.2': + optional: true + + '@esbuild/linux-mips64el@0.24.2': + optional: true + + '@esbuild/linux-ppc64@0.24.2': + optional: true + + '@esbuild/linux-riscv64@0.24.2': + optional: true + + '@esbuild/linux-s390x@0.24.2': + optional: true + + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + + '@esbuild/netbsd-x64@0.24.2': + optional: true + + '@esbuild/openbsd-arm64@0.24.2': + optional: true + + '@esbuild/openbsd-x64@0.24.2': + optional: true + + '@esbuild/sunos-x64@0.24.2': + optional: true + + '@esbuild/win32-arm64@0.24.2': + optional: true + + '@esbuild/win32-ia32@0.24.2': + optional: true + + '@esbuild/win32-x64@0.24.2': + optional: true + + '@ibm/telemetry-js@1.8.0': {} + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@rollup/rollup-android-arm-eabi@4.29.1': + optional: true + + '@rollup/rollup-android-arm64@4.29.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.29.1': + optional: true + + '@rollup/rollup-darwin-x64@4.29.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.29.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.29.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.29.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.29.1': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.29.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.29.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.29.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.29.1': + optional: true + + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(less@4.2.1)))(svelte@5.16.0)(vite@6.0.6(less@4.2.1))': + dependencies: + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.16.0)(vite@6.0.6(less@4.2.1)) + debug: 4.4.0 + svelte: 5.16.0 + vite: 6.0.6(less@4.2.1) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(less@4.2.1))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(less@4.2.1)))(svelte@5.16.0)(vite@6.0.6(less@4.2.1)) + debug: 4.4.0 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.17 + svelte: 5.16.0 + vite: 6.0.6(less@4.2.1) + vitefu: 1.0.4(vite@6.0.6(less@4.2.1)) + transitivePeerDependencies: + - supports-color + + '@tsconfig/svelte@5.0.4': {} + + '@types/estree@1.0.6': {} + + acorn-typescript@1.4.13(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn@8.14.0: {} + + aria-query@5.3.2: {} + + async-script-loader@0.0.1: + dependencies: + uuid: 3.4.0 + + axobject-query@4.1.0: {} + + carbon-components-svelte@0.87.0: + dependencies: + '@ibm/telemetry-js': 1.8.0 + flatpickr: 4.6.9 + + carbon-icons-svelte@12.13.0: {} + + chokidar@4.0.3: + dependencies: + readdirp: 4.0.2 + + clsx@2.1.1: {} + + copy-anything@2.0.6: + dependencies: + is-what: 3.14.1 + + debug@4.4.0: + dependencies: + ms: 2.1.3 + + deepmerge@4.3.1: {} + + errno@0.1.8: + dependencies: + prr: 1.0.1 + optional: true + + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 + + esm-env@1.2.1: {} + + esrap@1.3.2: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + fdir@6.4.2: {} + + flatpickr@4.6.9: {} + + fsevents@2.3.3: + optional: true + + graceful-fs@4.2.11: + optional: true + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + optional: true + + image-size@0.5.5: + optional: true + + is-reference@3.0.3: + dependencies: + '@types/estree': 1.0.6 + + is-what@3.14.1: {} + + kleur@4.1.5: {} + + less@4.2.1: + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.8.1 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + + locate-character@3.0.0: {} + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.2 + optional: true + + mime@1.6.0: + optional: true + + mri@1.2.0: {} + + ms@2.1.3: {} + + nanoid@3.3.8: {} + + needle@3.3.1: + dependencies: + iconv-lite: 0.6.3 + sax: 1.4.1 + optional: true + + parse-node-version@1.0.1: {} + + picocolors@1.1.1: {} + + pify@4.0.1: + optional: true + + postcss@8.4.49: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prr@1.0.1: + optional: true + + readdirp@4.0.2: {} + + rollup@4.29.1: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.29.1 + '@rollup/rollup-android-arm64': 4.29.1 + '@rollup/rollup-darwin-arm64': 4.29.1 + '@rollup/rollup-darwin-x64': 4.29.1 + '@rollup/rollup-freebsd-arm64': 4.29.1 + '@rollup/rollup-freebsd-x64': 4.29.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 + '@rollup/rollup-linux-arm-musleabihf': 4.29.1 + '@rollup/rollup-linux-arm64-gnu': 4.29.1 + '@rollup/rollup-linux-arm64-musl': 4.29.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 + '@rollup/rollup-linux-riscv64-gnu': 4.29.1 + '@rollup/rollup-linux-s390x-gnu': 4.29.1 + '@rollup/rollup-linux-x64-gnu': 4.29.1 + '@rollup/rollup-linux-x64-musl': 4.29.1 + '@rollup/rollup-win32-arm64-msvc': 4.29.1 + '@rollup/rollup-win32-ia32-msvc': 4.29.1 + '@rollup/rollup-win32-x64-msvc': 4.29.1 + fsevents: 2.3.3 + + sade@1.8.1: + dependencies: + mri: 1.2.0 + + safer-buffer@2.1.2: + optional: true + + sax@1.4.1: + optional: true + + semver@5.7.2: + optional: true + + source-map-js@1.2.1: {} + + source-map@0.6.1: + optional: true + + svelte-check@4.1.1(svelte@5.16.0)(typescript@5.6.3): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + chokidar: 4.0.3 + fdir: 6.4.2 + picocolors: 1.1.1 + sade: 1.8.1 + svelte: 5.16.0 + typescript: 5.6.3 + transitivePeerDependencies: + - picomatch + + svelte-google-login@0.0.3: + dependencies: + async-script-loader: 0.0.1 + + svelte@5.16.0: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + acorn: 8.14.0 + acorn-typescript: 1.4.13(acorn@8.14.0) + aria-query: 5.3.2 + axobject-query: 4.1.0 + clsx: 2.1.1 + esm-env: 1.2.1 + esrap: 1.3.2 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.17 + zimmerframe: 1.1.2 + + tachyons@4.12.0: {} + + tslib@2.8.1: {} + + typescript@5.6.3: {} + + uuid@3.4.0: {} + + vite@6.0.6(less@4.2.1): + dependencies: + esbuild: 0.24.2 + postcss: 8.4.49 + rollup: 4.29.1 + optionalDependencies: + fsevents: 2.3.3 + less: 4.2.1 + + vitefu@1.0.4(vite@6.0.6(less@4.2.1)): + optionalDependencies: + vite: 6.0.6(less@4.2.1) + + zimmerframe@1.1.2: {} diff --git a/ui/src/App.svelte b/ui/src/App.svelte new file mode 100644 index 0000000..994671a --- /dev/null +++ b/ui/src/App.svelte @@ -0,0 +1,42 @@ + + +
+ + +
diff --git a/ui/src/Login.svelte b/ui/src/Login.svelte new file mode 100644 index 0000000..f1de428 --- /dev/null +++ b/ui/src/Login.svelte @@ -0,0 +1,85 @@ + + +
+ + +
+ +
+
+ + diff --git a/ui/src/app.css b/ui/src/app.css new file mode 100644 index 0000000..620ab1c --- /dev/null +++ b/ui/src/app.css @@ -0,0 +1,10 @@ +:app { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/ui/src/assets/svelte.svg b/ui/src/assets/svelte.svg new file mode 100644 index 0000000..c5e0848 --- /dev/null +++ b/ui/src/assets/svelte.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ui/src/authService.ts b/ui/src/authService.ts new file mode 100644 index 0000000..56c35ee --- /dev/null +++ b/ui/src/authService.ts @@ -0,0 +1,46 @@ +import { + createAuth0Client, + Auth0Client, + type Auth0ClientOptions, +} from "@auth0/auth0-spa-js"; +import { user, isAuthenticated, popupOpen } from "./store"; +import config from "./auth_config"; + +async function createClient() { + let auth0Client = await createAuth0Client({ + domain: config.domain, + clientId: config.clientId, + }); + + return auth0Client; +} + +async function loginWithPopup( + client: Auth0Client, + options: Auth0ClientOptions +) { + popupOpen.set(true); + try { + await client.loginWithPopup(options); + + user.set(await client.getUser()); + isAuthenticated.set(true); + } catch (e) { + // eslint-disable-next-line + console.error(e); + } finally { + popupOpen.set(false); + } +} + +function logout(client: Auth0Client) { + return client.logout(); +} + +const auth = { + createClient, + loginWithPopup, + logout, +}; + +export default auth; diff --git a/ui/src/auth_config.ts b/ui/src/auth_config.ts new file mode 100644 index 0000000..beb4f38 --- /dev/null +++ b/ui/src/auth_config.ts @@ -0,0 +1,6 @@ +const config = { + domain: "dev-iw7iwywee7bt0yer.eu.auth0.com", + clientId: "hxPBFRIRqQKqXoIdEcrODEhLhZPmSwm3", +}; + +export default config; diff --git a/ui/src/lib/Counter.svelte b/ui/src/lib/Counter.svelte new file mode 100644 index 0000000..37d75ce --- /dev/null +++ b/ui/src/lib/Counter.svelte @@ -0,0 +1,10 @@ + + + diff --git a/ui/src/main.ts b/ui/src/main.ts new file mode 100644 index 0000000..a354508 --- /dev/null +++ b/ui/src/main.ts @@ -0,0 +1,13 @@ +import "vite/modulepreload-polyfill"; +import "carbon-components-svelte/css/all.css"; + +import { mount } from "svelte"; +import "tachyons"; +import "./app.css"; +import App from "./App.svelte"; + +const app = mount(App, { + target: document.getElementById("app")!, +}); + +export default app; diff --git a/ui/src/public/vite.svg b/ui/src/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/ui/src/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ui/src/store.ts b/ui/src/store.ts new file mode 100644 index 0000000..b96d949 --- /dev/null +++ b/ui/src/store.ts @@ -0,0 +1,19 @@ +import { writable, derived, type Writable } from "svelte/store"; + +export const isAuthenticated = writable(false); +export const user: Writable<{ email?: string | undefined } | undefined> = + writable(); +export const popupOpen = writable(false); +export const error = writable(); + +export const tasks: Writable<{ user: string }[]> = writable([]); + +export const user_tasks = derived([tasks, user], ([$tasks, $user]) => { + let logged_in_user_tasks: any[] = []; + + if ($user && $user.email) { + logged_in_user_tasks = $tasks.filter((task) => task.user === $user.email); + } + + return logged_in_user_tasks; +}); diff --git a/ui/src/vite-env.d.ts b/ui/src/vite-env.d.ts new file mode 100644 index 0000000..35c3002 --- /dev/null +++ b/ui/src/vite-env.d.ts @@ -0,0 +1,3 @@ +/// +/// +/// diff --git a/ui/svelte.config.js b/ui/svelte.config.js new file mode 100644 index 0000000..b0683fd --- /dev/null +++ b/ui/svelte.config.js @@ -0,0 +1,7 @@ +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' + +export default { + // Consult https://svelte.dev/docs#compile-time-svelte-preprocess + // for more information about preprocessors + preprocess: vitePreprocess(), +} diff --git a/ui/tsconfig.app.json b/ui/tsconfig.app.json new file mode 100644 index 0000000..6d5980f --- /dev/null +++ b/ui/tsconfig.app.json @@ -0,0 +1,20 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "resolveJsonModule": true, + /** + * Typecheck JS in `.svelte` and `.js` files by default. + * Disable checkJs if you'd like to use dynamic types in JS. + * Note that setting allowJs false does not prevent the use + * of JS in `.svelte` files. + */ + "allowJs": true, + "checkJs": true, + "isolatedModules": true, + "moduleDetection": "force" + }, + "include": ["src/**/*.ts", "src/**/*.svelte"] +} diff --git a/ui/tsconfig.json b/ui/tsconfig.json new file mode 100644 index 0000000..4a3b961 --- /dev/null +++ b/ui/tsconfig.json @@ -0,0 +1,8 @@ +{ + "files": [], + "extends": "@tsconfig/svelte/tsconfig.json", + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/ui/tsconfig.node.json b/ui/tsconfig.node.json new file mode 100644 index 0000000..db0becc --- /dev/null +++ b/ui/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/ui/vite.config.ts b/ui/vite.config.ts new file mode 100644 index 0000000..8200f41 --- /dev/null +++ b/ui/vite.config.ts @@ -0,0 +1,17 @@ +import { defineConfig } from "vite"; +import { svelte } from "@sveltejs/vite-plugin-svelte"; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [svelte()], + build: { + // generates .vite/manifest.json in outDir + manifest: true, + emptyOutDir: true, + outDir: "../backend/internal/frontend/dist", + rollupOptions: { + // overwrite default .html entry + input: "/src/main.ts", + }, + }, +});