diff --git a/web/static/css/output.css b/web/static/css/output.css index a5f0418..e42d8e6 100644 --- a/web/static/css/output.css +++ b/web/static/css/output.css @@ -8,9 +8,11 @@ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-red-500: oklch(63.7% 0.237 25.331); + --color-yellow-500: oklch(79.5% 0.184 86.047); --color-green-500: oklch(72.3% 0.219 149.579); --color-blue-500: oklch(62.3% 0.214 259.815); --color-gray-300: oklch(87.2% 0.01 258.338); + --color-gray-500: oklch(55.1% 0.027 264.364); --spacing: 0.25rem; --container-2xl: 42rem; --text-sm: 0.875rem; @@ -22,7 +24,9 @@ --text-4xl: 2.25rem; --text-4xl--line-height: calc(2.5 / 2.25); --font-weight-medium: 500; + --font-weight-semibold: 600; --font-weight-bold: 700; + --ease-out: cubic-bezier(0, 0, 0.2, 1); --default-transition-duration: 150ms; --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --default-font-family: var(--font-sans); @@ -175,18 +179,54 @@ } } @layer utilities { + .pointer-events-auto { + pointer-events: auto; + } + .collapse { + visibility: collapse; + } + .visible { + visibility: visible; + } .absolute { position: absolute; } + .fixed { + position: fixed; + } .relative { position: relative; } + .inset-0 { + inset: calc(var(--spacing) * 0); + } + .top-0 { + top: calc(var(--spacing) * 0); + } + .top-1 { + top: calc(var(--spacing) * 1); + } .top-1\/2 { top: calc(1/2 * 100%); } .right-0 { right: calc(var(--spacing) * 0); } + .bottom-0 { + bottom: calc(var(--spacing) * 0); + } + .left-0 { + left: calc(var(--spacing) * 0); + } + .left-1 { + left: calc(var(--spacing) * 1); + } + .left-1\/2 { + left: calc(1/2 * 100%); + } + .z-50 { + z-index: 50; + } .container { width: 100%; @media (width >= 1600px) { @@ -211,9 +251,15 @@ max-width: 96rem; } } + .mt-1 { + margin-top: calc(var(--spacing) * 1); + } .mt-4 { margin-top: calc(var(--spacing) * 4); } + .mr-3 { + margin-right: calc(var(--spacing) * 3); + } .block { display: block; } @@ -223,6 +269,9 @@ .hidden { display: none; } + .inline { + display: inline; + } .inline-block { display: inline-block; } @@ -236,6 +285,9 @@ width: calc(var(--spacing) * 9); height: calc(var(--spacing) * 9); } + .h-1 { + height: calc(var(--spacing) * 1); + } .h-6 { height: calc(var(--spacing) * 6); } @@ -272,25 +324,60 @@ .flex-1 { flex: 1; } + .flex-shrink { + flex-shrink: 1; + } + .flex-shrink-0 { + flex-shrink: 0; + } .shrink { flex-shrink: 1; } .shrink-0 { flex-shrink: 0; } + .border-collapse { + border-collapse: collapse; + } + .-translate-x-1 { + --tw-translate-x: calc(var(--spacing) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .-translate-x-1\/2 { + --tw-translate-x: calc(calc(1/2 * 100%) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .-translate-y-1 { + --tw-translate-y: calc(var(--spacing) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } .-translate-y-1\/2 { --tw-translate-y: calc(calc(1/2 * 100%) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); } + .-translate-y-4 { + --tw-translate-y: calc(var(--spacing) * -4); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-y-4 { + --tw-translate-y: calc(var(--spacing) * 4); + translate: var(--tw-translate-x) var(--tw-translate-y); + } .scale-3d { scale: var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z); } + .transform { + transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); + } .cursor-not-allowed { cursor: not-allowed; } .cursor-pointer { cursor: pointer; } + .resize { + resize: both; + } .columns-2 { columns: 2; } @@ -324,6 +411,17 @@ .gap-4 { gap: calc(var(--spacing) * 4); } + .truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .overflow-hidden { + overflow: hidden; + } + .rounded-lg { + border-radius: var(--radius); + } .rounded-md { border-radius: calc(var(--radius) - 2px); } @@ -340,15 +438,24 @@ .bg-background { background-color: var(--background); } + .bg-blue-500 { + background-color: var(--color-blue-500); + } .bg-destructive { background-color: var(--destructive); } .bg-gray-300 { background-color: var(--color-gray-300); } + .bg-gray-500 { + background-color: var(--color-gray-500); + } .bg-green-500 { background-color: var(--color-green-500); } + .bg-popover { + background-color: var(--popover); + } .bg-primary { background-color: var(--primary); } @@ -361,6 +468,12 @@ .bg-transparent { background-color: transparent; } + .bg-yellow-500 { + background-color: var(--color-yellow-500); + } + .p-4 { + padding: calc(var(--spacing) * 4); + } .px-3 { padding-inline: calc(var(--spacing) * 3); } @@ -379,9 +492,15 @@ .py-4 { padding-block: calc(var(--spacing) * 4); } + .pt-5 { + padding-top: calc(var(--spacing) * 5); + } .pr-8 { padding-right: calc(var(--spacing) * 8); } + .pb-4 { + padding-bottom: calc(var(--spacing) * 4); + } .text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading, var(--text-4xl--line-height)); @@ -410,21 +529,40 @@ --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); } + .font-semibold { + --tw-font-weight: var(--font-weight-semibold); + font-weight: var(--font-weight-semibold); + } .whitespace-nowrap { white-space: nowrap; } + .text-blue-500 { + color: var(--color-blue-500); + } .text-destructive { color: var(--destructive); } + .text-green-500 { + color: var(--color-green-500); + } + .text-popover-foreground { + color: var(--popover-foreground); + } .text-primary { color: var(--primary); } .text-primary-foreground { color: var(--primary-foreground); } + .text-red-500 { + color: var(--color-red-500); + } .text-secondary-foreground { color: var(--secondary-foreground); } + .text-yellow-500 { + color: var(--color-yellow-500); + } .italic { font-style: italic; } @@ -434,13 +572,25 @@ .underline-offset-4 { text-underline-offset: 4px; } + .opacity-0 { + opacity: 0%; + } .opacity-50 { opacity: 50%; } + .opacity-75 { + opacity: 75%; + } + .opacity-90 { + opacity: 90%; + } .shadow-xs { --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } + .ring-destructive { + --tw-ring-color: var(--destructive); + } .ring-destructive\/20 { --tw-ring-color: var(--destructive); @supports (color: color-mix(in lab, red, red)) { @@ -451,6 +601,11 @@ outline-style: var(--tw-outline-style); outline-width: 1px; } + .transition { + transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } .transition-\[color\,box-shadow\] { transition-property: color,box-shadow; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); @@ -461,6 +616,14 @@ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } + .duration-300 { + --tw-duration: 300ms; + transition-duration: 300ms; + } + .ease-out { + --tw-ease: var(--ease-out); + transition-timing-function: var(--ease-out); + } .outline-none { --tw-outline-style: none; outline-style: none; @@ -582,6 +745,13 @@ } } } + .hover\:opacity-100 { + &:hover { + @media (hover: hover) { + opacity: 100%; + } + } + } .focus-visible\:border-ring { &:focus-visible { border-color: var(--ring); @@ -652,6 +822,11 @@ } } } + .md\:max-w-\[420px\] { + @media (width >= 48rem) { + max-width: 420px; + } + } .md\:text-sm { @media (width >= 48rem) { font-size: var(--text-sm); @@ -864,6 +1039,26 @@ inherits: false; initial-value: 1; } +@property --tw-rotate-x { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-y { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-z { + syntax: "*"; + inherits: false; +} +@property --tw-skew-x { + syntax: "*"; + inherits: false; +} +@property --tw-skew-y { + syntax: "*"; + inherits: false; +} @property --tw-border-style { syntax: "*"; inherits: false; @@ -947,6 +1142,14 @@ inherits: false; initial-value: solid; } +@property --tw-duration { + syntax: "*"; + inherits: false; +} +@property --tw-ease { + syntax: "*"; + inherits: false; +} @layer properties { @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { *, ::before, ::after, ::backdrop { @@ -956,6 +1159,11 @@ --tw-scale-x: 1; --tw-scale-y: 1; --tw-scale-z: 1; + --tw-rotate-x: initial; + --tw-rotate-y: initial; + --tw-rotate-z: initial; + --tw-skew-x: initial; + --tw-skew-y: initial; --tw-border-style: solid; --tw-leading: initial; --tw-font-weight: initial; @@ -974,6 +1182,8 @@ --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-outline-style: solid; + --tw-duration: initial; + --tw-ease: initial; } } } diff --git a/web/static/js/alpine.min.js b/web/static/js/alpine.min.js new file mode 100644 index 0000000..5336670 --- /dev/null +++ b/web/static/js/alpine.min.js @@ -0,0 +1,2894 @@ +(() => { + var nt = !1, + it = !1, + W = [], + ot = -1; + function Ut(e) { + Rn(e); + } + function Rn(e) { + (W.includes(e) || W.push(e), Mn()); + } + function Wt(e) { + let t = W.indexOf(e); + t !== -1 && t > ot && W.splice(t, 1); + } + function Mn() { + !it && !nt && ((nt = !0), queueMicrotask(Nn)); + } + function Nn() { + ((nt = !1), (it = !0)); + for (let e = 0; e < W.length; e++) (W[e](), (ot = e)); + ((W.length = 0), (ot = -1), (it = !1)); + } + var T, + N, + $, + at, + st = !0; + function Gt(e) { + ((st = !1), e(), (st = !0)); + } + function Jt(e) { + ((T = e.reactive), + ($ = e.release), + (N = (t) => + e.effect(t, { + scheduler: (r) => { + st ? Ut(r) : r(); + }, + })), + (at = e.raw)); + } + function ct(e) { + N = e; + } + function Yt(e) { + let t = () => {}; + return [ + (n) => { + let i = N(n); + return ( + e._x_effects || + ((e._x_effects = new Set()), + (e._x_runEffects = () => { + e._x_effects.forEach((o) => o()); + })), + e._x_effects.add(i), + (t = () => { + i !== void 0 && (e._x_effects.delete(i), $(i)); + }), + i + ); + }, + () => { + t(); + }, + ]; + } + function ve(e, t) { + let r = !0, + n, + i = N(() => { + let o = e(); + (JSON.stringify(o), + r + ? (n = o) + : queueMicrotask(() => { + (t(o, n), (n = o)); + }), + (r = !1)); + }); + return () => $(i); + } + var Xt = [], + Zt = [], + Qt = []; + function er(e) { + Qt.push(e); + } + function te(e, t) { + typeof t == "function" + ? (e._x_cleanups || (e._x_cleanups = []), e._x_cleanups.push(t)) + : ((t = e), Zt.push(t)); + } + function Ae(e) { + Xt.push(e); + } + function Oe(e, t, r) { + (e._x_attributeCleanups || (e._x_attributeCleanups = {}), + e._x_attributeCleanups[t] || (e._x_attributeCleanups[t] = []), + e._x_attributeCleanups[t].push(r)); + } + function lt(e, t) { + e._x_attributeCleanups && + Object.entries(e._x_attributeCleanups).forEach(([r, n]) => { + (t === void 0 || t.includes(r)) && + (n.forEach((i) => i()), delete e._x_attributeCleanups[r]); + }); + } + function tr(e) { + for (e._x_effects?.forEach(Wt); e._x_cleanups?.length; ) + e._x_cleanups.pop()(); + } + var ut = new MutationObserver(mt), + ft = !1; + function ue() { + (ut.observe(document, { + subtree: !0, + childList: !0, + attributes: !0, + attributeOldValue: !0, + }), + (ft = !0)); + } + function dt() { + (kn(), ut.disconnect(), (ft = !1)); + } + var le = []; + function kn() { + let e = ut.takeRecords(); + le.push(() => e.length > 0 && mt(e)); + let t = le.length; + queueMicrotask(() => { + if (le.length === t) for (; le.length > 0; ) le.shift()(); + }); + } + function m(e) { + if (!ft) return e(); + dt(); + let t = e(); + return (ue(), t); + } + var pt = !1, + Se = []; + function rr() { + pt = !0; + } + function nr() { + ((pt = !1), mt(Se), (Se = [])); + } + function mt(e) { + if (pt) { + Se = Se.concat(e); + return; + } + let t = [], + r = new Set(), + n = new Map(), + i = new Map(); + for (let o = 0; o < e.length; o++) + if ( + !e[o].target._x_ignoreMutationObserver && + (e[o].type === "childList" && + (e[o].removedNodes.forEach((s) => { + s.nodeType === 1 && s._x_marker && r.add(s); + }), + e[o].addedNodes.forEach((s) => { + if (s.nodeType === 1) { + if (r.has(s)) { + r.delete(s); + return; + } + s._x_marker || t.push(s); + } + })), + e[o].type === "attributes") + ) { + let s = e[o].target, + a = e[o].attributeName, + c = e[o].oldValue, + l = () => { + (n.has(s) || n.set(s, []), + n.get(s).push({ name: a, value: s.getAttribute(a) })); + }, + u = () => { + (i.has(s) || i.set(s, []), i.get(s).push(a)); + }; + s.hasAttribute(a) && c === null + ? l() + : s.hasAttribute(a) + ? (u(), l()) + : u(); + } + (i.forEach((o, s) => { + lt(s, o); + }), + n.forEach((o, s) => { + Xt.forEach((a) => a(s, o)); + })); + for (let o of r) t.some((s) => s.contains(o)) || Zt.forEach((s) => s(o)); + for (let o of t) o.isConnected && Qt.forEach((s) => s(o)); + ((t = null), (r = null), (n = null), (i = null)); + } + function Ce(e) { + return z(B(e)); + } + function k(e, t, r) { + return ( + (e._x_dataStack = [t, ...B(r || e)]), + () => { + e._x_dataStack = e._x_dataStack.filter((n) => n !== t); + } + ); + } + function B(e) { + return e._x_dataStack + ? e._x_dataStack + : typeof ShadowRoot == "function" && e instanceof ShadowRoot + ? B(e.host) + : e.parentNode + ? B(e.parentNode) + : []; + } + function z(e) { + return new Proxy({ objects: e }, Dn); + } + var Dn = { + ownKeys({ objects: e }) { + return Array.from(new Set(e.flatMap((t) => Object.keys(t)))); + }, + has({ objects: e }, t) { + return t == Symbol.unscopables + ? !1 + : e.some( + (r) => + Object.prototype.hasOwnProperty.call(r, t) || Reflect.has(r, t), + ); + }, + get({ objects: e }, t, r) { + return t == "toJSON" + ? Pn + : Reflect.get(e.find((n) => Reflect.has(n, t)) || {}, t, r); + }, + set({ objects: e }, t, r, n) { + let i = + e.find((s) => Object.prototype.hasOwnProperty.call(s, t)) || + e[e.length - 1], + o = Object.getOwnPropertyDescriptor(i, t); + return o?.set && o?.get ? o.set.call(n, r) || !0 : Reflect.set(i, t, r); + }, + }; + function Pn() { + return Reflect.ownKeys(this).reduce( + (t, r) => ((t[r] = Reflect.get(this, r)), t), + {}, + ); + } + function Te(e) { + let t = (n) => typeof n == "object" && !Array.isArray(n) && n !== null, + r = (n, i = "") => { + Object.entries(Object.getOwnPropertyDescriptors(n)).forEach( + ([o, { value: s, enumerable: a }]) => { + if ( + a === !1 || + s === void 0 || + (typeof s == "object" && s !== null && s.__v_skip) + ) + return; + let c = i === "" ? o : `${i}.${o}`; + typeof s == "object" && s !== null && s._x_interceptor + ? (n[o] = s.initialize(e, c, o)) + : t(s) && s !== n && !(s instanceof Element) && r(s, c); + }, + ); + }; + return r(e); + } + function Re(e, t = () => {}) { + let r = { + initialValue: void 0, + _x_interceptor: !0, + initialize(n, i, o) { + return e( + this.initialValue, + () => In(n, i), + (s) => ht(n, i, s), + i, + o, + ); + }, + }; + return ( + t(r), + (n) => { + if (typeof n == "object" && n !== null && n._x_interceptor) { + let i = r.initialize.bind(r); + r.initialize = (o, s, a) => { + let c = n.initialize(o, s, a); + return ((r.initialValue = c), i(o, s, a)); + }; + } else r.initialValue = n; + return r; + } + ); + } + function In(e, t) { + return t.split(".").reduce((r, n) => r[n], e); + } + function ht(e, t, r) { + if ((typeof t == "string" && (t = t.split(".")), t.length === 1)) + e[t[0]] = r; + else { + if (t.length === 0) throw error; + return (e[t[0]] || (e[t[0]] = {}), ht(e[t[0]], t.slice(1), r)); + } + } + var ir = {}; + function y(e, t) { + ir[e] = t; + } + function fe(e, t) { + let r = Ln(t); + return ( + Object.entries(ir).forEach(([n, i]) => { + Object.defineProperty(e, `$${n}`, { + get() { + return i(t, r); + }, + enumerable: !1, + }); + }), + e + ); + } + function Ln(e) { + let [t, r] = _t(e), + n = { interceptor: Re, ...t }; + return (te(e, r), n); + } + function or(e, t, r, ...n) { + try { + return r(...n); + } catch (i) { + re(i, e, t); + } + } + function re(e, t, r = void 0) { + ((e = Object.assign(e ?? { message: "No error message given." }, { + el: t, + expression: r, + })), + console.warn( + `Alpine Expression Error: ${e.message} + +${ + r + ? 'Expression: "' + + r + + `" + +` + : "" +}`, + t, + ), + setTimeout(() => { + throw e; + }, 0)); + } + var Me = !0; + function ke(e) { + let t = Me; + Me = !1; + let r = e(); + return ((Me = t), r); + } + function R(e, t, r = {}) { + let n; + return (x(e, t)((i) => (n = i), r), n); + } + function x(...e) { + return sr(...e); + } + var sr = xt; + function ar(e) { + sr = e; + } + function xt(e, t) { + let r = {}; + fe(r, e); + let n = [r, ...B(e)], + i = typeof t == "function" ? $n(n, t) : Fn(n, t, e); + return or.bind(null, e, t, i); + } + function $n(e, t) { + return (r = () => {}, { scope: n = {}, params: i = [] } = {}) => { + let o = t.apply(z([n, ...e]), i); + Ne(r, o); + }; + } + var gt = {}; + function jn(e, t) { + if (gt[e]) return gt[e]; + let r = Object.getPrototypeOf(async function () {}).constructor, + n = + /^[\n\s]*if.*\(.*\)/.test(e.trim()) || /^(let|const)\s/.test(e.trim()) + ? `(async()=>{ ${e} })()` + : e, + o = (() => { + try { + let s = new r( + ["__self", "scope"], + `with (scope) { __self.result = ${n} }; __self.finished = true; return __self.result;`, + ); + return ( + Object.defineProperty(s, "name", { value: `[Alpine] ${e}` }), + s + ); + } catch (s) { + return (re(s, t, e), Promise.resolve()); + } + })(); + return ((gt[e] = o), o); + } + function Fn(e, t, r) { + let n = jn(t, r); + return (i = () => {}, { scope: o = {}, params: s = [] } = {}) => { + ((n.result = void 0), (n.finished = !1)); + let a = z([o, ...e]); + if (typeof n == "function") { + let c = n(n, a).catch((l) => re(l, r, t)); + n.finished + ? (Ne(i, n.result, a, s, r), (n.result = void 0)) + : c + .then((l) => { + Ne(i, l, a, s, r); + }) + .catch((l) => re(l, r, t)) + .finally(() => (n.result = void 0)); + } + }; + } + function Ne(e, t, r, n, i) { + if (Me && typeof t == "function") { + let o = t.apply(r, n); + o instanceof Promise + ? o.then((s) => Ne(e, s, r, n)).catch((s) => re(s, i, t)) + : e(o); + } else + typeof t == "object" && t instanceof Promise ? t.then((o) => e(o)) : e(t); + } + var wt = "x-"; + function C(e = "") { + return wt + e; + } + function cr(e) { + wt = e; + } + var De = {}; + function d(e, t) { + return ( + (De[e] = t), + { + before(r) { + if (!De[r]) { + console.warn( + String.raw`Cannot find directive \`${r}\`. \`${e}\` will use the default order of execution`, + ); + return; + } + let n = G.indexOf(r); + G.splice(n >= 0 ? n : G.indexOf("DEFAULT"), 0, e); + }, + } + ); + } + function lr(e) { + return Object.keys(De).includes(e); + } + function pe(e, t, r) { + if (((t = Array.from(t)), e._x_virtualDirectives)) { + let o = Object.entries(e._x_virtualDirectives).map(([a, c]) => ({ + name: a, + value: c, + })), + s = Et(o); + ((o = o.map((a) => + s.find((c) => c.name === a.name) + ? { name: `x-bind:${a.name}`, value: `"${a.value}"` } + : a, + )), + (t = t.concat(o))); + } + let n = {}; + return t + .map(dr((o, s) => (n[o] = s))) + .filter(mr) + .map(zn(n, r)) + .sort(Kn) + .map((o) => Bn(e, o)); + } + function Et(e) { + return Array.from(e) + .map(dr()) + .filter((t) => !mr(t)); + } + var yt = !1, + de = new Map(), + ur = Symbol(); + function fr(e) { + yt = !0; + let t = Symbol(); + ((ur = t), de.set(t, [])); + let r = () => { + for (; de.get(t).length; ) de.get(t).shift()(); + de.delete(t); + }, + n = () => { + ((yt = !1), r()); + }; + (e(r), n()); + } + function _t(e) { + let t = [], + r = (a) => t.push(a), + [n, i] = Yt(e); + return ( + t.push(i), + [ + { + Alpine: K, + effect: n, + cleanup: r, + evaluateLater: x.bind(x, e), + evaluate: R.bind(R, e), + }, + () => t.forEach((a) => a()), + ] + ); + } + function Bn(e, t) { + let r = () => {}, + n = De[t.type] || r, + [i, o] = _t(e); + Oe(e, t.original, o); + let s = () => { + e._x_ignore || + e._x_ignoreSelf || + (n.inline && n.inline(e, t, i), + (n = n.bind(n, e, t, i)), + yt ? de.get(ur).push(n) : n()); + }; + return ((s.runCleanups = o), s); + } + var Pe = + (e, t) => + ({ name: r, value: n }) => ( + r.startsWith(e) && (r = r.replace(e, t)), + { name: r, value: n } + ), + Ie = (e) => e; + function dr(e = () => {}) { + return ({ name: t, value: r }) => { + let { name: n, value: i } = pr.reduce((o, s) => s(o), { + name: t, + value: r, + }); + return (n !== t && e(n, t), { name: n, value: i }); + }; + } + var pr = []; + function ne(e) { + pr.push(e); + } + function mr({ name: e }) { + return hr().test(e); + } + var hr = () => new RegExp(`^${wt}([^:^.]+)\\b`); + function zn(e, t) { + return ({ name: r, value: n }) => { + let i = r.match(hr()), + o = r.match(/:([a-zA-Z0-9\-_:]+)/), + s = r.match(/\.[^.\]]+(?=[^\]]*$)/g) || [], + a = t || e[r] || r; + return { + type: i ? i[1] : null, + value: o ? o[1] : null, + modifiers: s.map((c) => c.replace(".", "")), + expression: n, + original: a, + }; + }; + } + var bt = "DEFAULT", + G = [ + "ignore", + "ref", + "data", + "id", + "anchor", + "bind", + "init", + "for", + "model", + "modelable", + "transition", + "show", + "if", + bt, + "teleport", + ]; + function Kn(e, t) { + let r = G.indexOf(e.type) === -1 ? bt : e.type, + n = G.indexOf(t.type) === -1 ? bt : t.type; + return G.indexOf(r) - G.indexOf(n); + } + function J(e, t, r = {}) { + e.dispatchEvent( + new CustomEvent(t, { + detail: r, + bubbles: !0, + composed: !0, + cancelable: !0, + }), + ); + } + function D(e, t) { + if (typeof ShadowRoot == "function" && e instanceof ShadowRoot) { + Array.from(e.children).forEach((i) => D(i, t)); + return; + } + let r = !1; + if ((t(e, () => (r = !0)), r)) return; + let n = e.firstElementChild; + for (; n; ) (D(n, t, !1), (n = n.nextElementSibling)); + } + function E(e, ...t) { + console.warn(`Alpine Warning: ${e}`, ...t); + } + var _r = !1; + function gr() { + (_r && + E( + "Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.", + ), + (_r = !0), + document.body || + E( + "Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's ` +} diff --git a/web/templates/layouts/main.templ b/web/templates/layouts/main.templ index a93de3d..a33327a 100644 --- a/web/templates/layouts/main.templ +++ b/web/templates/layouts/main.templ @@ -3,6 +3,7 @@ package layouts import ( "maot-shortner/web/templates/components/input" "maot-shortner/web/templates/components/label" + "maot-shortner/web/templates/components/toast" "maot-shortner/web/templates/modules" ) @@ -16,6 +17,9 @@ templ MainLayout() { @input.Script() @label.Script() + @toast.Script() + +
diff --git a/web/templates/pages/home.templ b/web/templates/pages/home.templ index 42d6b07..d0a9502 100644 --- a/web/templates/pages/home.templ +++ b/web/templates/pages/home.templ @@ -26,6 +26,7 @@ templ Home() { @icon.Send(icon.Props{Size: 20}) }
+
} }