PageSourceSearch

https://minsep.cm/livewire/livewire.js?id=5d8beb2e

js minsep.cm collected 2026-10-02 20:43:01 UTC 328,209 bytes, 9,659 lines download raw bytes

1(() => {
2  var __create = Object.create;
3  var __defProp = Object.defineProperty;
4  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5  var __getOwnPropNames = Object.getOwnPropertyNames;
6  var __getProtoOf = Object.getPrototypeOf;
7  var __hasOwnProp = Object.prototype.hasOwnProperty;
8  var __commonJS = (cb, mod) => function __require() {
9    return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10  };
11  var __copyProps = (to, from, except, desc) => {
12    if (from && typeof from === "object" || typeof from === "function") {
13      for (let key of __getOwnPropNames(from))
14        if (!__hasOwnProp.call(to, key) && key !== except)
15          __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16    }
17    return to;
18  };
19  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
21  
vendor: 10,237 bytes, lines 21-298
21// node_modules/nprogress/nprogress.js
22  var require_nprogress = __commonJS({
23    "node_modules/nprogress/nprogress.js"(exports, module) {
24      (function(root, factory) {
25        if (typeof define === "function" && define.amd) {
26          define(factory);
27        } else if (typeof exports === "object") {
28          module.exports = factory();
29        } else {
30          root.NProgress = factory();
31        }
32      })(exports, function() {
33        var NProgress2 = {};
34        NProgress2.version = "0.2.0";
35        var Settings = NProgress2.settings = {
36          minimum: 0.08,
37          easing: "ease",
38          positionUsing: "",
39          speed: 200,
40          trickle: true,
41          trickleRate: 0.02,
42          trickleSpeed: 800,
43          showSpinner: true,
44          barSelector: '[role="bar"]',
45          spinnerSelector: '[role="spinner"]',
46          parent: "body",
47          template: '<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'
48        };
49        NProgress2.configure = function(options) {
50          var key, value;
51          for (key in options) {
52            value = options[key];
53            if (value !== void 0 && options.hasOwnProperty(key))
54              Settings[key] = value;
55          }
56          return this;
57        };
58        NProgress2.status = null;
59        NProgress2.set = function(n) {
60          var started2 = NProgress2.isStarted();
61          n = clamp2(n, Settings.minimum, 1);
62          NProgress2.status = n === 1 ? null : n;
63          var progress = NProgress2.render(!started2), bar = progress.querySelector(Settings.barSelector), speed = Settings.speed, ease = Settings.easing;
64          progress.offsetWidth;
65          queue2(function(next) {
66            if (Settings.positionUsing === "")
67              Settings.positionUsing = NProgress2.getPositioningCSS();
68            css(bar, barPositionCSS(n, speed, ease));
69            if (n === 1) {
70              css(progress, {
71                transition: "none",
72                opacity: 1
73              });
74              progress.offsetWidth;
75              setTimeout(function() {
76                css(progress, {
77                  transition: "all " + speed + "ms linear",
78                  opacity: 0
79                });
80                setTimeout(function() {
81                  NProgress2.remove();
82                  next();
83                }, speed);
84              }, speed);
85            } else {
86              setTimeout(next, speed);
87            }
88          });
89          return this;
90        };
91        NProgress2.isStarted = function() {
92          return typeof NProgress2.status === "number";
93        };
94        NProgress2.start = function() {
95          if (!NProgress2.status)
96            NProgress2.set(0);
97          var work = function() {
98            setTimeout(function() {
99              if (!NProgress2.status)
100                return;
101              NProgress2.trickle();
102              work();
103            }, Settings.trickleSpeed);
104          };
105          if (Settings.trickle)
106            work();
107          return this;
108        };
109        NProgress2.done = function(force) {
110          if (!force && !NProgress2.status)
111            return this;
112          return NProgress2.inc(0.3 + 0.5 * Math.random()).set(1);
113        };
114        NProgress2.inc = function(amount) {
115          var n = NProgress2.status;
116          if (!n) {
117            return NProgress2.start();
118          } else {
119            if (typeof amount !== "number") {
120              amount = (1 - n) * clamp2(Math.random() * n, 0.1, 0.95);
121            }
122            n = clamp2(n + amount, 0, 0.994);
123            return NProgress2.set(n);
124          }
125        };
126        NProgress2.trickle = function() {
127          return NProgress2.inc(Math.random() * Settings.trickleRate);
128        };
129        (function() {
130          var initial = 0, current = 0;
131          NProgress2.promise = function($promise) {
132            if (!$promise || $promise.state() === "resolved") {
133              return this;
134            }
135            if (current === 0) {
136              NProgress2.start();
137            }
138            initial++;
139            current++;
140            $promise.always(function() {
141              current--;
142              if (current === 0) {
143                initial = 0;
144                NProgress2.done();
145              } else {
146                NProgress2.set((initial - current) / initial);
147              }
148            });
149            return this;
150          };
151        })();
152        NProgress2.render = function(fromStart) {
153          if (NProgress2.isRendered())
154            return document.getElementById("nprogress");
155          addClass(document.documentElement, "nprogress-busy");
156          var progress = document.createElement("div");
157          progress.id = "nprogress";
158          progress.innerHTML = Settings.template;
159          var bar = progress.querySelector(Settings.barSelector), perc = fromStart ? "-100" : toBarPerc(NProgress2.status || 0), parent = document.querySelector(Settings.parent), spinner;
160          css(bar, {
161            transition: "all 0 linear",
162            transform: "translate3d(" + perc + "%,0,0)"
163          });
164          if (!Settings.showSpinner) {
165            spinner = progress.querySelector(Settings.spinnerSelector);
166            spinner && removeElement(spinner);
167          }
168          if (parent != document.body) {
169            addClass(parent, "nprogress-custom-parent");
170          }
171          parent.appendChild(progress);
172          return progress;
173        };
174        NProgress2.remove = function() {
175          removeClass(document.documentElement, "nprogress-busy");
176          removeClass(document.querySelector(Settings.parent), "nprogress-custom-parent");
177          var progress = document.getElementById("nprogress");
178          progress && removeElement(progress);
179        };
180        NProgress2.isRendered = function() {
181          return !!document.getElementById("nprogress");
182        };
183        NProgress2.getPositioningCSS = function() {
184          var bodyStyle = document.body.style;
185          var vendorPrefix = "WebkitTransform" in bodyStyle ? "Webkit" : "MozTransform" in bodyStyle ? "Moz" : "msTransform" in bodyStyle ? "ms" : "OTransform" in bodyStyle ? "O" : "";
186          if (vendorPrefix + "Perspective" in bodyStyle) {
187            return "translate3d";
188          } else if (vendorPrefix + "Transform" in bodyStyle) {
189            return "translate";
190          } else {
191            return "margin";
192          }
193        };
194        function clamp2(n, min2, max2) {
195          if (n < min2)
196            return min2;
197          if (n > max2)
198            return max2;
199          return n;
200        }
201        function toBarPerc(n) {
202          return (-1 + n) * 100;
203        }
204        function barPositionCSS(n, speed, ease) {
205          var barCSS;
206          if (Settings.positionUsing === "translate3d") {
207            barCSS = { transform: "translate3d(" + toBarPerc(n) + "%,0,0)" };
208          } else if (Settings.positionUsing === "translate") {
209            barCSS = { transform: "translate(" + toBarPerc(n) + "%,0)" };
210          } else {
211            barCSS = { "margin-left": toBarPerc(n) + "%" };
212          }
213          barCSS.transition = "all " + speed + "ms " + ease;
214          return barCSS;
215        }
216        var queue2 = function() {
217          var pending = [];
218          function next() {
219            var fn = pending.shift();
220            if (fn) {
221              fn(next);
222            }
223          }
224          return function(fn) {
225            pending.push(fn);
226            if (pending.length == 1)
227              next();
228          };
229        }();
230        var css = function() {
231          var cssPrefixes = ["Webkit", "O", "Moz", "ms"], cssProps = {};
232          function camelCase3(string) {
233            return string.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, function(match, letter) {
234              return letter.toUpperCase();
235            });
236          }
237          function getVendorProp(name) {
238            var style = document.body.style;
239            if (name in style)
240              return name;
241            var i = cssPrefixes.length, capName = name.charAt(0).toUpperCase() + name.slice(1), vendorName;
242            while (i--) {
243              vendorName = cssPrefixes[i] + capName;
244              if (vendorName in style)
245                return vendorName;
246            }
247            return name;
248          }
249          function getStyleProp(name) {
250            name = camelCase3(name);
251            return cssProps[name] || (cssProps[name] = getVendorProp(name));
252          }
253          function applyCss(element, prop, value) {
254            prop = getStyleProp(prop);
255            element.style[prop] = value;
256          }
257          return function(element, properties2) {
258            var args = arguments, prop, value;
259            if (args.length == 2) {
260              for (prop in properties2) {
261                value = properties2[prop];
262                if (value !== void 0 && properties2.hasOwnProperty(prop))
263                  applyCss(element, prop, value);
264              }
265            } else {
266              applyCss(element, args[1], args[2]);
267            }
268          };
269        }();
270        function hasClass(element, name) {
271          var list = typeof element == "string" ? element : classList(element);
272          return list.indexOf(" " + name + " ") >= 0;
273        }
274        function addClass(element, name) {
275          var oldList = classList(element), newList = oldList + name;
276          if (hasClass(oldList, name))
277            return;
278          element.className = newList.substring(1);
279        }
280        function removeClass(element, name) {
281          var oldList = classList(element), newList;
282          if (!hasClass(element, name))
283            return;
284          newList = oldList.replace(" " + name + " ", " ");
285          element.className = newList.substring(1, newList.length - 1);
286        }
287        function classList(element) {
288          return (" " + (element.className || "") + " ").replace(/\s+/gi, " ");
289        }
290        function removeElement(element) {
291          element && element.parentNode && element.parentNode.removeChild(element);
292        }
293        return NProgress2;
294      });
295    }
296  });
297
298  
298// js/utils.js
299  var WeakBag = class {
300    constructor() {
301      this.arrays = /* @__PURE__ */ new WeakMap();
302    }
303    add(key, value) {
304      if (!this.arrays.has(key))
305        this.arrays.set(key, []);
306      this.arrays.get(key).push(value);
307    }
308    get(key) {
309      return this.arrays.has(key) ? this.arrays.get(key) : [];
310    }
311    each(key, callback) {
312      return this.get(key).forEach(callback);
313    }
314  };
315  function dispatch(el, name, detail = {}, bubbles = true) {
316    el.dispatchEvent(new CustomEvent(name, {
317      detail,
318      bubbles,
319      composed: true,
320      cancelable: true
321    }));
322  }
323  function isObjecty(subject) {
324    return typeof subject === "object" && subject !== null;
325  }
326  function isObject(subject) {
327    return isObjecty(subject) && !isArray(subject);
328  }
329  function isArray(subject) {
330    return Array.isArray(subject);
331  }
332  function isFunction(subject) {
333    return typeof subject === "function";
334  }
335  function isPrimitive(subject) {
336    return typeof subject !== "object" || subject === null;
337  }
338  function deepClone(obj) {
339    return JSON.parse(JSON.stringify(obj));
340  }
341  function dataGet(object, key) {
342    if (key === "")
343      return object;
344    return key.split(".").reduce((carry, i) => {
345      if (carry === void 0)
346        return void 0;
347      return carry[i];
348    }, object);
349  }
350  function dataSet(object, key, value) {
351    let segments = key.split(".");
352    if (segments.length === 1) {
353      return object[key] = value;
354    }
355    let firstSegment = segments.shift();
356    let restOfSegments = segments.join(".");
357    if (object[firstSegment] === void 0) {
358      object[firstSegment] = {};
359    }
360    dataSet(object[firstSegment], restOfSegments, value);
361  }
362  function diff(left, right, diffs = {}, path = "") {
363    if (left === right)
364      return diffs;
365    if (typeof left !== typeof right || isObject(left) && isArray(right) || isArray(left) && isObject(right)) {
366      diffs[path] = right;
367      return diffs;
368    }
369    if (isPrimitive(left) || isPrimitive(right)) {
370      diffs[path] = right;
371      return diffs;
372    }
373    let leftKeys = Object.keys(left);
374    Object.entries(right).forEach(([key, value]) => {
375      diffs = { ...diffs, ...diff(left[key], right[key], diffs, path === "" ? key : `${path}.${key}`) };
376      leftKeys = leftKeys.filter((i) => i !== key);
377    });
378    leftKeys.forEach((key) => {
379      diffs[`${path}.${key}`] = "__rm__";
380    });
381    return diffs;
382  }
383  function extractData(payload) {
384    let value = isSynthetic(payload) ? payload[0] : payload;
385    let meta = isSynthetic(payload) ? payload[1] : void 0;
386    if (isObjecty(value)) {
387      Object.entries(value).forEach(([key, iValue]) => {
388        value[key] = extractData(iValue);
389      });
390    }
391    return value;
392  }
393  function isSynthetic(subject) {
394    return Array.isArray(subject) && subject.length === 2 && typeof subject[1] === "object" && Object.keys(subject[1]).includes("s");
395  }
396  function getCsrfToken() {
397    if (document.querySelector('meta[name="csrf-token"]')) {
398      return document.querySelector('meta[name="csrf-token"]').getAttribute("content");
399    }
400    if (document.querySelector("[data-csrf]")) {
401      return document.querySelector("[data-csrf]").getAttribute("data-csrf");
402    }
403    if (window.livewireScriptConfig["csrf"] ?? false) {
404      return window.livewireScriptConfig["csrf"];
405    }
406    throw "Livewire: No CSRF token detected";
407  }
408  var nonce;
409  function getNonce() {
410    if (nonce)
411      return nonce;
412    if (window.livewireScriptConfig && (window.livewireScriptConfig["nonce"] ?? false)) {
413      nonce = window.livewireScriptConfig["nonce"];
414      return nonce;
415    }
416    const elWithNonce = document.querySelector("style[data-livewire-style][nonce]");
417    if (elWithNonce) {
418      nonce = elWithNonce.nonce;
419      return nonce;
420    }
421    return null;
422  }
423  function getUpdateUri() {
424    return document.querySelector("[data-update-uri]")?.getAttribute("data-update-uri") ?? window.livewireScriptConfig["uri"] ?? null;
425  }
426  function contentIsFromDump(content) {
427    return !!content.match(/<script>Sfdump\(".+"\)<\/script>/);
428  }
429  function splitDumpFromContent(content) {
430    let dump = content.match(/.*<script>Sfdump\(".+"\)<\/script>/s);
431    return [dump, content.replace(dump, "")];
432  }
433
434  
434// js/features/supportFileUploads.js
435  var uploadManagers = /* @__PURE__ */ new WeakMap();
436  function getUploadManager(component) {
437    if (!uploadManagers.has(component)) {
438      let manager = new UploadManager(component);
439      uploadManagers.set(component, manager);
440      manager.registerListeners();
441    }
442    return uploadManagers.get(component);
443  }
444  function handleFileUpload(el, property, component, cleanup3) {
445    let manager = getUploadManager(component);
446    let start3 = () => el.dispatchEvent(new CustomEvent("livewire-upload-start", { bubbles: true, detail: { id: component.id, property } }));
447    let finish = () => el.dispatchEvent(new CustomEvent("livewire-upload-finish", { bubbles: true, detail: { id: component.id, property } }));
448    let error2 = () => el.dispatchEvent(new CustomEvent("livewire-upload-error", { bubbles: true, detail: { id: component.id, property } }));
449    let cancel = () => el.dispatchEvent(new CustomEvent("livewire-upload-cancel", { bubbles: true, detail: { id: component.id, property } }));
450    let progress = (progressEvent) => {
451      var percentCompleted = Math.round(progressEvent.loaded * 100 / progressEvent.total);
452      el.dispatchEvent(new CustomEvent("livewire-upload-progress", {
453        bubbles: true,
454        detail: { progress: percentCompleted }
455      }));
456    };
457    let eventHandler = (e) => {
458      if (e.target.files.length === 0)
459        return;
460      start3();
461      if (e.target.multiple) {
462        manager.uploadMultiple(property, e.target.files, finish, error2, progress, cancel);
463      } else {
464        manager.upload(property, e.target.files[0], finish, error2, progress, cancel);
465      }
466    };
467    el.addEventListener("change", eventHandler);
468    let clearFileInputValue = () => {
469      el.value = null;
470    };
471    el.addEventListener("click", clearFileInputValue);
472    el.addEventListener("livewire-upload-cancel", clearFileInputValue);
473    cleanup3(() => {
474      el.removeEventListener("change", eventHandler);
475      el.removeEventListener("click", clearFileInputValue);
476    });
477  }
478  var UploadManager = class {
479    constructor(component) {
480      this.component = component;
481      this.uploadBag = new MessageBag();
482      this.removeBag = new MessageBag();
483    }
484    registerListeners() {
485      this.component.$wire.$on("upload:generatedSignedUrl", ({ name, url }) => {
486        setUploadLoading(this.component, name);
487        this.handleSignedUrl(name, url);
488      });
489      this.component.$wire.$on("upload:generatedSignedUrlForS3", ({ name, payload }) => {
490        setUploadLoading(this.component, name);
491        this.handleS3PreSignedUrl(name, payload);
492      });
493      this.component.$wire.$on("upload:finished", ({ name, tmpFilenames }) => this.markUploadFinished(name, tmpFilenames));
494      this.component.$wire.$on("upload:errored", ({ name }) => this.markUploadErrored(name));
495      this.component.$wire.$on("upload:removed", ({ name, tmpFilename }) => this.removeBag.shift(name).finishCallback(tmpFilename));
496    }
497    upload(name, file, finishCallback, errorCallback, progressCallback, cancelledCallback) {
498      this.setUpload(name, {
499        files: [file],
500        multiple: false,
501        finishCallback,
502        errorCallback,
503        progressCallback,
504        cancelledCallback
505      });
506    }
507    uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback) {
508      this.setUpload(name, {
509        files: Array.from(files),
510        multiple: true,
511        finishCallback,
512        errorCallback,
513        progressCallback,
514        cancelledCallback
515      });
516    }
517    removeUpload(name, tmpFilename, finishCallback) {
518      this.removeBag.push(name, {
519        tmpFilename,
520        finishCallback
521      });
522      this.component.$wire.call("_removeUpload", name, tmpFilename);
523    }
524    setUpload(name, uploadObject) {
525      this.uploadBag.add(name, uploadObject);
526      if (this.uploadBag.get(name).length === 1) {
527        this.startUpload(name, uploadObject);
528      }
529    }
530    handleSignedUrl(name, url) {
531      let formData = new FormData();
532      Array.from(this.uploadBag.first(name).files).forEach((file) => formData.append("files[]", file, file.name));
533      let headers = {
534        "Accept": "application/json"
535      };
536      let csrfToken = getCsrfToken();
537      if (csrfToken)
538        headers["X-CSRF-TOKEN"] = csrfToken;
539      this.makeRequest(name, formData, "post", url, headers, (response) => {
540        return response.paths;
541      });
542    }
543    handleS3PreSignedUrl(name, payload) {
544      let formData = this.uploadBag.first(name).files[0];
545      let headers = payload.headers;
546      if ("Host" in headers)
547        delete headers.Host;
548      let url = payload.url;
549      this.makeRequest(name, formData, "put", url, headers, (response) => {
550        return [payload.path];
551      });
552    }
553    makeRequest(name, formData, method, url, headers, retrievePaths) {
554      let request = new XMLHttpRequest();
555      request.open(method, url);
556      Object.entries(headers).forEach(([key, value]) => {
557        request.setRequestHeader(key, value);
558      });
559      request.upload.addEventListener("progress", (e) => {
560        e.detail = {};
561        e.detail.progress = Math.round(e.loaded * 100 / e.total);
562        this.uploadBag.first(name).progressCallback(e);
563      });
564      request.addEventListener("load", () => {
565        if ((request.status + "")[0] === "2") {
566          let paths = retrievePaths(request.response && JSON.parse(request.response));
567          this.component.$wire.call("_finishUpload", name, paths, this.uploadBag.first(name).multiple);
568          return;
569        }
570        let errors = null;
571        if (request.status === 422) {
572          errors = request.response;
573        }
574        this.component.$wire.call("_uploadErrored", name, errors, this.uploadBag.first(name).multiple);
575      });
576      this.uploadBag.first(name).request = request;
577      request.send(formData);
578    }
579    startUpload(name, uploadObject) {
580      let fileInfos = uploadObject.files.map((file) => {
581        return { name: file.name, size: file.size, type: file.type };
582      });
583      this.component.$wire.call("_startUpload", name, fileInfos, uploadObject.multiple);
584      setUploadLoading(this.component, name);
585    }
586    markUploadFinished(name, tmpFilenames) {
587      unsetUploadLoading(this.component);
588      let uploadObject = this.uploadBag.shift(name);
589      uploadObject.finishCallback(uploadObject.multiple ? tmpFilenames : tmpFilenames[0]);
590      if (this.uploadBag.get(name).length > 0)
591        this.startUpload(name, this.uploadBag.last(name));
592    }
593    markUploadErrored(name) {
594      unsetUploadLoading(this.component);
595      this.uploadBag.shift(name).errorCallback();
596      if (this.uploadBag.get(name).length > 0)
597        this.startUpload(name, this.uploadBag.last(name));
598    }
599    cancelUpload(name, cancelledCallback = null) {
600      unsetUploadLoading(this.component);
601      let uploadItem = this.uploadBag.first(name);
602      if (uploadItem) {
603        uploadItem.request.abort();
604        this.uploadBag.shift(name).cancelledCallback();
605        if (cancelledCallback)
606          cancelledCallback();
607      }
608    }
609  };
610  var MessageBag = class {
611    constructor() {
612      this.bag = {};
613    }
614    add(name, thing) {
615      if (!this.bag[name]) {
616        this.bag[name] = [];
617      }
618      this.bag[name].push(thing);
619    }
620    push(name, thing) {
621      this.add(name, thing);
622    }
623    first(name) {
624      if (!this.bag[name])
625        return null;
626      return this.bag[name][0];
627    }
628    last(name) {
629      return this.bag[name].slice(-1)[0];
630    }
631    get(name) {
632      return this.bag[name];
633    }
634    shift(name) {
635      return this.bag[name].shift();
636    }
637    call(name, ...params) {
638      (this.listeners[name] || []).forEach((callback) => {
639        callback(...params);
640      });
641    }
642    has(name) {
643      return Object.keys(this.listeners).includes(name);
644    }
645  };
646  function setUploadLoading() {
647  }
648  function unsetUploadLoading() {
649  }
650  function upload(component, name, file, finishCallback = () => {
651  }, errorCallback = () => {
652  }, progressCallback = () => {
653  }, cancelledCallback = () => {
654  }) {
655    let uploadManager = getUploadManager(component);
656    uploadManager.upload(name, file, finishCallback, errorCallback, progressCallback, cancelledCallback);
657  }
658  function uploadMultiple(component, name, files, finishCallback = () => {
659  }, errorCallback = () => {
660  }, progressCallback = () => {
661  }, cancelledCallback = () => {
662  }) {
663    let uploadManager = getUploadManager(component);
664    uploadManager.uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback);
665  }
666  function removeUpload(component, name, tmpFilename, finishCallback = () => {
667  }, errorCallback = () => {
668  }) {
669    let uploadManager = getUploadManager(component);
670    uploadManager.removeUpload(name, tmpFilename, finishCallback, errorCallback);
671  }
672  function cancelUpload(component, name, cancelledCallback = () => {
673  }) {
674    let uploadManager = getUploadManager(component);
675    uploadManager.cancelUpload(name, cancelledCallback);
676  }
677
678  
678// ../alpine/packages/alpinejs/dist/module.esm.js
679  var flushPending = false;
680  var flushing = false;
681  var queue = [];
682  var lastFlushedIndex = -1;
683  function scheduler(callback) {
684    queueJob(callback);
685  }
686  function queueJob(job) {
687    if (!queue.includes(job))
688      queue.push(job);
689    queueFlush();
690  }
691  function dequeueJob(job) {
692    let index = queue.indexOf(job);
693    if (index !== -1 && index > lastFlushedIndex)
694      queue.splice(index, 1);
695  }
696  function queueFlush() {
697    if (!flushing && !flushPending) {
698      flushPending = true;
699      queueMicrotask(flushJobs);
700    }
701  }
702  function flushJobs() {
703    flushPending = false;
704    flushing = true;
705    for (let i = 0; i < queue.length; i++) {
706      queue[i]();
707      lastFlushedIndex = i;
708    }
709    queue.length = 0;
710    lastFlushedIndex = -1;
711    flushing = false;
712  }
713  var reactive;
714  var effect;
715  var release;
716  var raw;
717  var shouldSchedule = true;
718  function disableEffectScheduling(callback) {
719    shouldSchedule = false;
720    callback();
721    shouldSchedule = true;
722  }
723  function setReactivityEngine(engine) {
724    reactive = engine.reactive;
725    release = engine.release;
726    effect = (callback) => engine.effect(callback, { scheduler: (task) => {
727      if (shouldSchedule) {
728        scheduler(task);
729      } else {
730        task();
731      }
732    } });
733    raw = engine.raw;
734  }
735  function overrideEffect(override) {
736    effect = override;
737  }
738  function elementBoundEffect(el) {
739    let cleanup22 = () => {
740    };
741    let wrappedEffect = (callback) => {
742      let effectReference = effect(callback);
743      if (!el._x_effects) {
744        el._x_effects = /* @__PURE__ */ new Set();
745        el._x_runEffects = () => {
746          el._x_effects.forEach((i) => i());
747        };
748      }
749      el._x_effects.add(effectReference);
750      cleanup22 = () => {
751        if (effectReference === void 0)
752          return;
753        el._x_effects.delete(effectReference);
754        release(effectReference);
755      };
756      return effectReference;
757    };
758    return [wrappedEffect, () => {
759      cleanup22();
760    }];
761  }
762  function watch(getter, callback) {
763    let firstTime = true;
764    let oldValue;
765    let effectReference = effect(() => {
766      let value = getter();
767      JSON.stringify(value);
768      if (!firstTime) {
769        queueMicrotask(() => {
770          callback(value, oldValue);
771          oldValue = value;
772        });
773      } else {
774        oldValue = value;
775      }
776      firstTime = false;
777    });
778    return () => release(effectReference);
779  }
780  function dispatch2(el, name, detail = {}) {
781    el.dispatchEvent(new CustomEvent(name, {
782      detail,
783      bubbles: true,
784      composed: true,
785      cancelable: true
786    }));
787  }
788  function walk(el, callback) {
789    if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) {
790      Array.from(el.children).forEach((el2) => walk(el2, callback));
791      return;
792    }
793    let skip = false;
794    callback(el, () => skip = true);
795    if (skip)
796      return;
797    let node = el.firstElementChild;
798    while (node) {
799      walk(node, callback, false);
800      node = node.nextElementSibling;
801    }
802  }
803  function warn(message, ...args) {
804    console.warn(`Alpine Warning: ${message}`, ...args);
805  }
806  var started = false;
807  function start() {
808    if (started)
809      warn("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.");
810    started = true;
811    if (!document.body)
812      warn("Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?");
813    dispatch2(document, "alpine:init");
814    dispatch2(document, "alpine:initializing");
815    startObservingMutations();
816    onElAdded((el) => initTree(el, walk));
817    onElRemoved((el) => destroyTree(el));
818    onAttributesAdded((el, attrs) => {
819      directives(el, attrs).forEach((handle) => handle());
820    });
821    let outNestedComponents = (el) => !closestRoot(el.parentElement, true);
822    Array.from(document.querySelectorAll(allSelectors().join(","))).filter(outNestedComponents).forEach((el) => {
823      initTree(el);
824    });
825    dispatch2(document, "alpine:initialized");
826  }
827  var rootSelectorCallbacks = [];
828  var initSelectorCallbacks = [];
829  function rootSelectors() {
830    return rootSelectorCallbacks.map((fn) => fn());
831  }
832  function allSelectors() {
833    return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn) => fn());
834  }
835  function addRootSelector(selectorCallback) {
836    rootSelectorCallbacks.push(selectorCallback);
837  }
838  function addInitSelector(selectorCallback) {
839    initSelectorCallbacks.push(selectorCallback);
840  }
841  function closestRoot(el, includeInitSelectors = false) {
842    return findClosest(el, (element) => {
843      const selectors = includeInitSelectors ? allSelectors() : rootSelectors();
844      if (selectors.some((selector) => element.matches(selector)))
845        return true;
846    });
847  }
848  function findClosest(el, callback) {
849    if (!el)
850      return;
851    if (callback(el))
852      return el;
853    if (el._x_teleportBack)
854      el = el._x_teleportBack;
855    if (!el.parentElement)
856      return;
857    return findClosest(el.parentElement, callback);
858  }
859  function isRoot(el) {
860    return rootSelectors().some((selector) => el.matches(selector));
861  }
862  var initInterceptors = [];
863  function interceptInit(callback) {
864    initInterceptors.push(callback);
865  }
866  function initTree(el, walker = walk, intercept = () => {
867  }) {
868    deferHandlingDirectives(() => {
869      walker(el, (el2, skip) => {
870        intercept(el2, skip);
871        initInterceptors.forEach((i) => i(el2, skip));
872        directives(el2, el2.attributes).forEach((handle) => handle());
873        el2._x_ignore && skip();
874      });
875    });
876  }
877  function destroyTree(root, walker = walk) {
878    walker(root, (el) => {
879      cleanupAttributes(el);
880      cleanupElement(el);
881    });
882  }
883  var onAttributeAddeds = [];
884  var onElRemoveds = [];
885  var onElAddeds = [];
886  function onElAdded(callback) {
887    onElAddeds.push(callback);
888  }
889  function onElRemoved(el, callback) {
890    if (typeof callback === "function") {
891      if (!el._x_cleanups)
892        el._x_cleanups = [];
893      el._x_cleanups.push(callback);
894    } else {
895      callback = el;
896      onElRemoveds.push(callback);
897    }
898  }
899  function onAttributesAdded(callback) {
900    onAttributeAddeds.push(callback);
901  }
902  function onAttributeRemoved(el, name, callback) {
903    if (!el._x_attributeCleanups)
904      el._x_attributeCleanups = {};
905    if (!el._x_attributeCleanups[name])
906      el._x_attributeCleanups[name] = [];
907    el._x_attributeCleanups[name].push(callback);
908  }
909  function cleanupAttributes(el, names) {
910    if (!el._x_attributeCleanups)
911      return;
912    Object.entries(el._x_attributeCleanups).forEach(([name, value]) => {
913      if (names === void 0 || names.includes(name)) {
914        value.forEach((i) => i());
915        delete el._x_attributeCleanups[name];
916      }
917    });
918  }
919  function cleanupElement(el) {
920    if (el._x_cleanups) {
921      while (el._x_cleanups.length)
922        el._x_cleanups.pop()();
923    }
924  }
925  var observer = new MutationObserver(onMutate);
926  var currentlyObserving = false;
927  function startObservingMutations() {
928    observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true });
929    currentlyObserving = true;
930  }
931  function stopObservingMutations() {
932    flushObserver();
933    observer.disconnect();
934    currentlyObserving = false;
935  }
936  var queuedMutations = [];
937  function flushObserver() {
938    let records = observer.takeRecords();
939    queuedMutations.push(() => records.length > 0 && onMutate(records));
940    let queueLengthWhenTriggered = queuedMutations.length;
941    queueMicrotask(() => {
942      if (queuedMutations.length === queueLengthWhenTriggered) {
943        while (queuedMutations.length > 0)
944          queuedMutations.shift()();
945      }
946    });
947  }
948  function mutateDom(callback) {
949    if (!currentlyObserving)
950      return callback();
951    stopObservingMutations();
952    let result = callback();
953    startObservingMutations();
954    return result;
955  }
956  var isCollecting = false;
957  var deferredMutations = [];
958  function deferMutations() {
959    isCollecting = true;
960  }
961  function flushAndStopDeferringMutations() {
962    isCollecting = false;
963    onMutate(deferredMutations);
964    deferredMutations = [];
965  }
966  function onMutate(mutations) {
967    if (isCollecting) {
968      deferredMutations = deferredMutations.concat(mutations);
969      return;
970    }
971    let addedNodes = /* @__PURE__ */ new Set();
972    let removedNodes = /* @__PURE__ */ new Set();
973    let addedAttributes = /* @__PURE__ */ new Map();
974    let removedAttributes = /* @__PURE__ */ new Map();
975    for (let i = 0; i < mutations.length; i++) {
976      if (mutations[i].target._x_ignoreMutationObserver)
977        continue;
978      if (mutations[i].type === "childList") {
979        mutations[i].addedNodes.forEach((node) => node.nodeType === 1 && addedNodes.add(node));
980        mutations[i].removedNodes.forEach((node) => node.nodeType === 1 && removedNodes.add(node));
981      }
982      if (mutations[i].type === "attributes") {
983        let el = mutations[i].target;
984        let name = mutations[i].attributeName;
985        let oldValue = mutations[i].oldValue;
986        let add2 = () => {
987          if (!addedAttributes.has(el))
988            addedAttributes.set(el, []);
989          addedAttributes.get(el).push({ name, value: el.getAttribute(name) });
990        };
991        let remove = () => {
992          if (!removedAttributes.has(el))
993            removedAttributes.set(el, []);
994          removedAttributes.get(el).push(name);
995        };
996        if (el.hasAttribute(name) && oldValue === null) {
997          add2();
998        } else if (el.hasAttribute(name)) {
999          remove();
1000          add2();
1001        } else {
1002          remove();
1003        }
1004      }
1005    }
1006    removedAttributes.forEach((attrs, el) => {
1007      cleanupAttributes(el, attrs);
1008    });
1009    addedAttributes.forEach((attrs, el) => {
1010      onAttributeAddeds.forEach((i) => i(el, attrs));
1011    });
1012    for (let node of removedNodes) {
1013      if (addedNodes.has(node))
1014        continue;
1015      onElRemoveds.forEach((i) => i(node));
1016      destroyTree(node);
1017    }
1018    addedNodes.forEach((node) => {
1019      node._x_ignoreSelf = true;
1020      node._x_ignore = true;
1021    });
1022    for (let node of addedNodes) {
1023      if (removedNodes.has(node))
1024        continue;
1025      if (!node.isConnected)
1026        continue;
1027      delete node._x_ignoreSelf;
1028      delete node._x_ignore;
1029      onElAddeds.forEach((i) => i(node));
1030      node._x_ignore = true;
1031      node._x_ignoreSelf = true;
1032    }
1033    addedNodes.forEach((node) => {
1034      delete node._x_ignoreSelf;
1035      delete node._x_ignore;
1036    });
1037    addedNodes = null;
1038    removedNodes = null;
1039    addedAttributes = null;
1040    removedAttributes = null;
1041  }
1042  function scope(node) {
1043    return mergeProxies(closestDataStack(node));
1044  }
1045  function addScopeToNode(node, data2, referenceNode) {
1046    node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)];
1047    return () => {
1048      node._x_dataStack = node._x_dataStack.filter((i) => i !== data2);
1049    };
1050  }
1051  function closestDataStack(node) {
1052    if (node._x_dataStack)
1053      return node._x_dataStack;
1054    if (typeof ShadowRoot === "function" && node instanceof ShadowRoot) {
1055      return closestDataStack(node.host);
1056    }
1057    if (!node.parentNode) {
1058      return [];
1059    }
1060    return closestDataStack(node.parentNode);
1061  }
1062  function mergeProxies(objects) {
1063    return new Proxy({ objects }, mergeProxyTrap);
1064  }
1065  var mergeProxyTrap = {
1066    ownKeys({ objects }) {
1067      return Array.from(new Set(objects.flatMap((i) => Object.keys(i))));
1068    },
1069    has({ objects }, name) {
1070      if (name == Symbol.unscopables)
1071        return false;
1072      return objects.some((obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name));
1073    },
1074    get({ objects }, name, thisProxy) {
1075      if (name == "toJSON")
1076        return collapseProxies;
1077      return Reflect.get(objects.find((obj) => Reflect.has(obj, name)) || {}, name, thisProxy);
1078    },
1079    set({ objects }, name, value, thisProxy) {
1080      const target = objects.find((obj) => Object.prototype.hasOwnProperty.call(obj, name)) || objects[objects.length - 1];
1081      const descriptor = Object.getOwnPropertyDescriptor(target, name);
1082      if (descriptor?.set && descriptor?.get)
1083        return Reflect.set(target, name, value, thisProxy);
1084      return Reflect.set(target, name, value);
1085    }
1086  };
1087  function collapseProxies() {
1088    let keys = Reflect.ownKeys(this);
1089    return keys.reduce((acc, key) => {
1090      acc[key] = Reflect.get(this, key);
1091      return acc;
1092    }, {});
1093  }
1094  function initInterceptors2(data2) {
1095    let isObject22 = (val) => typeof val === "object" && !Array.isArray(val) && val !== null;
1096    let recurse = (obj, basePath = "") => {
1097      Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => {
1098        if (enumerable === false || value === void 0)
1099          return;
1100        if (typeof value === "object" && value !== null && value.__v_skip)
1101          return;
1102        let path = basePath === "" ? key : `${basePath}.${key}`;
1103        if (typeof value === "object" && value !== null && value._x_interceptor) {
1104          obj[key] = value.initialize(data2, path, key);
1105        } else {
1106          if (isObject22(value) && value !== obj && !(value instanceof Element)) {
1107            recurse(value, path);
1108          }
1109        }
1110      });
1111    };
1112    return recurse(data2);
1113  }
1114  function interceptor(callback, mutateObj = () => {
1115  }) {
1116    let obj = {
1117      initialValue: void 0,
1118      _x_interceptor: true,
1119      initialize(data2, path, key) {
1120        return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key);
1121      }
1122    };
1123    mutateObj(obj);
1124    return (initialValue) => {
1125      if (typeof initialValue === "object" && initialValue !== null && initialValue._x_interceptor) {
1126        let initialize = obj.initialize.bind(obj);
1127        obj.initialize = (data2, path, key) => {
1128          let innerValue = initialValue.initialize(data2, path, key);
1129          obj.initialValue = innerValue;
1130          return initialize(data2, path, key);
1131        };
1132      } else {
1133        obj.initialValue = initialValue;
1134      }
1135      return obj;
1136    };
1137  }
1138  function get(obj, path) {
1139    return path.split(".").reduce((carry, segment) => carry[segment], obj);
1140  }
1141  function set(obj, path, value) {
1142    if (typeof path === "string")
1143      path = path.split(".");
1144    if (path.length === 1)
1145      obj[path[0]] = value;
1146    else if (path.length === 0)
1147      throw error;
1148    else {
1149      if (obj[path[0]])
1150        return set(obj[path[0]], path.slice(1), value);
1151      else {
1152        obj[path[0]] = {};
1153        return set(obj[path[0]], path.slice(1), value);
1154      }
1155    }
1156  }
1157  var magics = {};
1158  function magic(name, callback) {
1159    magics[name] = callback;
1160  }
1161  function injectMagics(obj, el) {
1162    Object.entries(magics).forEach(([name, callback]) => {
1163      let memoizedUtilities = null;
1164      function getUtilities() {
1165        if (memoizedUtilities) {
1166          return memoizedUtilities;
1167        } else {
1168          let [utilities, cleanup22] = getElementBoundUtilities(el);
1169          memoizedUtilities = { interceptor, ...utilities };
1170          onElRemoved(el, cleanup22);
1171          return memoizedUtilities;
1172        }
1173      }
1174      Object.defineProperty(obj, `$${name}`, {
1175        get() {
1176          return callback(el, getUtilities());
1177        },
1178        enumerable: false
1179      });
1180    });
1181    return obj;
1182  }
1183  function tryCatch(el, expression, callback, ...args) {
1184    try {
1185      return callback(...args);
1186    } catch (e) {
1187      handleError(e, el, expression);
1188    }
1189  }
1190  function handleError(error2, el, expression = void 0) {
1191    error2 = Object.assign(error2 ?? { message: "No error message given." }, { el, expression });
1192    console.warn(`Alpine Expression Error: ${error2.message}
1193
1194${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
1195    setTimeout(() => {
1196      throw error2;
1197    }, 0);
1198  }
1199  var shouldAutoEvaluateFunctions = true;
1200  function dontAutoEvaluateFunctions(callback) {
vendor: 9,825 bytes, lines 1201-1468
1201    let cache = shouldAutoEvaluateFunctions;
1202    shouldAutoEvaluateFunctions = false;
1203    let result = callback();
1204    shouldAutoEvaluateFunctions = cache;
1205    return result;
1206  }
1207  function evaluate(el, expression, extras = {}) {
1208    let result;
1209    evaluateLater(el, expression)((value) => result = value, extras);
1210    return result;
1211  }
1212  function evaluateLater(...args) {
1213    return theEvaluatorFunction(...args);
1214  }
1215  var theEvaluatorFunction = normalEvaluator;
1216  function setEvaluator(newEvaluator) {
1217    theEvaluatorFunction = newEvaluator;
1218  }
1219  function normalEvaluator(el, expression) {
1220    let overriddenMagics = {};
1221    injectMagics(overriddenMagics, el);
1222    let dataStack = [overriddenMagics, ...closestDataStack(el)];
1223    let evaluator = typeof expression === "function" ? generateEvaluatorFromFunction(dataStack, expression) : generateEvaluatorFromString(dataStack, expression, el);
1224    return tryCatch.bind(null, el, expression, evaluator);
1225  }
1226  function generateEvaluatorFromFunction(dataStack, func) {
1227    return (receiver = () => {
1228    }, { scope: scope2 = {}, params = [] } = {}) => {
1229      let result = func.apply(mergeProxies([scope2, ...dataStack]), params);
1230      runIfTypeOfFunction(receiver, result);
1231    };
1232  }
1233  var evaluatorMemo = {};
1234  function generateFunctionFromString(expression, el) {
1235    if (evaluatorMemo[expression]) {
1236      return evaluatorMemo[expression];
1237    }
1238    let AsyncFunction = Object.getPrototypeOf(async function() {
1239    }).constructor;
1240    let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression.trim()) || /^(let|const)\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;
1241    const safeAsyncFunction = () => {
1242      try {
1243        let func2 = new AsyncFunction(["__self", "scope"], `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`);
1244        Object.defineProperty(func2, "name", {
1245          value: `[Alpine] ${expression}`
1246        });
1247        return func2;
1248      } catch (error2) {
1249        handleError(error2, el, expression);
1250        return Promise.resolve();
1251      }
1252    };
1253    let func = safeAsyncFunction();
1254    evaluatorMemo[expression] = func;
1255    return func;
1256  }
1257  function generateEvaluatorFromString(dataStack, expression, el) {
1258    let func = generateFunctionFromString(expression, el);
1259    return (receiver = () => {
1260    }, { scope: scope2 = {}, params = [] } = {}) => {
1261      func.result = void 0;
1262      func.finished = false;
1263      let completeScope = mergeProxies([scope2, ...dataStack]);
1264      if (typeof func === "function") {
1265        let promise = func(func, completeScope).catch((error2) => handleError(error2, el, expression));
1266        if (func.finished) {
1267          runIfTypeOfFunction(receiver, func.result, completeScope, params, el);
1268          func.result = void 0;
1269        } else {
1270          promise.then((result) => {
1271            runIfTypeOfFunction(receiver, result, completeScope, params, el);
1272          }).catch((error2) => handleError(error2, el, expression)).finally(() => func.result = void 0);
1273        }
1274      }
1275    };
1276  }
1277  function runIfTypeOfFunction(receiver, value, scope2, params, el) {
1278    if (shouldAutoEvaluateFunctions && typeof value === "function") {
1279      let result = value.apply(scope2, params);
1280      if (result instanceof Promise) {
1281        result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value));
1282      } else {
1283        receiver(result);
1284      }
1285    } else if (typeof value === "object" && value instanceof Promise) {
1286      value.then((i) => receiver(i));
1287    } else {
1288      receiver(value);
1289    }
1290  }
1291  var prefixAsString = "x-";
1292  function prefix(subject = "") {
1293    return prefixAsString + subject;
1294  }
1295  function setPrefix(newPrefix) {
1296    prefixAsString = newPrefix;
1297  }
1298  var directiveHandlers = {};
1299  function directive(name, callback) {
1300    directiveHandlers[name] = callback;
1301    return {
1302      before(directive22) {
1303        if (!directiveHandlers[directive22]) {
1304          console.warn(String.raw`Cannot find directive \`${directive22}\`. \`${name}\` will use the default order of execution`);
1305          return;
1306        }
1307        const pos = directiveOrder.indexOf(directive22);
1308        directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf("DEFAULT"), 0, name);
1309      }
1310    };
1311  }
1312  function directives(el, attributes, originalAttributeOverride) {
1313    attributes = Array.from(attributes);
1314    if (el._x_virtualDirectives) {
1315      let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value }));
1316      let staticAttributes = attributesOnly(vAttributes);
1317      vAttributes = vAttributes.map((attribute) => {
1318        if (staticAttributes.find((attr) => attr.name === attribute.name)) {
1319          return {
1320            name: `x-bind:${attribute.name}`,
1321            value: `"${attribute.value}"`
1322          };
1323        }
1324        return attribute;
1325      });
1326      attributes = attributes.concat(vAttributes);
1327    }
1328    let transformedAttributeMap = {};
1329    let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority);
1330    return directives2.map((directive22) => {
1331      return getDirectiveHandler(el, directive22);
1332    });
1333  }
1334  function attributesOnly(attributes) {
1335    return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr));
1336  }
1337  var isDeferringHandlers = false;
1338  var directiveHandlerStacks = /* @__PURE__ */ new Map();
1339  var currentHandlerStackKey = Symbol();
1340  function deferHandlingDirectives(callback) {
1341    isDeferringHandlers = true;
1342    let key = Symbol();
1343    currentHandlerStackKey = key;
1344    directiveHandlerStacks.set(key, []);
1345    let flushHandlers = () => {
1346      while (directiveHandlerStacks.get(key).length)
1347        directiveHandlerStacks.get(key).shift()();
1348      directiveHandlerStacks.delete(key);
1349    };
1350    let stopDeferring = () => {
1351      isDeferringHandlers = false;
1352      flushHandlers();
1353    };
1354    callback(flushHandlers);
1355    stopDeferring();
1356  }
1357  function getElementBoundUtilities(el) {
1358    let cleanups = [];
1359    let cleanup22 = (callback) => cleanups.push(callback);
1360    let [effect3, cleanupEffect] = elementBoundEffect(el);
1361    cleanups.push(cleanupEffect);
1362    let utilities = {
1363      Alpine: alpine_default,
1364      effect: effect3,
1365      cleanup: cleanup22,
1366      evaluateLater: evaluateLater.bind(evaluateLater, el),
1367      evaluate: evaluate.bind(evaluate, el)
1368    };
1369    let doCleanup = () => cleanups.forEach((i) => i());
1370    return [utilities, doCleanup];
1371  }
1372  function getDirectiveHandler(el, directive22) {
1373    let noop = () => {
1374    };
1375    let handler4 = directiveHandlers[directive22.type] || noop;
1376    let [utilities, cleanup22] = getElementBoundUtilities(el);
1377    onAttributeRemoved(el, directive22.original, cleanup22);
1378    let fullHandler = () => {
1379      if (el._x_ignore || el._x_ignoreSelf)
1380        return;
1381      handler4.inline && handler4.inline(el, directive22, utilities);
1382      handler4 = handler4.bind(handler4, el, directive22, utilities);
1383      isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4();
1384    };
1385    fullHandler.runCleanups = cleanup22;
1386    return fullHandler;
1387  }
1388  var startingWith = (subject, replacement) => ({ name, value }) => {
1389    if (name.startsWith(subject))
1390      name = name.replace(subject, replacement);
1391    return { name, value };
1392  };
1393  var into = (i) => i;
1394  function toTransformedAttributes(callback = () => {
1395  }) {
1396    return ({ name, value }) => {
1397      let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => {
1398        return transform(carry);
1399      }, { name, value });
1400      if (newName !== name)
1401        callback(newName, name);
1402      return { name: newName, value: newValue };
1403    };
1404  }
1405  var attributeTransformers = [];
1406  function mapAttributes(callback) {
1407    attributeTransformers.push(callback);
1408  }
1409  function outNonAlpineAttributes({ name }) {
1410    return alpineAttributeRegex().test(name);
1411  }
1412  var alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\b`);
1413  function toParsedDirectives(transformedAttributeMap, originalAttributeOverride) {
1414    return ({ name, value }) => {
1415      let typeMatch = name.match(alpineAttributeRegex());
1416      let valueMatch = name.match(/:([a-zA-Z0-9\-_:]+)/);
1417      let modifiers = name.match(/\.[^.\]]+(?=[^\]]*$)/g) || [];
1418      let original = originalAttributeOverride || transformedAttributeMap[name] || name;
1419      return {
1420        type: typeMatch ? typeMatch[1] : null,
1421        value: valueMatch ? valueMatch[1] : null,
1422        modifiers: modifiers.map((i) => i.replace(".", "")),
1423        expression: value,
1424        original
1425      };
1426    };
1427  }
1428  var DEFAULT = "DEFAULT";
1429  var directiveOrder = [
1430    "ignore",
1431    "ref",
1432    "data",
1433    "id",
1434    "anchor",
1435    "bind",
1436    "init",
1437    "for",
1438    "model",
1439    "modelable",
1440    "transition",
1441    "show",
1442    "if",
1443    DEFAULT,
1444    "teleport"
1445  ];
1446  function byPriority(a, b) {
1447    let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type;
1448    let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type;
1449    return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB);
1450  }
1451  var tickStack = [];
1452  var isHolding = false;
1453  function nextTick(callback = () => {
1454  }) {
1455    queueMicrotask(() => {
1456      isHolding || setTimeout(() => {
1457        releaseNextTicks();
1458      });
1459    });
1460    return new Promise((res) => {
1461      tickStack.push(() => {
1462        callback();
1463        res();
1464      });
1465    });
1466  }
1467  function releaseNextTicks() {
1468    isHolding = false;
1469    while (tickStack.length)
1470      tickStack.shift()();
1471  }
1472  function holdNextTicks() {
1473    isHolding = true;
1474  }
1475  function setClasses(el, value) {
1476    if (Array.isArray(value)) {
1477      return setClassesFromString(el, value.join(" "));
1478    } else if (typeof value === "object" && value !== null) {
1479      return setClassesFromObject(el, value);
1480    } else if (typeof value === "function") {
1481      return setClasses(el, value());
1482    }
1483    return setClassesFromString(el, value);
1484  }
1485  function setClassesFromString(el, classString) {
1486    let split = (classString2) => classString2.split(" ").filter(Boolean);
1487    let missingClasses = (classString2) => classString2.split(" ").filter((i) => !el.classList.contains(i)).filter(Boolean);
1488    let addClassesAndReturnUndo = (classes) => {
1489      el.classList.add(...classes);
1490      return () => {
1491        el.classList.remove(...classes);
1492      };
1493    };
1494    classString = classString === true ? classString = "" : classString || "";
1495    return addClassesAndReturnUndo(missingClasses(classString));
1496  }
1497  function setClassesFromObject(el, classObject) {
1498    let split = (classString) => classString.split(" ").filter(Boolean);
1499    let forAdd = Object.entries(classObject).flatMap(([classString, bool]) =>
vendor: 12,633 bytes, lines 1499-1888
1499 bool ? split(classString) : false).filter(Boolean);
1500    let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? split(classString) : false).filter(Boolean);
1501    let added = [];
1502    let removed = [];
1503    forRemove.forEach((i) => {
1504      if (el.classList.contains(i)) {
1505        el.classList.remove(i);
1506        removed.push(i);
1507      }
1508    });
1509    forAdd.forEach((i) => {
1510      if (!el.classList.contains(i)) {
1511        el.classList.add(i);
1512        added.push(i);
1513      }
1514    });
1515    return () => {
1516      removed.forEach((i) => el.classList.add(i));
1517      added.forEach((i) => el.classList.remove(i));
1518    };
1519  }
1520  function setStyles(el, value) {
1521    if (typeof value === "object" && value !== null) {
1522      return setStylesFromObject(el, value);
1523    }
1524    return setStylesFromString(el, value);
1525  }
1526  function setStylesFromObject(el, value) {
1527    let previousStyles = {};
1528    Object.entries(value).forEach(([key, value2]) => {
1529      previousStyles[key] = el.style[key];
1530      if (!key.startsWith("--")) {
1531        key = kebabCase(key);
1532      }
1533      el.style.setProperty(key, value2);
1534    });
1535    setTimeout(() => {
1536      if (el.style.length === 0) {
1537        el.removeAttribute("style");
1538      }
1539    });
1540    return () => {
1541      setStyles(el, previousStyles);
1542    };
1543  }
1544  function setStylesFromString(el, value) {
1545    let cache = el.getAttribute("style", value);
1546    el.setAttribute("style", value);
1547    return () => {
1548      el.setAttribute("style", cache || "");
1549    };
1550  }
1551  function kebabCase(subject) {
1552    return subject.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
1553  }
1554  function once(callback, fallback2 = () => {
1555  }) {
1556    let called = false;
1557    return function() {
1558      if (!called) {
1559        called = true;
1560        callback.apply(this, arguments);
1561      } else {
1562        fallback2.apply(this, arguments);
1563      }
1564    };
1565  }
1566  directive("transition", (el, { value, modifiers, expression }, { evaluate: evaluate22 }) => {
1567    if (typeof expression === "function")
1568      expression = evaluate22(expression);
1569    if (expression === false)
1570      return;
1571    if (!expression || typeof expression === "boolean") {
1572      registerTransitionsFromHelper(el, modifiers, value);
1573    } else {
1574      registerTransitionsFromClassString(el, expression, value);
1575    }
1576  });
1577  function registerTransitionsFromClassString(el, classString, stage) {
1578    registerTransitionObject(el, setClasses, "");
1579    let directiveStorageMap = {
1580      "enter": (classes) => {
1581        el._x_transition.enter.during = classes;
1582      },
1583      "enter-start": (classes) => {
1584        el._x_transition.enter.start = classes;
1585      },
1586      "enter-end": (classes) => {
1587        el._x_transition.enter.end = classes;
1588      },
1589      "leave": (classes) => {
1590        el._x_transition.leave.during = classes;
1591      },
1592      "leave-start": (classes) => {
1593        el._x_transition.leave.start = classes;
1594      },
1595      "leave-end": (classes) => {
1596        el._x_transition.leave.end = classes;
1597      }
1598    };
1599    directiveStorageMap[stage](classString);
1600  }
1601  function registerTransitionsFromHelper(el, modifiers, stage) {
1602    registerTransitionObject(el, setStyles);
1603    let doesntSpecify = !modifiers.includes("in") && !modifiers.includes("out") && !stage;
1604    let transitioningIn = doesntSpecify || modifiers.includes("in") || ["enter"].includes(stage);
1605    let transitioningOut = doesntSpecify || modifiers.includes("out") || ["leave"].includes(stage);
1606    if (modifiers.includes("in") && !doesntSpecify) {
1607      modifiers = modifiers.filter((i, index) => index < modifiers.indexOf("out"));
1608    }
1609    if (modifiers.includes("out") && !doesntSpecify) {
1610      modifiers = modifiers.filter((i, index) => index > modifiers.indexOf("out"));
1611    }
1612    let wantsAll = !modifiers.includes("opacity") && !modifiers.includes("scale");
1613    let wantsOpacity = wantsAll || modifiers.includes("opacity");
1614    let wantsScale = wantsAll || modifiers.includes("scale");
1615    let opacityValue = wantsOpacity ? 0 : 1;
1616    let scaleValue = wantsScale ? modifierValue(modifiers, "scale", 95) / 100 : 1;
1617    let delay3 = modifierValue(modifiers, "delay", 0) / 1e3;
1618    let origin = modifierValue(modifiers, "origin", "center");
1619    let property = "opacity, transform";
1620    let durationIn = modifierValue(modifiers, "duration", 150) / 1e3;
1621    let durationOut = modifierValue(modifiers, "duration", 75) / 1e3;
1622    let easing = `cubic-bezier(0.4, 0.0, 0.2, 1)`;
1623    if (transitioningIn) {
1624      el._x_transition.enter.during = {
1625        transformOrigin: origin,
1626        transitionDelay: `${delay3}s`,
1627        transitionProperty: property,
1628        transitionDuration: `${durationIn}s`,
1629        transitionTimingFunction: easing
1630      };
1631      el._x_transition.enter.start = {
1632        opacity: opacityValue,
1633        transform: `scale(${scaleValue})`
1634      };
1635      el._x_transition.enter.end = {
1636        opacity: 1,
1637        transform: `scale(1)`
1638      };
1639    }
1640    if (transitioningOut) {
1641      el._x_transition.leave.during = {
1642        transformOrigin: origin,
1643        transitionDelay: `${delay3}s`,
1644        transitionProperty: property,
1645        transitionDuration: `${durationOut}s`,
1646        transitionTimingFunction: easing
1647      };
1648      el._x_transition.leave.start = {
1649        opacity: 1,
1650        transform: `scale(1)`
1651      };
1652      el._x_transition.leave.end = {
1653        opacity: opacityValue,
1654        transform: `scale(${scaleValue})`
1655      };
1656    }
1657  }
1658  function registerTransitionObject(el, setFunction, defaultValue = {}) {
1659    if (!el._x_transition)
1660      el._x_transition = {
1661        enter: { during: defaultValue, start: defaultValue, end: defaultValue },
1662        leave: { during: defaultValue, start: defaultValue, end: defaultValue },
1663        in(before = () => {
1664        }, after = () => {
1665        }) {
1666          transition(el, setFunction, {
1667            during: this.enter.during,
1668            start: this.enter.start,
1669            end: this.enter.end
1670          }, before, after);
1671        },
1672        out(before = () => {
1673        }, after = () => {
1674        }) {
1675          transition(el, setFunction, {
1676            during: this.leave.during,
1677            start: this.leave.start,
1678            end: this.leave.end
1679          }, before, after);
1680        }
1681      };
1682  }
1683  window.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value, show, hide) {
1684    const nextTick2 = document.visibilityState === "visible" ? requestAnimationFrame : setTimeout;
1685    let clickAwayCompatibleShow = () => nextTick2(show);
1686    if (value) {
1687      if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) {
1688        el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow();
1689      } else {
1690        el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow();
1691      }
1692      return;
1693    }
1694    el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => {
1695      el._x_transition.out(() => {
1696      }, () => resolve(hide));
1697      el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true }));
1698    }) : Promise.resolve(hide);
1699    queueMicrotask(() => {
1700      let closest = closestHide(el);
1701      if (closest) {
1702        if (!closest._x_hideChildren)
1703          closest._x_hideChildren = [];
1704        closest._x_hideChildren.push(el);
1705      } else {
1706        nextTick2(() => {
1707          let hideAfterChildren = (el2) => {
1708            let carry = Promise.all([
1709              el2._x_hidePromise,
1710              ...(el2._x_hideChildren || []).map(hideAfterChildren)
1711            ]).then(([i]) => i());
1712            delete el2._x_hidePromise;
1713            delete el2._x_hideChildren;
1714            return carry;
1715          };
1716          hideAfterChildren(el).catch((e) => {
1717            if (!e.isFromCancelledTransition)
1718              throw e;
1719          });
1720        });
1721      }
1722    });
1723  };
1724  function closestHide(el) {
1725    let parent = el.parentNode;
1726    if (!parent)
1727      return;
1728    return parent._x_hidePromise ? parent : closestHide(parent);
1729  }
1730  function transition(el, setFunction, { during, start: start22, end } = {}, before = () => {
1731  }, after = () => {
1732  }) {
1733    if (el._x_transitioning)
1734      el._x_transitioning.cancel();
1735    if (Object.keys(during).length === 0 && Object.keys(start22).length === 0 && Object.keys(end).length === 0) {
1736      before();
1737      after();
1738      return;
1739    }
1740    let undoStart, undoDuring, undoEnd;
1741    performTransition(el, {
1742      start() {
1743        undoStart = setFunction(el, start22);
1744      },
1745      during() {
1746        undoDuring = setFunction(el, during);
1747      },
1748      before,
1749      end() {
1750        undoStart();
1751        undoEnd = setFunction(el, end);
1752      },
1753      after,
1754      cleanup() {
1755        undoDuring();
1756        undoEnd();
1757      }
1758    });
1759  }
1760  function performTransition(el, stages) {
1761    let interrupted, reachedBefore, reachedEnd;
1762    let finish = once(() => {
1763      mutateDom(() => {
1764        interrupted = true;
1765        if (!reachedBefore)
1766          stages.before();
1767        if (!reachedEnd) {
1768          stages.end();
1769          releaseNextTicks();
1770        }
1771        stages.after();
1772        if (el.isConnected)
1773          stages.cleanup();
1774        delete el._x_transitioning;
1775      });
1776    });
1777    el._x_transitioning = {
1778      beforeCancels: [],
1779      beforeCancel(callback) {
1780        this.beforeCancels.push(callback);
1781      },
1782      cancel: once(function() {
1783        while (this.beforeCancels.length) {
1784          this.beforeCancels.shift()();
1785        }
1786        ;
1787        finish();
1788      }),
1789      finish
1790    };
1791    mutateDom(() => {
1792      stages.start();
1793      stages.during();
1794    });
1795    holdNextTicks();
1796    requestAnimationFrame(() => {
1797      if (interrupted)
1798        return;
1799      let duration = Number(getComputedStyle(el).transitionDuration.replace(/,.*/, "").replace("s", "")) * 1e3;
1800      let delay3 = Number(getComputedStyle(el).transitionDelay.replace(/,.*/, "").replace("s", "")) * 1e3;
1801      if (duration === 0)
1802        duration = Number(getComputedStyle(el).animationDuration.replace("s", "")) * 1e3;
1803      mutateDom(() => {
1804        stages.before();
1805      });
1806      reachedBefore = true;
1807      requestAnimationFrame(() => {
1808        if (interrupted)
1809          return;
1810        mutateDom(() => {
1811          stages.end();
1812        });
1813        releaseNextTicks();
1814        setTimeout(el._x_transitioning.finish, duration + delay3);
1815        reachedEnd = true;
1816      });
1817    });
1818  }
1819  function modifierValue(modifiers, key, fallback2) {
1820    if (modifiers.indexOf(key) === -1)
1821      return fallback2;
1822    const rawValue = modifiers[modifiers.indexOf(key) + 1];
1823    if (!rawValue)
1824      return fallback2;
1825    if (key === "scale") {
1826      if (isNaN(rawValue))
1827        return fallback2;
1828    }
1829    if (key === "duration" || key === "delay") {
1830      let match = rawValue.match(/([0-9]+)ms/);
1831      if (match)
1832        return match[1];
1833    }
1834    if (key === "origin") {
1835      if (["top", "right", "left", "center", "bottom"].includes(modifiers[modifiers.indexOf(key) + 2])) {
1836        return [rawValue, modifiers[modifiers.indexOf(key) + 2]].join(" ");
1837      }
1838    }
1839    return rawValue;
1840  }
1841  var isCloning = false;
1842  function skipDuringClone(callback, fallback2 = () => {
1843  }) {
1844    return (...args) => isCloning ? fallback2(...args) : callback(...args);
1845  }
1846  function onlyDuringClone(callback) {
1847    return (...args) => isCloning && callback(...args);
1848  }
1849  var interceptors = [];
1850  function interceptClone(callback) {
1851    interceptors.push(callback);
1852  }
1853  function cloneNode(from, to) {
1854    interceptors.forEach((i) => i(from, to));
1855    isCloning = true;
1856    dontRegisterReactiveSideEffects(() => {
1857      initTree(to, (el, callback) => {
1858        callback(el, () => {
1859        });
1860      });
1861    });
1862    isCloning = false;
1863  }
1864  var isCloningLegacy = false;
1865  function clone(oldEl, newEl) {
1866    if (!newEl._x_dataStack)
1867      newEl._x_dataStack = oldEl._x_dataStack;
1868    isCloning = true;
1869    isCloningLegacy = true;
1870    dontRegisterReactiveSideEffects(() => {
1871      cloneTree(newEl);
1872    });
1873    isCloning = false;
1874    isCloningLegacy = false;
1875  }
1876  function cloneTree(el) {
1877    let hasRunThroughFirstEl = false;
1878    let shallowWalker = (el2, callback) => {
1879      walk(el2, (el3, skip) => {
1880        if (hasRunThroughFirstEl && isRoot(el3))
1881          return skip();
1882        hasRunThroughFirstEl = true;
1883        callback(el3, skip);
1884      });
1885    };
1886    initTree(el, shallowWalker);
1887  }
1888  function dontRegisterReactiveSideEffects(callback) {
1889    let cache = effect;
1890    overrideEffect((callback2, el) => {
1891      let storedEffect = cache(callback2);
1892      release(storedEffect);
1893      return () => {
1894      };
1895    });
1896    callback();
1897    overrideEffect(cache);
1898  }
1899  function bind(el, name, value, modifiers = []) {
1900    if (!el._x_bindings)
1901      el._x_bindings = reactive({});
1902    el._x_bindings[name] = value;
1903    name = modifiers.includes("camel") ? camelCase(name) : name;
1904    switch (name) {
1905      case "value":
1906        bindInputValue(el, value);
1907        break;
1908      case "style":
1909        bindStyles(el, value);
1910        break;
1911      case "class":
1912        bindClasses(el, value);
1913        break;
1914      case "selected":
1915      case "checked":
1916        bindAttributeAndProperty(el, name, value);
1917        break;
1918      default:
1919        bindAttribute(el, name, value);
1920        break;
1921    }
1922  }
1923  function bindInputValue(el, value) {
1924    if (el.type === "radio") {
1925      if (el.attributes.value === void 0) {
1926        el.value = value;
1927      }
1928      if (window.fromModel) {
1929        if (typeof value === "boolean") {
1930          el.checked = safeParseBoolean(el.value) === value;
1931        } else {
1932          el.checked = checkedAttrLooseCompare(el.value, value);
1933        }
1934      }
1935    } else if (el.type === "checkbox") {
1936      if (Number.isInteger(value)) {
1937        el.value = value;
1938      } else if (!Array.isArray(value) && typeof value !== "boolean" && ![null, void 0].includes(value)) {
1939        el.value = String(value);
1940      } else {
1941        if (Array.isArray(value)) {
1942          el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value));
1943        } else {
1944          el.checked = !!value;
1945        }
1946      }
1947    } else if (el.tagName === "SELECT") {
1948      updateSelect(el, value);
1949    } else {
1950      if (el.value === value)
1951        return;
1952      el.value = value === void 0 ? "" : value;
1953    }
1954  }
1955  function bindClasses(el, value) {
1956    if (el._x_undoAddedClasses)
1957      el._x_undoAddedClasses();
1958    el._x_undoAddedClasses = setClasses(el, value);
1959  }
1960  function bindStyles(el, value) {
1961    if (el._x_undoAddedStyles)
1962      el._x_undoAddedStyles();
1963    el._x_undoAddedStyles = setStyles(el, value);
1964  }
1965  function bindAttributeAndProperty(el, name, value) {
1966    bindAttribute(el, name, value);
1967    setPropertyIfChanged(el, name, value);
1968  }
1969  function bindAttribute(el, name, value) {
1970    if ([null, void 0, false].includes(value) && attributeShouldntBePreservedIfFalsy(name)) {
1971      el.removeAttribute(name);
1972    } else {
1973      if (isBooleanAttr(name))
1974        value = name;
1975      setIfChanged(el, name, value);
1976    }
1977  }
1978  function setIfChanged(el, attrName, value) {
1979    if (el.getAttribute(attrName) != value) {
1980      el.setAttribute(attrName, value);
1981    }
1982  }
1983  function setPropertyIfChanged(el, propName, value) {
1984    if (el[propName] !== value) {
1985      el[propName] = value;
1986    }
1987  }
1988  function updateSelect(el, value) {
1989    const arrayWrappedValue = [].concat(value).map((value2) => {
1990      return value2 + "";
1991    });
1992    Array.from(el.options).forEach((option) => {
1993      option.selected = arrayWrappedValue.includes(option.value);
1994    });
1995  }
1996  function camelCase(subject) {
1997    return subject.toLowerCase().replace(/-(\w)/g, (match, char) => char.toUpperCase());
1998  }
1999  function checkedAttrLooseCompare(valueA, valueB) {
2000    return valueA == valueB;
2001  }
2002  function safeParseBoolean(rawValue) {
2003    if ([1, "1", "true", "on", "yes", true].includes(rawValue)) {
2004      return true;
2005    }
2006    if ([0, "0", "false", "off", "no", false].includes(rawValue)) {
2007      return false;
2008    }
2009    return rawValue ? Boolean(rawValue) : null;
2010  }
2011  function isBooleanAttr(attrName) {
2012    const booleanAttributes = [
2013      "disabled",
2014      "checked",
2015      "required",
2016      "readonly",
2017      "hidden",
2018      "open",
2019      "selected",
2020      "autofocus",
2021      "itemscope",
2022      "multiple",
2023      "novalidate",
2024      "allowfullscreen",
2025      "allowpaymentrequest",
2026      "formnovalidate",
2027      "autoplay",
2028      "controls",
2029      "loop",
2030      "muted",
2031      "playsinline",
2032      "default",
2033      "ismap",
2034      "reversed",
2035      "async",
2036      "defer",
2037      "nomodule"
2038    ];
2039    return booleanAttributes.includes(attrName);
2040  }
2041  function attributeShouldntBePreservedIfFalsy(name) {
2042    return !["aria-pressed", "aria-checked", "aria-expanded", "aria-selected"].includes(name);
2043  }
2044  function getBinding(el, name, fallback2) {
2045    if (el._x_bindings && el._x_bindings[name] !== void 0)
2046      return el._x_bindings[name];
2047    return getAttributeBinding(el, name, fallback2);
2048  }
2049  function extractProp(el, name, fallback2, extract = true) {
2050    if (el._x_bindings && el._x_bindings[name] !== void 0)
2051      return el._x_bindings[name];
2052    if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) {
2053      let binding = el._x_inlineBindings[name];
2054      binding.extract = extract;
2055      return dontAutoEvaluateFunctions(() => {
2056        return evaluate(el, binding.expression);
2057      });
2058    }
2059    return getAttributeBinding(el, name, fallback2);
2060  }
2061  function getAttributeBinding(el, name, fallback2) {
2062    let attr = el.getAttribute(name);
2063    if (attr === null)
2064      return typeof fallback2 === "function" ? fallback2() : fallback2;
2065    if (attr === "")
2066      return true;
2067    if (isBooleanAttr(name)) {
2068      return !![name, "true"].includes(attr);
2069    }
2070    return attr;
2071  }
2072  function debounce(func, wait) {
2073    var timeout;
2074    return function() {
2075      var context = this, args = arguments;
2076      var later = function() {
2077        timeout = null;
vendor: 1,392 bytes, lines 2078-2125
2078        func.apply(context, args);
2079      };
2080      clearTimeout(timeout);
2081      timeout = setTimeout(later, wait);
2082    };
2083  }
2084  function throttle(func, limit) {
2085    let inThrottle;
2086    return function() {
2087      let context = this, args = arguments;
2088      if (!inThrottle) {
2089        func.apply(context, args);
2090        inThrottle = true;
2091        setTimeout(() => inThrottle = false, limit);
2092      }
2093    };
2094  }
2095  function entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) {
2096    let firstRun = true;
2097    let outerHash;
2098    let innerHash;
2099    let reference = effect(() => {
2100      let outer = outerGet();
2101      let inner = innerGet();
2102      if (firstRun) {
2103        innerSet(cloneIfObject(outer));
2104        firstRun = false;
2105      } else {
2106        let outerHashLatest = JSON.stringify(outer);
2107        let innerHashLatest = JSON.stringify(inner);
2108        if (outerHashLatest !== outerHash) {
2109          innerSet(cloneIfObject(outer));
2110        } else if (outerHashLatest !== innerHashLatest) {
2111          outerSet(cloneIfObject(inner));
2112        } else {
2113        }
2114      }
2115      outerHash = JSON.stringify(outerGet());
2116      innerHash = JSON.stringify(innerGet());
2117    });
2118    return () => {
2119      release(reference);
2120    };
2121  }
2122  function cloneIfObject(value) {
2123    return typeof value === "object" ? JSON.parse(JSON.stringify(value)) : value;
2124  }
2125  function plugin(callback) {
2126    let callbacks = Array.isArray(callback) ? callback : [callback];
2127    callbacks.forEach((i) => i(alpine_default));
2128  }
2129  var stores = {};
2130  var isReactive = false;
2131  function store(name, value) {
2132    if (!isReactive) {
2133      stores = reactive(stores);
2134      isReactive = true;
2135    }
2136    if (value === void 0) {
2137      return stores[name];
2138    }
2139    stores[name] = value;
2140    if (typeof value === "object" && value !== null && value.hasOwnProperty("init") && typeof value.init === "function") {
2141      stores[name].init();
2142    }
2143    initInterceptors2(stores[name]);
2144  }
2145  function getStores() {
2146    return stores;
2147  }
2148  var binds = {};
2149  function bind2(name, bindings) {
2150    let getBindings = typeof bindings !== "function" ? () => bindings : bindings;
2151    if (name instanceof Element) {
2152      return applyBindingsObject(name, getBindings());
2153    } else {
2154      binds[name] = getBindings;
2155    }
2156    return () => {
2157    };
2158  }
2159  function injectBindingProviders(obj) {
2160    Object.entries(binds).forEach(([name, callback]) => {
2161      Object.defineProperty(obj, name, {
2162        get() {
2163          return (...args) => {
2164            return callback(...args);
2165          };
2166        }
2167      });
2168    });
2169    return obj;
2170  }
2171  function applyBindingsObject(el, obj, original) {
2172    let cleanupRunners = [];
2173    while (cleanupRunners.length)
2174      cleanupRunners.pop()();
2175    let attributes = Object.entries(obj).map(([name, value]) => ({ name, value }));
2176    let staticAttributes = attributesOnly(attributes);
2177    attributes = attributes.map((attribute) => {
2178      if (staticAttributes.find((attr) => attr.name === attribute.name)) {
2179        return {
2180          name: `x-bind:${attribute.name}`,
2181          value: `"${attribute.value}"`
2182        };
2183      }
2184      return attribute;
2185    });
2186    directives(el, attributes, original).map((handle) => {
2187      cleanupRunners.push(handle.runCleanups);
2188      handle();
2189    });
2190    return () => {
2191      while (cleanupRunners.length)
2192        cleanupRunners.pop()();
2193    };
2194  }
2195  var datas = {};
2196  function data(name, callback) {
2197    datas[name] = callback;
2198  }
2199  function injectDataProviders(obj, context) {
2200    Object.entries(datas).forEach(([name, callback]) => {
2201      Object.defineProperty(obj, name, {
2202        get() {
2203          return (...args) => {
2204            return callback.bind(context)(...args);
2205          };
2206        },
2207        enumerable: false
2208      });
2209    });
2210    return obj;
2211  }
2212  var Alpine2 = {
2213    get reactive() {
2214      return reactive;
2215    },
2216    get release() {
2217      return release;
2218    },
2219    get effect() {
2220      return effect;
2221    },
2222    get raw() {
2223      return raw;
2224    },
2225    version: "3.13.7",
2226    flushAndStopDeferringMutations,
2227    dontAutoEvaluateFunctions,
2228    disableEffectScheduling,
2229    startObservingMutations,
2230    stopObservingMutations,
2231    setReactivityEngine,
2232    onAttributeRemoved,
2233    onAttributesAdded,
2234    closestDataStack,
2235    skipDuringClone,
2236    onlyDuringClone,
2237    addRootSelector,
2238    addInitSelector,
2239    interceptClone,
2240    addScopeToNode,
2241    deferMutations,
2242    mapAttributes,
2243    evaluateLater,
2244    interceptInit,
2245    setEvaluator,
2246    mergeProxies,
2247    extractProp,
2248    findClosest,
2249    onElRemoved,
2250    closestRoot,
2251    destroyTree,
2252    interceptor,
2253    transition,
2254    setStyles,
2255    mutateDom,
2256    directive,
2257    entangle,
2258    throttle,
2259    debounce,
2260    evaluate,
2261    initTree,
2262    nextTick,
2263    prefixed: prefix,
2264    prefix: setPrefix,
2265    plugin,
2266    magic,
2267    store,
2268    start,
2269    clone,
2270    cloneNode,
2271    bound: getBinding,
2272    $data: scope,
2273    watch,
2274    walk,
2275    data,
2276    bind: bind2
2277  };
2278  var alpine_default = Alpine2;
2279  function makeMap(str, expectsLowerCase) {
2280    const map = /* @__PURE__ */ Object.create(null);
2281    const list = str.split(",");
2282    for (let i = 0; i < list.length; i++) {
2283      map[list[i]] = true;
2284    }
2285    return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];
2286  }
2287  var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
2288  var isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,
2288checked,muted,multiple,selected`);
2289  var EMPTY_OBJ = true ? Object.freeze({}) : {};
2290  var EMPTY_ARR = true ? Object.freeze([]) : [];
2291  var hasOwnProperty = Object.prototype.hasOwnProperty;
2292  var hasOwn = (val, key) => hasOwnProperty.call(val, key);
2293  var isArray2 = Array.isArray;
2294  var isMap = (val) => toTypeString(val) === "[object Map]";
2295  var isString = (val) => typeof val === "string";
2296  var isSymbol = (val) => typeof val === "symbol";
2297  var isObject2 = (val) => val !== null && typeof val === "object";
2298  var objectToString = Object.prototype.toString;
2299  var toTypeString = (value) => objectToString.call(value);
2300  var toRawType = (value) => {
2301    return toTypeString(value).slice(8, -1);
2302  };
2303  var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
2304  var cacheStringFunction = (fn) => {
2305    const cache = /* @__PURE__ */ Object.create(null);
2306    return (str) => {
2307      const hit = cache[str];
2308      return hit || (cache[str] = fn(str));
2309    };
2310  };
2311  var camelizeRE = /-(\w)/g;
2312  var camelize = cacheStringFunction((str) => {
2313    return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
2314  });
2315  var hyphenateRE = /\B([A-Z])/g;
2316  var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase());
2317  var capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));
2318  var toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);
2319  var hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue);
2320  var targetMap = /* @__PURE__ */ new WeakMap();
2321  var effectStack = [];
2322  var activeEffect;
2323  var ITERATE_KEY = Symbol(true ? "iterate" : "");
2324  var MAP_KEY_ITERATE_KEY = Symbol(true ? "Map key iterate" : "");
2325  function isEffect(fn) {
2326    return fn && fn._isEffect === true;
2327  }
2328  function effect2(fn, options = EMPTY_OBJ) {
2329    if (isEffect(fn)) {
2330      fn = fn.raw;
2331    }
2332    const effect3 = createReactiveEffect(fn, options);
2333    if (!options.lazy) {
2334      effect3();
2335    }
2336    return effect3;
2337  }
2338  function stop(effect3) {
2339    if (effect3.active) {
2340      cleanup(effect3);
2341      if (effect3.options.onStop) {
2342        effect3.options.onStop();
2343      }
2344      effect3.active = false;
2345    }
2346  }
2347  var uid = 0;
2348  function createReactiveEffect(fn, options) {
2349    const effect3 = function reactiveEffect() {
2350      if (!effect3.active) {
2351        return fn();
2352      }
2353      if (!effectStack.includes(effect3)) {
2354        cleanup(effect3);
2355        try {
2356          enableTracking();
2357          effectStack.push(effect3);
2358          activeEffect = effect3;
2359          return fn();
2360        } finally {
2361          effectStack.pop();
2362          resetTracking();
2363          activeEffect = effectStack[effectStack.length - 1];
2364        }
2365      }
2366    };
2367    effect3.id = uid++;
2368    effect3.allowRecurse = !!options.allowRecurse;
2369    effect3._isEffect = true;
2370    effect3.active = true;
2371    effect3.raw = fn;
2372    effect3.deps = [];
2373    effect3.options = options;
2374    return effect3;
2375  }
2376  function cleanup(effect3) {
2377    const { deps } = effect3;
2378    if (deps.length) {
2379      for (let i = 0; i < deps.length; i++) {
2380        deps[i].delete(effect3);
2381      }
2382      deps.length = 0;
2383    }
2384  }
2385  var shouldTrack = true;
2386  var trackStack = [];
2387  function pauseTracking() {
2388    trackStack.push(shouldTrack);
2389    shouldTrack = false;
2390  }
2391  function enableTracking() {
2392    trackStack.push(shouldTrack);
2393    shouldTrack = true;
2394  }
2395  function resetTracking() {
2396    const last = trackStack.pop();
2397    shouldTrack = last === void 0 ? true : last;
2398  }
2399  function track(target, type, key) {
2400    if (!shouldTrack || activeEffect === void 0) {
2401      return;
2402    }
2403    let depsMap = targetMap.get(target);
2404    if (!depsMap) {
2405      targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
2406    }
2407    let dep = depsMap.get(key);
2408    if (!dep) {
2409      depsMap.set(key, dep = /* @__PURE__ */ new Set());
2410    }
2411    if (!dep.has(activeEffect)) {
2412      dep.add(activeEffect);
2413      activeEffect.deps.push(dep);
2414      if (activeEffect.options.onTrack) {
2415        activeEffect.options.onTrack({
2416          effect: activeEffect,
2417          target,
2418          type,
2419          key
2420        });
2421      }
2422    }
2423  }
2424  function trigger(target, type, key, newValue, oldValue, oldTarget) {
2425    const depsMap = targetMap.get(target);
2426    if (!depsMap) {
2427      return;
2428    }
2429    const effects = /* @__PURE__ */ new Set();
2430    const add2 = (effectsToAdd) => {
2431      if (effectsToAdd) {
2432        effectsToAdd.forEach((effect3) => {
2433          if (effect3 !== activeEffect || effect3.allowRecurse) {
2434            effects.add(effect3);
2435          }
2436        });
2437      }
2438    };
2439    if (type === "clear") {
2440      depsMap.forEach(add2);
2441    } else if (key === "length" && isArray2(target)) {
2442      depsMap.forEach((dep, key2) => {
2443        if (key2 === "length" || key2 >= newValue) {
2444          add2(dep);
2445        }
2446      });
2447    } else {
2448      if (key !== void 0) {
2449        add2(depsMap.get(key));
2450      }
2451      switch (type) {
2452        case "add":
2453          if (!isArray2(target)) {
2454            add2(depsMap.get(ITERATE_KEY));
2455            if (isMap(target)) {
2456              add2(depsMap.get(MAP_KEY_ITERATE_KEY));
2457            }
2458          } else if (isIntegerKey(key)) {
2459            add2(depsMap.get("length"));
2460          }
2461          break;
2462        case "delete":
2463          if (!isArray2(target)) {
2464            add2(depsMap.get(ITERATE_KEY));
2465            if (isMap(target)) {
2466              add2(depsMap.get(MAP_KEY_ITERATE_KEY));
2467            }
2468          }
2469          break;
2470        case "set":
2471          if (isMap(target)) {
2472            add2(depsMap.get(ITERATE_KEY));
2473          }
2474          break;
2475      }
2476    }
2477    const run = (effect3) => {
2478      if (effect3.options.onTrigger) {
2479        effect3.options.onTrigger({
2480          effect: effect3,
2481          target,
2482          key,
2483          type,
2484          newValue,
2485          oldValue,
2486          oldTarget
2487        });
2488      }
2489      if (effect3.options.scheduler) {
2490        effect3.options.scheduler(effect3);
2491      } else {
2492        effect3();
2493      }
2494    };
2495    effects.forEach(run);
2496  }
2497  var isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
2498  var builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(isSymbol));
2499  var get2 = /* @__PURE__ */ createGetter();
2500  var readonlyGet = /* @__PURE__ */ createGetter(true);
2501  var arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
2502  function createArrayInstrumentations() {
2503    const instrumentations = {};
2504    ["includes", "indexOf", "lastIndexOf"].forEach((key) => {
2505      instrumentations[key] = function(...args) {
2506        const arr = toRaw(this);
2507        for (let i = 0, l = this.length; i < l; i++) {
2508          track(arr, "get", i + "");
2509        }
2510        const res = arr[key](...args);
2511        if (res === -1 || res === false) {
2512          return arr[key](...args.map(toRaw));
2513        } else {
2514          return res;
2515        }
2516      };
2517    });
2518    ["push", "pop", "shift", "unshift", "splice"].forEach((key) => {
2519      instrumentations[key] = function(...args) {
2520        pauseTracking();
2521        const res = toRaw(this)[key].apply(this, args);
2522        resetTracking();
2523        return res;
2524      };
2525    });
2526    return instrumentations;
2527  }
2528  function createGetter(isReadonly = false, shallow = false) {
2529    return function get3(target, key, receiver) {
2530      if (key === "__v_isReactive") {
2531        return !isReadonly;
2532      } else if (key === "__v_isReadonly") {
2533        return isReadonly;
2534      } else if (key === "__v_raw" && receiver === (isReadonly ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {
2535        return target;
2536      }
2537      const targetIsArray = isArray2(target);
2538      if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {
2539        return Reflect.get(arrayInstrumentations, key, receiver);
2540      }
2541      const res = Reflect.get(target, key, receiver);
2542      if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {
2543        return res;
2544      }
2545      if (!isReadonly) {
2546        track(target, "get", key);
2547      }
2548      if (shallow) {
2549        return res;
2550      }
2551      if (isRef(res)) {
2552        const shouldUnwrap = !targetIsArray || !isIntegerKey(key);
2553        return shouldUnwrap ? res.value : res;
2554      }
2555      if (isObject2(res)) {
2556        return isReadonly ? readonly(res) : reactive2(res);
2557      }
2558      return res;
2559    };
2560  }
2561  var set2 = /* @__PURE__ */ createSetter();
2562  function createSetter(shallow = false) {
2563    return function set3(target, key, value, receiver) {
2564      let oldValue = target[key];
2565      if (!shallow) {
2566        value = toRaw(value);
2567        oldValue = toRaw(oldValue);
2568        if (!isArray2(target) && isRef(oldValue) && !isRef(value)) {
2569          oldValue.value = value;
2570          return true;
2571        }
2572      }
2573      const hadKey = isArray2(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);
2574      const result = Reflect.set(target, key, value, receiver);
2575      if (target === toRaw(receiver)) {
2576        if (!hadKey) {
2577          trigger(target, "add", key, value);
2578        } else if (hasChanged(value, oldValue)) {
2579          trigger(target, "set", key, value, oldValue);
2580        }
2581      }
2582      return result;
2583    };
2584  }
2585  function deleteProperty(target, key) {
2586    const hadKey = hasOwn(target, key);
2587    const oldValue = target[key];
2588    const result = Reflect.deleteProperty(target, key);
2589    if (result && hadKey) {
2590      trigger(target, "delete", key, void 0, oldValue);
2591    }
2592    return result;
2593  }
2594  function has(target, key) {
2595    const result = Reflect.has(target, key);
2596    if (!isSymbol(key) || !builtInSymbols.has(key)) {
2597      track(target, "has", key);
2598    }
2599    return result;
2600  }
2601  function ownKeys(target) {
2602    track(target, "iterate", isArray2(target) ? "length" : ITERATE_KEY);
2603    return Reflect.ownKeys(target);
2604  }
2605  var mutableHandlers = {
2606    get: get2,
2607    set: set2,
2608    deleteProperty,
2609    has,
2610    ownKeys
2611  };
2612  var readonlyHandlers = {
2613    get: readonlyGet,
2614    set(target, key) {
2615      if (true) {
2616        console.warn(`Set operation on key "${String(key)}" failed: target is readonly.`, target);
2617      }
2618      return true;
2619    },
2620    deleteProperty(target, key) {
2621      if (true) {
2622        console.warn(`Delete operation on key "${String(key)}" failed: target is readonly.`, target);
2623      }
2624      return true;
2625    }
2626  };
2627  var toReactive = (value) => isObject2(value) ? reactive2(value) : value;
2628  var toReadonly = (value) => isObject2(value) ? readonly(value) : value;
2629  var toShallow = (value) => value;
2630  var getProto = (v) => Reflect.getPrototypeOf(v);
2631  function get$1(target, key, isReadonly = false, isShallow = false) {
2632    target = target["__v_raw"];
2633    const rawTarget = toRaw(target);
2634    const rawKey = toRaw(key);
2635    if (key !== rawKey) {
2636      !isReadonly && track(rawTarget, "get", key);
2637    }
2638    !isReadonly && track(rawTarget, "get", rawKey);
2639    const { has: has2 } = getProto(rawTarget);
2640    const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
2641    if (has2.call(rawTarget, key)) {
2642      return wrap(target.get(key));
2643    } else if (has2.call(rawTarget, rawKey)) {
2644      return wrap(target.get(rawKey));
2645    } else if (target !== rawTarget) {
2646      target.get(key);
2647    }
2648  }
2649  function has$1(key, isReadonly = false) {
2650    const target = this["__v_raw"];
2651    const rawTarget = toRaw(target);
2652    const rawKey = toRaw(key);
2653    if (key !== rawKey) {
2654      !isReadonly && track(rawTarget, "has", key);
2655    }
2656    !isReadonly && track(rawTarget, "has", rawKey);
2657    return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
2658  }
2659  function size(target, isReadonly = false) {
2660    target = target["__v_raw"];
2661    !isReadonly && track(toRaw(target), "iterate", ITERATE_KEY);
2662    return Reflect.get(target, "size", target);
2663  }
2664  function add(value) {
2665    value = toRaw(value);
2666    const target = toRaw(this);
2667    const proto = getProto(target);
2668    const hadKey = proto.has.call(target, value);
2669    if (!hadKey) {
2670      target.add(value);
2671      trigger(target, "add", value, value);
2672    }
2673    return this;
2674  }
2675  function set$1(key, value) {
2676    value = toRaw(value);
2677    const target = toRaw(this);
2678    const { has: has2, get: get3 } = getProto(target);
2679    let hadKey = has2.call(target, key);
2680    if (!hadKey) {
2681      key = toRaw(key);
2682      hadKey = has2.call(target, key);
2683    } else if (true) {
2684      checkIdentityKeys(target, has2, key);
2685    }
2686    const oldValue = get3.call(target, key);
2687    target.set(key, value);
2688    if (!hadKey) {
2689      trigger(target, "add", key, value);
2690    } else if (hasChanged(value, oldValue)) {
2691      trigger(target, "set", key, value, oldValue);
2692    }
2693    return this;
2694  }
2695  function deleteEntry(key) {
2696    const target = toRaw(this);
2697    const { has: has2, get: get3 } = getProto(target);
2698    let hadKey = has2.call(target, key);
2699    if (!hadKey) {
2700      key = toRaw(key);
2701      hadKey = has2.call(target, key);
2702    } else if (true) {
2703      checkIdentityKeys(target, has2, key);
2704    }
2705    const oldValue = get3 ? get3.call(target, key) : void 0;
2706    const result = target.delete(key);
2707    if (hadKey) {
2708      trigger(target, "delete", key, void 0, oldValue);
2709    }
2710    return result;
2711  }
2712  function clear() {
2713    const target = toRaw(this);
2714    const hadItems = target.size !== 0;
2715    const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0;
2716    const result = target.clear();
2717    if (hadItems) {
2718      trigger(target, "clear", void 0, void 0, oldTarget);
2719    }
2720    return result;
2721  }
2722  function createForEach(isReadonly, isShallow) {
2723    return function forEach(callback, thisArg) {
2724      const observed = this;
2725      const target = observed["__v_raw"];
2726      const rawTarget = toRaw(target);
2727      const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
2728      !isReadonly && track(rawTarget, "iterate", ITERATE_KEY);
2729      return target.forEach((value, key) => {
2730        return callback.call(thisArg, wrap(value), wrap(key), observed);
2731      });
2732    };
2733  }
2734  function createIterableMethod(method, isReadonly, isShallow) {
2735    return function(...args) {
2736      const target = this["__v_raw"];
2737      const rawTarget = toRaw(target);
2738      const targetIsMap = isMap(rawTarget);
2739      const isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
2740      const isKeyOnly = method === "keys" && targetIsMap;
2741      const innerIterator = target[method](...args);
2742      const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
2743      !isReadonly && track(rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);
2744      return {
2745        next() {
2746          const { value, done } = innerIterator.next();
2747          return done ? { value, done } : {
2748            value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
2749            done
2750          };
2751        },
2752        [Symbol.iterator]() {
2753          return this;
2754        }
2755      };
2756    };
2757  }
2758  function createReadonlyMethod(type) {
2759    return function(...args) {
2760      if (true) {
2761        const key = args[0] ? `on key "${args[0]}" ` : ``;
2762        console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));
2763      }
2764      return type === "delete" ? false : this;
2765    };
2766  }
2767  function createInstrumentations() {
2768    const mutableInstrumentations2 = {
2769      get(key) {
2770        return get$1(this, key);
2771      },
2772      get size() {
2773        return size(this);
2774      },
2775      has: has$1,
2776      add,
2777      set: set$1,
2778      delete: deleteEntry,
2779      clear,
2780      forEach: createForEach(false, false)
2781    };
2782    const shallowInstrumentations2 = {
2783      get(key) {
2784        return get$1(this, key, false, true);
2785      },
2786      get size() {
2787        return size(this);
2788      },
2789      has: has$1,
2790      add,
2791      set: set$1,
2792      delete: deleteEntry,
2793      clear,
2794      forEach: createForEach(false, true)
2795    };
2796    const readonlyInstrumentations2 = {
2797      get(key) {
2798        return get$1(this, key, true);
2799      },
2800      get size() {
2801        return size(this, true);
2802      },
2803      has(key) {
2804        return has$1.call(this, key, true);
2805      },
2806      add: createReadonlyMethod("add"),
2807      set: createReadonlyMethod("set"),
2808      delete: createReadonlyMethod("delete"),
2809      clear: createReadonlyMethod("clear"),
2810      forEach: createForEach(true, false)
2811    };
2812    const shallowReadonlyInstrumentations2 = {
2813      get(key) {
2814        return get$1(this, key, true, true);
2815      },
2816      get size() {
2817        return size(this, true);
2818      },
2819      has(key) {
2820        return has$1.call(this, key, true);
2821      },
2822      add: createReadonlyMethod("add"),
2823      set: createReadonlyMethod("set"),
2824      delete: createReadonlyMethod("delete"),
2825      clear: createReadonlyMethod("clear"),
2826      forEach: createForEach(true, true)
2827    };
2828    const iteratorMethods = ["keys", "values", "entries", Symbol.iterator];
2829    iteratorMethods.forEach((method) => {
2830      mutableInstrumentations2[method] = createIterableMethod(method, false, false);
2831      readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
2832      shallowInstrumentations2[method] = createIterableMethod(method, false, true);
2833      shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);
2834    });
2835    return [
2836      mutableInstrumentations2,
2837      readonlyInstrumentations2,
2838      shallowInstrumentations2,
2839      shallowReadonlyInstrumentations2
2840    ];
2841  }
2842  var [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();
2843  function createInstrumentationGetter(isReadonly, shallow) {
2844    const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;
2845    return (target, key, receiver) => {
2846      if (key === "__v_isReactive") {
2847        return !isReadonly;
2848      } else if (key === "__v_isReadonly") {
2849        return isReadonly;
2850      } else if (key === "__v_raw") {
2851        return target;
2852      }
2853      return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
2854    };
2855  }
2856  var mutableCollectionHandlers = {
2857    get: /* @__PURE__ */ createInstrumentationGetter(false, false)
2858  };
2859  var readonlyCollectionHandlers = {
2860    get: /* @__PURE__ */ createInstrumentationGetter(true, false)
2861  };
2862  function checkIdentityKeys(target, has2, key) {
2863    const rawKey = toRaw(key);
2864    if (rawKey !== key && has2.call(target, rawKey)) {
2865      const type = toRawType(target);
2866      console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`);
2867    }
2868  }
2869  var reactiveMap = /* @__PURE__ */ new WeakMap();
2870  var shallowReactiveMap = /* @__PURE__ */ new WeakMap();
2871  var readonlyMap = /* @__PURE__ */ new WeakMap();
2872  var shallowReadonlyMap = /* @__PURE__ */ new WeakMap();
2873  function targetTypeMap(rawType) {
2874    switch (rawType) {
2875      case "Object":
2876      case "Array":
2877        return 1;
2878      case "Map":
2879      case "Set":
2880      case "WeakMap":
2881      case "WeakSet":
2882        return 2;
2883      default:
2884        return 0;
2885    }
2886  }
2887  function getTargetType(value) {
2888    return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
2889  }
2890  function reactive2(target) {
2891    if (target && target["__v_isReadonly"]) {
2892      return target;
2893    }
2894    return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
2895  }
2896  function readonly(target) {
2897    return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
2898  }
2899  function createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {
2900    if (!isObject2(target)) {
2901      if (true) {
2902        console.warn(`value cannot be made reactive: ${String(target)}`);
2903      }
2904      return target;
2905    }
2906    if (target["__v_raw"] && !(isReadonly && target["__v_isReactive"])) {
2907      return target;
2908    }
2909    const existingProxy = proxyMap.get(target);
2910    if (existingProxy) {
2911      return existingProxy;
2912    }
2913    const targetType = getTargetType(target);
2914    if (targetType === 0) {
2915      return target;
2916    }
2917    const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
2918    proxyMap.set(target, proxy);
2919    return proxy;
2920  }
2921  function toRaw(observed) {
2922    return observed && toRaw(observed["__v_raw"]) || observed;
2923  }
2924  function isRef(r) {
2925    return Boolean(r && r.__v_isRef === true);
2926  }
2927  magic("nextTick", () => nextTick);
2928  magic("dispatch", (el) => dispatch2.bind(dispatch2, el));
2929  magic("watch", (el, { evaluateLater: evaluateLater2, cleanup: cleanup22 }) => (key, callback) => {
2930    let evaluate22 = evaluateLater2(key);
2931    let getter = () => {
2932      let value;
2933      evaluate22((i) => value = i);
2934      return value;
2935    };
2936    let unwatch = watch(getter, callback);
2937    cleanup22(unwatch);
2938  });
vendor: 8,143 bytes, lines 2939-3180
2939  magic("store", getStores);
2940  magic("data", (el) => scope(el));
2941  magic("root", (el) => closestRoot(el));
2942  magic("refs", (el) => {
2943    if (el._x_refs_proxy)
2944      return el._x_refs_proxy;
2945    el._x_refs_proxy = mergeProxies(getArrayOfRefObject(el));
2946    return el._x_refs_proxy;
2947  });
2948  function getArrayOfRefObject(el) {
2949    let refObjects = [];
2950    findClosest(el, (i) => {
2951      if (i._x_refs)
2952        refObjects.push(i._x_refs);
2953    });
2954    return refObjects;
2955  }
2956  var globalIdMemo = {};
2957  function findAndIncrementId(name) {
2958    if (!globalIdMemo[name])
2959      globalIdMemo[name] = 0;
2960    return ++globalIdMemo[name];
2961  }
2962  function closestIdRoot(el, name) {
2963    return findClosest(el, (element) => {
2964      if (element._x_ids && element._x_ids[name])
2965        return true;
2966    });
2967  }
2968  function setIdRoot(el, name) {
2969    if (!el._x_ids)
2970      el._x_ids = {};
2971    if (!el._x_ids[name])
2972      el._x_ids[name] = findAndIncrementId(name);
2973  }
2974  magic("id", (el, { cleanup: cleanup22 }) => (name, key = null) => {
2975    let cacheKey = `${name}${key ? `-${key}` : ""}`;
2976    return cacheIdByNameOnElement(el, cacheKey, cleanup22, () => {
2977      let root = closestIdRoot(el, name);
2978      let id = root ? root._x_ids[name] : findAndIncrementId(name);
2979      return key ? `${name}-${id}-${key}` : `${name}-${id}`;
2980    });
2981  });
2982  interceptClone((from, to) => {
2983    if (from._x_id) {
2984      to._x_id = from._x_id;
2985    }
2986  });
2987  function cacheIdByNameOnElement(el, cacheKey, cleanup22, callback) {
2988    if (!el._x_id)
2989      el._x_id = {};
2990    if (el._x_id[cacheKey])
2991      return el._x_id[cacheKey];
2992    let output = callback();
2993    el._x_id[cacheKey] = output;
2994    cleanup22(() => {
2995      delete el._x_id[cacheKey];
2996    });
2997    return output;
2998  }
2999  magic("el", (el) => el);
3000  warnMissingPluginMagic("Focus", "focus", "focus");
3001  warnMissingPluginMagic("Persist", "persist", "persist");
3002  function warnMissingPluginMagic(name, magicName, slug) {
3003    magic(magicName, (el) => warn(`You can't use [$${magicName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el));
3004  }
3005  directive("modelable", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup: cleanup22 }) => {
3006    let func = evaluateLater2(expression);
3007    let innerGet = () => {
3008      let result;
3009      func((i) => result = i);
3010      return result;
3011    };
3012    let evaluateInnerSet = evaluateLater2(`${expression} = __placeholder`);
3013    let innerSet = (val) => evaluateInnerSet(() => {
3014    }, { scope: { "__placeholder": val } });
3015    let initialValue = innerGet();
3016    innerSet(initialValue);
3017    queueMicrotask(() => {
3018      if (!el._x_model)
3019        return;
3020      el._x_removeModelListeners["default"]();
3021      let outerGet = el._x_model.get;
3022      let outerSet = el._x_model.set;
3023      let releaseEntanglement = entangle({
3024        get() {
3025          return outerGet();
3026        },
3027        set(value) {
3028          outerSet(value);
3029        }
3030      }, {
3031        get() {
3032          return innerGet();
3033        },
3034        set(value) {
3035          innerSet(value);
3036        }
3037      });
3038      cleanup22(releaseEntanglement);
3039    });
3040  });
3041  directive("teleport", (el, { modifiers, expression }, { cleanup: cleanup22 }) => {
3042    if (el.tagName.toLowerCase() !== "template")
3043      warn("x-teleport can only be used on a <template> tag", el);
3044    let target = getTarget(expression);
3045    let clone2 = el.content.cloneNode(true).firstElementChild;
3046    el._x_teleport = clone2;
3047    clone2._x_teleportBack = el;
3048    el.setAttribute("data-teleport-template", true);
3049    clone2.setAttribute("data-teleport-target", true);
3050    if (el._x_forwardEvents) {
3051      el._x_forwardEvents.forEach((eventName) => {
3052        clone2.addEventListener(eventName, (e) => {
3053          e.stopPropagation();
3054          el.dispatchEvent(new e.constructor(e.type, e));
3055        });
3056      });
3057    }
3058    addScopeToNode(clone2, {}, el);
3059    let placeInDom = (clone3, target2, modifiers2) => {
3060      if (modifiers2.includes("prepend")) {
3061        target2.parentNode.insertBefore(clone3, target2);
3062      } else if (modifiers2.includes("append")) {
3063        target2.parentNode.insertBefore(clone3, target2.nextSibling);
3064      } else {
3065        target2.appendChild(clone3);
3066      }
3067    };
3068    mutateDom(() => {
3069      placeInDom(clone2, target, modifiers);
3070      initTree(clone2);
3071      clone2._x_ignore = true;
3072    });
3073    el._x_teleportPutBack = () => {
3074      let target2 = getTarget(expression);
3075      mutateDom(() => {
3076        placeInDom(el._x_teleport, target2, modifiers);
3077      });
3078    };
3079    cleanup22(() => clone2.remove());
3080  });
3081  var teleportContainerDuringClone = document.createElement("div");
3082  function getTarget(expression) {
3083    let target = skipDuringClone(() => {
3084      return document.querySelector(expression);
3085    }, () => {
3086      return teleportContainerDuringClone;
3087    })();
3088    if (!target)
3089      warn(`Cannot find x-teleport element for selector: "${expression}"`);
3090    return target;
3091  }
3092  var handler = () => {
3093  };
3094  handler.inline = (el, { modifiers }, { cleanup: cleanup22 }) => {
3095    modifiers.includes("self") ? el._x_ignoreSelf = true : el._x_ignore = true;
3096    cleanup22(() => {
3097      modifiers.includes("self") ? delete el._x_ignoreSelf : delete el._x_ignore;
3098    });
3099  };
3100  directive("ignore", handler);
3101  directive("effect", skipDuringClone((el, { expression }, { effect: effect3 }) => {
3102    effect3(evaluateLater(el, expression));
3103  }));
3104  function on(el, event, modifiers, callback) {
3105    let listenerTarget = el;
3106    let handler4 = (e) => callback(e);
3107    let options = {};
3108    let wrapHandler = (callback2, wrapper) => (e) => wrapper(callback2, e);
3109    if (modifiers.includes("dot"))
3110      event = dotSyntax(event);
3111    if (modifiers.includes("camel"))
3112      event = camelCase2(event);
3113    if (modifiers.includes("passive"))
3114      options.passive = true;
3115    if (modifiers.includes("capture"))
3116      options.capture = true;
3117    if (modifiers.includes("window"))
3118      listenerTarget = window;
3119    if (modifiers.includes("document"))
3120      listenerTarget = document;
3121    if (modifiers.includes("debounce")) {
3122      let nextModifier = modifiers[modifiers.indexOf("debounce") + 1] || "invalid-wait";
3123      let wait = isNumeric(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250;
3124      handler4 = debounce(handler4, wait);
3125    }
3126    if (modifiers.includes("throttle")) {
3127      let nextModifier = modifiers[modifiers.indexOf("throttle") + 1] || "invalid-wait";
3128      let wait = isNumeric(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250;
3129      handler4 = throttle(handler4, wait);
3130    }
3131    if (modifiers.includes("prevent"))
3132      handler4 = wrapHandler(handler4, (next, e) => {
3133        e.preventDefault();
3134        next(e);
3135      });
3136    if (modifiers.includes("stop"))
3137      handler4 = wrapHandler(handler4, (next, e) => {
3138        e.stopPropagation();
3139        next(e);
3140      });
3141    if (modifiers.includes("self"))
3142      handler4 = wrapHandler(handler4, (next, e) => {
3143        e.target === el && next(e);
3144      });
3145    if (modifiers.includes("away") || modifiers.includes("outside")) {
3146      listenerTarget = document;
3147      handler4 = wrapHandler(handler4, (next, e) => {
3148        if (el.contains(e.target))
3149          return;
3150        if (e.target.isConnected === false)
3151          return;
3152        if (el.offsetWidth < 1 && el.offsetHeight < 1)
3153          return;
3154        if (el._x_isShown === false)
3155          return;
3156        next(e);
3157      });
3158    }
3159    if (modifiers.includes("once")) {
3160      handler4 = wrapHandler(handler4, (next, e) => {
3161        next(e);
3162        listenerTarget.removeEventListener(event, handler4, options);
3163      });
3164    }
3165    handler4 = wrapHandler(handler4, (next, e) => {
3166      if (isKeyEvent(event)) {
3167        if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) {
3168          return;
3169        }
3170      }
3171      next(e);
3172    });
3173    listenerTarget.addEventListener(event, handler4, options);
3174    return () => {
3175      listenerTarget.removeEventListener(event, handler4, options);
3176    };
3177  }
3178  function dotSyntax(subject) {
3179    return subject.replace(/-/g, ".");
3180  }
3181  function camelCase2(subject) {
3182    return subject.toLowerCase().replace(/-(\w)/g, (match, char) => char.toUpperCase());
3183  }
3184  function isNumeric(subject) {
3185    return !Array.isArray(subject) && !isNaN(subject);
3186  }
3187  function kebabCase2(subject) {
3188    if ([" ", "_"].includes(subject))
3189      return subject;
3190    return subject.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[_\s]/, "-").toLowerCase();
3191  }
3192  function isKeyEvent(event) {
3193    return ["keydown", "keyup"].includes(event);
3194  }
3195  function isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) {
3196    let keyModifiers = modifiers.filter((i) => {
3197      return !["window", "document", "prevent", "stop", "once", "capture"].includes(i);
3198    });
3199    if (keyModifiers.includes("debounce")) {
3200      let debounceIndex = keyModifiers.indexOf("debounce");
3201      keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1);
3202    }
3203    if (keyModifiers.includes("throttle")) {
3204      let debounceIndex = keyModifiers.indexOf("throttle");
3205      keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1);
3206    }
3207    if (keyModifiers.length === 0)
3208      return false;
3209    if (keyModifiers.length === 1 && keyToModifiers(e.key).includes(keyModifiers[0]))
3210      return false;
3211    const systemKeyModifiers = ["ctrl", "shift", "alt", "meta", "cmd", "super"];
3212    const selectedSystemKeyModifiers = systemKeyModifiers.filter((modifier) => keyModifiers.includes(modifier));
3213    keyModifiers = keyModifiers.filter((i) => !selectedSystemKeyModifiers.includes(i));
3214    if (selectedSystemKeyModifiers.length > 0) {
3215      const activelyPressedKeyModifiers = selectedSystemKeyModifiers.filter((modifier) => {
3216        if (modifier === "cmd" || modifier === "super")
3217          modifier = "meta";
3218        return e[`${modifier}Key`];
3219      });
3220      if (activelyPressedKeyModifiers.length === selectedSystemKeyModifiers.length) {
3221        if (keyToModifiers(e.key).includes(keyModifiers[0]))
3222          return false;
3223      }
3224    }
3225    return true;
3226  }
3227  function keyToModifiers(key) {
3228    if (!key)
3229      return [];
3230    key = kebabCase2(key);
3231    let modifierToKeyMap = {
3232      "ctrl": "control",
3233      "slash": "/",
3234      "space": " ",
3235      "spacebar": " ",
3236      "cmd": "meta",
3237      "esc": "escape",
3238      "up": "arrow-up",
3239      "down": "arrow-down",
3240      "left": "arrow-left",
3241      "right": "arrow-right",
3242      "period": ".",
3243      "equal": "=",
3244      "minus": "-",
3245      "underscore": "_"
3246    };
3247    modifierToKeyMap[key] = key;
3248    return Object.keys(modifierToKeyMap).map((modifier) => {
3249      if (modifierToKeyMap[modifier] === key)
3250        return modifier;
3251    }).filter((modifier) => modifier);
3252  }
3253  directive("model", (el, { modifiers, expression }, { effect: effect3, cleanup: cleanup22 }) => {
3254    let scopeTarget = el;
3255    if (modifiers.includes("parent")) {
3256      scopeTarget = el.parentNode;
3257    }
3258    let evaluateGet = evaluateLater(scopeTarget, expression);
3259    let evaluateSet;
3260    if (typeof expression === "string") {
3261      evaluateSet = evaluateLater(scopeTarget, `${expression} = __placeholder`);
3262    } else if (typeof expression === "function" && typeof expression() === "string") {
3263      evaluateSet = evaluateLater(scopeTarget, `${expression()} = __placeholder`);
3264    } else {
3265      evaluateSet = () => {
3266      };
3267    }
3268    let getValue = () => {
3269      let result;
3270      evaluateGet((value) => result = value);
3271      return isGetterSetter(result) ? result.get() : result;
3272    };
3273    let setValue = (value) => {
3274      let result;
3275      evaluateGet((value2) => result = value2);
3276      if (isGetterSetter(result)) {
3277        result.set(value);
3278      } else {
3279        evaluateSet(() => {
3280        }, {
3281          scope: { "__placeholder": value }
3282        });
3283      }
3284    };
3285    if (typeof expression === "string" && el.type === "radio") {
3286      mutateDom(() => {
3287        if (!el.hasAttribute("name"))
3288          el.setAttribute("name", expression);
3289      });
3290    }
3291    var event = el.tagName.toLowerCase() === "select" || ["checkbox", "radio"].includes(el.type) || modifiers.includes("lazy") ? "change" : "input";
3292    let removeListener = isCloning ? () => {
3293    } : on(el, event, modifiers, (e) => {
3294      setValue(getInputValue(el, modifiers, e, getValue()));
3295    });
3296    if (modifiers.includes("fill")) {
3297      if ([void 0, null, ""].includes(getValue()) || el.type === "checkbox" && Array.isArray(getValue())) {
3298        el.dispatchEvent(new Event(event, {}));
3299      }
3300    }
3301    if (!el._x_removeModelListeners)
3302      el._x_removeModelListeners = {};
3303    el._x_removeModelListeners["default"] = removeListener;
3304    cleanup22(() => el._x_removeModelListeners["default"]());
3305    if (el.form) {
3306      let removeResetListener = on(el.form, "reset", [], (e) => {
3307        nextTick(() => el._x_model && el._x_model.set(el.value));
3308      });
3309      cleanup22(() => removeResetListener());
3310    }
3311    el._x_model = {
3312      get() {
3313        return getValue();
3314      },
3315      set(value) {
3316        setValue(value);
3317      }
3318    };
3319    el._x_forceModelUpdate = (value) => {
3320      if (value === void 0 && typeof expression === "string" && expression.match(/\./))
3321        value = "";
3322      window.fromModel = true;
3323      mutateDom(() => bind(el, "value", value));
3324      delete window.fromModel;
3325    };
3326    effect3(() => {
3327      let value = getValue();
3328      if (modifiers.includes("unintrusive") && document.activeElement.isSameNode(el))
3329        return;
3330      el._x_forceModelUpdate(value);
3331    });
3332  });
3333  function getInputValue(el, modifiers, event, currentValue) {
3334    return mutateDom(() => {
3335      if (event instanceof CustomEvent && event.detail !== void 0)
3336        return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value;
3337      else if (el.type === "checkbox") {
3338        if (Array.isArray(currentValue)) {
3339          let newValue = null;
3340          if (modifiers.includes("number")) {
3341            newValue = safeParseNumber(event.target.value);
3342          } else if (modifiers.includes("boolean")) {
3343            newValue = safeParseBoolean(event.target.value);
3344          } else {
3345            newValue = event.target.value;
3346          }
3347          return event.target.checked ? currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue));
3348        } else {
3349          return event.target.checked;
3350        }
3351      } else if (el.tagName.toLowerCase() === "select" && el.multiple) {
3352        if (modifiers.includes("number")) {
3353          return Array.from(event.target.selectedOptions).map((option) => {
3354            let rawValue = option.value || option.text;
3355            return safeParseNumber(rawValue);
3356          });
3357        } else if (modifiers.includes("boolean")) {
3358          return Array.from(event.target.selectedOptions).map((option) => {
3359            let rawValue = option.value || option.text;
3360            return safeParseBoolean(rawValue);
3361          });
3362        }
3363        return Array.from(event.target.selectedOptions).map((option) => {
3364          return option.value || option.text;
3365        });
3366      } else {
3367        if (modifiers.includes("number")) {
3368          return safeParseNumber(event.target.value);
3369        } else if (modifiers.includes("boolean")) {
3370          return safeParseBoolean(event.target.value);
3371        }
3372        return modifiers.includes("trim") ? event.target.value.trim() : event.target.value;
3373      }
3374    });
3375  }
3376  function safeParseNumber(rawValue) {
3377    let number = rawValue ? parseFloat(rawValue) : null;
3378    return isNumeric2(number) ? number : rawValue;
3379  }
3380  function checkedAttrLooseCompare2(valueA, valueB) {
3381    return valueA == valueB;
3382  }
3383  function isNumeric2(subject) {
3384    return !Array.isArray(subject) && !isNaN(subject);
3385  }
3386  function isGetterSetter(value) {
3387    return value !== null && typeof value === "object" && typeof value.get === "function" && typeof value.set === "function";
3388  }
3389  directive("cloak", (el) => queueMicrotask(() => mutateDom(() => el.removeAttribute(prefix("cloak")))));
3390  addInitSelector(() => `[${prefix("init")}]`);
3391  directive("init", skipDuringClone((el, { expression }, { evaluate: evaluate22 }) => {
3392    if (typeof expression === "string") {
3393      return !!expression.trim() && evaluate22(expression, {}, false);
3394    }
3395    return evaluate22(expression, {}, false);
3396  }));
3397  directive("text", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {
3398    let evaluate22 = evaluateLater2(expression);
3399    effect3(() => {
3400      evaluate22((value) => {
3401        mutateDom(() => {
3402          el.textContent = value;
3403        });
3404      });
3405    });
3406  });
3407  directive("html", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {
3408    let evaluate22 = evaluateLater2(expression);
3409    effect3(() => {
3410      evaluate22((value) => {
3411        mutateDom(() => {
3412          el.innerHTML = value;
3413          el._x_ignoreSelf = true;
3414          initTree(el);
3415          delete el._x_ignoreSelf;
3416        });
3417      });
3418    });
3419  });
3420  mapAttributes(startingWith(":", into(prefix("bind:"))));
3421  var handler2 = (el, { value, modifiers, expression, original }, { effect: effect3 }) => {
3422    if (!value) {
3423      let bindingProviders = {};
3424      injectBindingProviders(bindingProviders);
3425      let getBindings = evaluateLater(el, expression);
3426      getBindings((bindings) => {
3427        applyBindingsObject(el, bindings, original);
3428      }, { scope: bindingProviders });
3429      return;
3430    }
3431    if (value === "key")
3432      return storeKeyForXFor(el, expression);
3433    if (el._x_inlineBindings && el._x_inlineBindings[value] && el._x_inlineBindings[value].extract) {
3434      return;
3435    }
3436    let evaluate22 = evaluateLater(el, expression);
3437    effect3(() => evaluate22((result) => {
3438      if (result === void 0 && typeof expression === "string" && expression.match(/\./)) {
3439        result = "";
3440      }
3441      mutateDom(() => bind(el, value, result, modifiers));
3442    }));
3443  };
3444  handler2.inline = (el, { value, modifiers, expression }) => {
3445    if (!value)
3446      return;
3447    if (!el._x_inlineBindings)
3448      el._x_inlineBindings = {};
3449    el._x_inlineBindings[value] = { expression, extract: false };
3450  };
3451  directive("bind", handler2);
3452  function storeKeyForXFor(el, expression) {
3453    el._x_keyExpression = expression;
3454  }
3455  addRootSelector(() => `[${prefix("data")}]`);
3456  directive("data", (el, { expression }, { cleanup: cleanup22 }) => {
3457    if (shouldSkipRegisteringDataDuringClone(el))
3458      return;
3459    expression = expression === "" ? "{}" : expression;
3460    let magicContext = {};
3461    injectMagics(magicContext, el);
3462    let dataProviderContext = {};
3463    injectDataProviders(dataProviderContext, magicContext);
3464    let data2 = evaluate(el, expression, { scope: dataProviderContext });
3465    if (data2 === void 0 || data2 === true)
3466      data2 = {};
3467    injectMagics(data2, el);
3468    let reactiveData = reactive(data2);
3469    initInterceptors2(reactiveData);
3470    let undo = addScopeToNode(el, reactiveData);
3471    reactiveData["init"] && evaluate(el, reactiveData["init"]);
3472    cleanup22(() => {
3473      reactiveData["destroy"] && evaluate(el, reactiveData["destroy"]);
3474      undo();
3475    });
3476  });
3477  interceptClone((from, to) => {
3478    if (from._x_dataStack) {
3479      to._x_dataStack = from._x_dataStack;
3480      to.setAttribute("data-has-alpine-state", true);
3481    }
3482  });
3483  function shouldSkipRegisteringDataDuringClone(el) {
3484    if (!isCloning)
3485      return false;
3486    if (isCloningLegacy)
3487      return true;
3488    return el.hasAttribute("data-has-alpine-state");
3489  }
3490  directive("show", (el, { modifiers, expression }, { effect: effect3 }) => {
3491    let evaluate22 = evaluateLater(el, expression);
3492    if (!el._x_doHide)
3493      el._x_doHide = () => {
3494        mutateDom(() => {
3495          el.style.setProperty("display", "none", modifiers.includes("important") ? "important" : void 0);
3496        });
3497      };
3498    if (!el._x_doShow)
3499      el._x_doShow = () => {
3500        mutateDom(() => {
3501          if (el.style.length === 1 && el.style.display === "none") {
3502            el.removeAttribute("style");
3503          } else {
3504            el.style.removeProperty("display");
3505          }
3506        });
3507      };
3508    let hide = () => {
3509      el._x_doHide();
3510      el._x_isShown = false;
3511    };
3512    let show = () => {
3513      el._x_doShow();
3514      el._x_isShown = true;
3515    };
3516    let clickAwayCompatibleShow = () => setTimeout(show);
3517    let toggle = once((value) => value ? show() : hide(), (value) => {
3518      if (typeof el._x_toggleAndCascadeWithTransitions === "function") {
3519        el._x_toggleAndCascadeWithTransitions(el, value, show, hide);
3520      } else {
3521        value ? clickAwayCompatibleShow() : hide();
3522      }
3523    });
3524    let oldValue;
3525    let firstTime = true;
3526    effect3(() => evaluate22((value) => {
3527      if (!firstTime && value === oldValue)
3528        return;
3529      if (modifiers.includes("immediate"))
3530        value ? clickAwayCompatibleShow() : hide();
3531      toggle(value);
3532      oldValue = value;
3533      firstTime = false;
3534    }));
3535  });
3536  directive("for", (el, { expression }, { effect: effect3, cleanup: cleanup22 }) => {
3537    let iteratorNames = parseForExpression(expression);
3538    let evaluateItems = evaluateLater(el, iteratorNames.items);
3539    let evaluateKey = evaluateLater(el, el._x_keyExpression || "index");
3540    el._x_prevKeys = [];
3541    el._x_lookup = {};
3542    effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey));
3543    cleanup22(() => {
3544      Object.values(el._x_lookup).forEach((el2) => el2.remove());
3545      delete el._x_prevKeys;
3546      delete el._x_lookup;
3547    });
3548  });
3549  function loop(el, iteratorNames, evaluateItems, evaluateKey) {
3550    let isObject22 = (i) => typeof i === "object" && !Array.isArray(i);
3551    let templateEl = el;
3552    evaluateItems((items) => {
3553      if (isNumeric3(items) && items >= 0) {
3554        items = Array.from(Array(items).keys(), (i) => i + 1);
3555      }
3556      if (items === void 0)
3557        items = [];
3558      let lookup = el._x_lookup;
3559      let prevKeys = el._x_prevKeys;
3560      let scopes = [];
3561      let keys = [];
3562      if (isObject22(items)) {
3563        items = Object.entries(items).map(([key, value]) => {
3564          let scope2 = getIterationScopeVariables(iteratorNames, value, key, items);
3565          evaluateKey((value2) => {
3566            if (keys.includes(value2))
3567              warn("Duplicate key on x-for", el);
3568            keys.push(value2);
3569          }, { scope: { index: key, ...scope2 } });
3570          scopes.push(scope2);
3571        });
3572      } else {
3573        for (let i = 0; i < items.length; i++) {
3574          let scope2 = getIterationScopeVariables(iteratorNames, items[i], i, items);
3575          evaluateKey((value) => {
3576            if (keys.includes(value))
3577              warn("Duplicate key on x-for", el);
3578            keys.push(value);
3579          }, { scope: { index: i, ...scope2 } });
3580          scopes.push(scope2);
3581        }
3582      }
3583      let adds = [];
3584      let moves = [];
3585      let removes = [];
3586      let sames = [];
3587      for (let i = 0; i < prevKeys.length; i++) {
3588        let key = prevKeys[i];
3589        if (keys.indexOf(key) === -1)
3590          removes.push(key);
3591      }
3592      prevKeys = prevKeys.filter((key) => !removes.includes(key));
3593      let lastKey = "template";
3594      for (let i = 0; i < keys.length; i++) {
3595        let key = keys[i];
3596        let prevIndex = prevKeys.indexOf(key);
3597        if (prevIndex === -1) {
3598          prevKeys.splice(i, 0, key);
3599          adds.push([lastKey, i]);
3600        } else if (prevIndex !== i) {
3601          let keyInSpot = prevKeys.splice(i, 1)[0];
3602          let keyForSpot = prevKeys.splice(prevIndex - 1, 1)[0];
3603          prevKeys.splice(i, 0, keyForSpot);
3604          prevKeys.splice(prevIndex, 0, keyInSpot);
3605          moves.push([keyInSpot, keyForSpot]);
3606        } else {
3607          sames.push(key);
3608        }
3609        lastKey = key;
3610      }
3611      for (let i = 0; i < removes.length; i++) {
3612        let key = removes[i];
3613        if (!!lookup[key]._x_effects) {
3614          lookup[key]._x_effects.forEach(dequeueJob);
3615        }
3616        lookup[key].remove();
3617        lookup[key] = null;
3618        delete lookup[key];
3619      }
3620      for (let i = 0; i < moves.length; i++) {
3621        let [keyInSpot, keyForSpot] = moves[i];
3622        let elInSpot = lookup[keyInSpot];
3623        let elForSpot = lookup[keyForSpot];
3624        let marker = document.createElement("div");
3625        mutateDom(() => {
3626          if (!elForSpot)
3627            warn(`x-for ":key" is undefined or invalid`, templateEl, keyForSpot, lookup);
3628          elForSpot.after(marker);
3629          elInSpot.after(elForSpot);
3630          elForSpot._x_currentIfEl && elForSpot.after(elForSpot._x_currentIfEl);
3631          marker.before(elInSpot);
3632          elInSpot._x_currentIfEl && elInSpot.after(elInSpot._x_currentIfEl);
3633          marker.remove();
3634        });
3635        elForSpot._x_refreshXForScope(scopes[keys.indexOf(keyForSpot)]);
3636      }
3637      for (let i = 0; i < adds.length; i++) {
3638        let [lastKey2, index] = adds[i];
3639        let lastEl = lastKey2 === "template" ? templateEl : lookup[lastKey2];
3640        if (lastEl._x_currentIfEl)
3641          lastEl = lastEl._x_currentIfEl;
3642        let scope2 = scopes[index];
3643        let key = keys[index];
3644        let clone2 = document.importNode(templateEl.content, true).firstElementChild;
3645        let reactiveScope = reactive(scope2);
3646        addScopeToNode(clone2, reactiveScope, templateEl);
3647        clone2._x_refreshXForScope = (newScope) => {
3648          Object.entries(newScope).forEach(([key2, value]) => {
3649            reactiveScope[key2] = value;
3650          });
3651        };
3652        mutateDom(() => {
3653          lastEl.after(clone2);
3654          skipDuringClone(() => initTree(clone2))();
3655        });
3656        if (typeof key === "object") {
3657          warn("x-for key cannot be an object, it must be a string or an integer", templateEl);
3658        }
3659        lookup[key] = clone2;
3660      }
3661      for (let i = 0; i < sames.length; i++) {
3662        lookup[sames[i]]._x_refreshXForScope(scopes[keys.indexOf(sames[i])]);
3663      }
3664      templateEl._x_prevKeys = keys;
3665    });
3666  }
3667  function parseForExpression(expression) {
3668    let forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
3669    let stripParensRE = /^\s*\(|\)\s*$/g;
3670    let forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
3671    let inMatch = expression.match(forAliasRE);
3672    if (!inMatch)
3673      return;
3674    let res = {};
3675    res.items = inMatch[2].trim();
3676    let item = inMatch[1].replace(stripParensRE, "").trim();
3677    let iteratorMatch = item.match(forIteratorRE);
3678    if (iteratorMatch) {
3679      res.item = item.replace(forIteratorRE, "").trim();
3680      res.index = iteratorMatch[1].trim();
3681      if (iteratorMatch[2]) {
3682        res.collection = iteratorMatch[2].trim();
3683      }
3684    } else {
3685      res.item = item;
3686    }
3687    return res;
3688  }
3689  function getIterationScopeVariables(iteratorNames, item, index, items) {
3690    let scopeVariables = {};
3691    if (/^\[.*\]$/.test(iteratorNames.item) && Array.isArray(item)) {
3692      let names = iteratorNames.item.replace("[", "").replace("]", "").split(",").map((i) => i.trim());
3693      names.forEach((name, i) => {
3694        scopeVariables[name] = item[i];
3695      });
3696    } else if (/^\{.*\}$/.test(iteratorNames.item) && !Array.isArray(item) && typeof item === "object") {
3697      let names = iteratorNames.item.replace("{", "").replace("}", "").split(",").map((i) => i.trim());
3698      names.forEach((name) => {
3699        scopeVariables[name] = item[name];
3700      });
3701    } else {
3702      scopeVariables[iteratorNames.item] = item;
3703    }
3704    if (iteratorNames.index)
3705      scopeVariables[iteratorNames.index] = index;
3706    if (iteratorNames.collection)
3707      scopeVariables[iteratorNames.collection] = items;
3708    return scopeVariables;
3709  }
3710  function isNumeric3(subject) {
3711    return !Array.isArray(subject) && !isNaN(subject);
3712  }
3713  function handler3() {
3714  }
3715  handler3.inline = (el, { expression }, { cleanup: cleanup22 }) => {
3716    let root = closestRoot(el);
3717    if (!root._x_refs)
3718      root._x_refs = {};
3719    root._x_refs[expression] = el;
3720    cleanup22(() => delete root._x_refs[expression]);
3721  };
3722  directive("ref", handler3);
3723  directive("if", (el, { expression }, { effect: effect3, cleanup: cleanup22 }) => {
3724    if (el.tagName.toLowerCase() !== "template")
3725      warn("x-if can only be used on a <template> tag", el);
3726    let evaluate22 = evaluateLater(el, expression);
3727    let show = () => {
3728      if (el._x_currentIfEl)
3729        return el._x_currentIfEl;
3730      let clone2 = el.content.cloneNode(true).firstElementChild;
3731      addScopeToNode(clone2, {}, el);
3732      mutateDom(() => {
3733        el.after(clone2);
3734        skipDuringClone(() => initTree(clone2))();
3735      });
3736      el._x_currentIfEl = clone2;
3737      el._x_undoIf = () => {
3738        walk(clone2, (node) => {
3739          if (!!node._x_effects) {
3740            node._x_effects.forEach(dequeueJob);
3741          }
3742        });
3743        clone2.remove();
3744        delete el._x_currentIfEl;
3745      };
3746      return clone2;
3747    };
3748    let hide = () => {
3749      if (!el._x_undoIf)
3750        return;
3751      el._x_undoIf();
3752      delete el._x_undoIf;
3753    };
3754    effect3(() => evaluate22((value) => {
3755      value ? show() : hide();
3756    }));
3757    cleanup22(() => el._x_undoIf && el._x_undoIf());
3758  });
3759  directive("id", (el, { expression }, { evaluate: evaluate22 }) => {
3760    let names = evaluate22(expression);
3761    names.forEach((name) => setIdRoot(el, name));
3762  });
3763  interceptClone((from, to) => {
3764    if (from._x_ids) {
3765      to._x_ids = from._x_ids;
3766    }
3767  });
3768  mapAttributes(startingWith("@", into(prefix("on:"))));
3769  directive("on", skipDuringClone((el, { value, modifiers, expression }, { cleanup: cleanup22 }) => {
3770    let evaluate22 = expression ? evaluateLater(el, expression) : () => {
3771    };
3772    if (el.tagName.toLowerCase() === "template") {
3773      if (!el._x_forwardEvents)
3774        el._x_forwardEvents = [];
3775      if (!el._x_forwardEvents.includes(value))
3776        el._x_forwardEvents.push(value);
3777    }
3778    let removeListener = on(el, value, modifiers, (e) => {
3779      evaluate22(() => {
3780      }, { scope: { "$event": e }, params: [e] });
3781    });
3782    cleanup22(() => removeListener());
3783  }));
3784  warnMissingPluginDirective("Collapse", "collapse", "collapse");
3785  warnMissingPluginDirective("Intersect", "intersect", "intersect");
3786  warnMissingPluginDirective("Focus", "trap", "focus");
3787  warnMissingPluginDirective("Mask", "mask", "mask");
3788  function warnMissingPluginDirective(name, directiveName, slug) {
3789    directive(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el));
3790  }
3791  alpine_default.setEvaluator(normalEvaluator);
3792  alpine_default.setReactivityEngine({ reactive: reactive2, effect: effect2, release: stop, raw: toRaw });
3793  var src_default = alpine_default;
3794  var module_default = src_default;
3795
3796  
3796// js/features/supportEntangle.js
3797  function generateEntangleFunction(component, cleanup3) {
3798    if (!cleanup3)
3799      cleanup3 = () => {
3800      };
3801    return (name, live = false) => {
3802      let isLive = live;
3803      let livewireProperty = name;
3804      let livewireComponent = component.$wire;
3805      let livewirePropertyValue = livewireComponent.get(livewireProperty);
3806      let interceptor2 = module_default.interceptor((initialValue, getter, setter, path, key) => {
3807        if (typeof livewirePropertyValue === "undefined") {
3808          console.error(`Livewire Entangle Error: Livewire property ['${livewireProperty}'] cannot be found on component: ['${component.name}']`);
3809          return;
3810        }
3811        let release2 = module_default.entangle({
3812          get() {
3813            return livewireComponent.get(name);
3814          },
3815          set(value) {
3816            livewireComponent.set(name, value, isLive);
3817          }
3818        }, {
3819          get() {
3820            return getter();
3821          },
3822          set(value) {
3823            setter(value);
3824          }
3825        });
3826        cleanup3(() => release2());
3827        return cloneIfObject2(livewireComponent.get(name));
3828      }, (obj) => {
3829        Object.defineProperty(obj, "live", {
3830          get() {
3831            isLive = true;
3832            return obj;
3833          }
3834        });
3835      });
3836      return interceptor2(livewirePropertyValue);
3837    };
3838  }
3839  function cloneIfObject2(value) {
3840    return typeof value === "object" ? JSON.parse(JSON.stringify(value)) : value;
3841  }
3842
3843  
3843// js/hooks.js
3844  var listeners = [];
3845  function on2(name, callback) {
3846    if (!listeners[name])
3847      listeners[name] = [];
3848    listeners[name].push(callback);
3849    return () => {
3850      listeners[name] = listeners[name].filter((i) => i !== callback);
3851    };
3852  }
3853  function trigger2(name, ...params) {
3854    let callbacks = listeners[name] || [];
3855    let finishers = [];
3856    for (let i = 0; i < callbacks.length; i++) {
3857      let finisher = callbacks[i](...params);
3858      if (isFunction(finisher))
3859        finishers.push(finisher);
3860    }
3861    return (result) => {
3862      return runFinishers(finishers, result);
3863    };
3864  }
3865  async function triggerAsync(name, ...params) {
3866    let callbacks = listeners[name] || [];
3867    let finishers = [];
3868    for (let i = 0; i < callbacks.length; i++) {
3869      let finisher = await callbacks[i](...params);
3870      if (isFunction(finisher))
3871        finishers.push(finisher);
3872    }
3873    return (result) => {
3874      return runFinishers(finishers, result);
3875    };
3876  }
3877  function runFinishers(finishers, result) {
3878    let latest = result;
3879    for (let i = 0; i < finishers.length; i++) {
3880      let iResult = finishers[i](latest);
3881      if (iResult !== void 0) {
3882        latest = iResult;
3883      }
3884    }
3885    return latest;
3886  }
3887
3888  
3888// js/request/modal.js
3889  function showHtmlModal(html) {
3890    let page = document.createElement("html");
3891    page.innerHTML = html;
3892    page.querySelectorAll("a").forEach((a) => a.setAttribute("target", "_top"));
3893    let modal = document.getElementById("livewire-error");
3894    if (typeof modal != "undefined" && modal != null) {
3895      modal.innerHTML = "";
3896    } else {
3897      modal = document.createElement("div");
3898      modal.id = "livewire-error";
3899      modal.style.position = "fixed";
3900      modal.style.width = "100vw";
3901      modal.style.height = "100vh";
3902      modal.style.padding = "50px";
3903      modal.style.backgroundColor = "rgba(0, 0, 0, .6)";
3904      modal.style.zIndex = 2e5;
3905    }
3906    let iframe = document.createElement("iframe");
3907    iframe.style.backgroundColor = "#17161A";
3908    iframe.style.borderRadius = "5px";
3909    iframe.style.width = "100%";
3910    iframe.style.height = "100%";
3911    modal.appendChild(iframe);
3912    document.body.prepend(modal);
3913    document.body.style.overflow = "hidden";
3914    iframe.contentWindow.document.open();
3915    iframe.contentWindow.document.write(page.outerHTML);
3916    iframe.contentWindow.document.close();
3917    modal.addEventListener("click", () => hideHtmlModal(modal));
3918    modal.setAttribute("tabindex", 0);
3919    modal.addEventListener("keydown", (e) => {
3920      if (e.key === "Escape")
3921        hideHtmlModal(modal);
3922    });
3923    modal.focus();
3924  }
3925  function hideHtmlModal(modal) {
3926    modal.outerHTML = "";
3927    document.body.style.overflow = "visible";
3928  }
3929
3930  
3930// js/request/pool.js
3931  var RequestPool = class {
3932    constructor() {
3933      this.commits = /* @__PURE__ */ new Set();
3934    }
3935    add(commit) {
3936      this.commits.add(commit);
3937    }
3938    delete(commit) {
3939      this.commits.delete(commit);
3940    }
3941    hasCommitFor(component) {
3942      return !!this.findCommitByComponent(component);
3943    }
3944    findCommitByComponent(component) {
3945      for (let [idx, commit] of this.commits.entries()) {
3946        if (commit.component === component)
3947          return commit;
3948      }
3949    }
3950    shouldHoldCommit(commit) {
3951      return !commit.isolate;
3952    }
3953    empty() {
3954      return this.commits.size === 0;
3955    }
3956    async send() {
3957      this.prepare();
3958      await sendRequest(this);
3959    }
3960    prepare() {
3961      this.commits.forEach((i) => i.prepare());
3962    }
3963    payload() {
3964      let commitPayloads = [];
3965      let successReceivers = [];
3966      let failureReceivers = [];
3967      this.commits.forEach((commit) => {
3968        let [payload, succeed2, fail2] = commit.toRequestPayload();
3969        commitPayloads.push(payload);
3970        successReceivers.push(succeed2);
3971        failureReceivers.push(fail2);
3972      });
3973      let succeed = (components2) => successReceivers.forEach((receiver) => receiver(components2.shift()));
3974      let fail = () => failureReceivers.forEach((receiver) => receiver());
3975      return [commitPayloads, succeed, fail];
3976    }
3977  };
3978
3979  
3979// js/request/commit.js
3980  var Commit = class {
3981    constructor(component) {
3982      this.component = component;
3983      this.isolate = false;
3984      this.calls = [];
3985      this.receivers = [];
3986      this.resolvers = [];
3987    }
3988    addResolver(resolver) {
3989      this.resolvers.push(resolver);
3990    }
3991    addCall(method, params, receiver) {
3992      this.calls.push({
3993        path: "",
3994        method,
3995        params,
3996        handleReturn(value) {
3997          receiver(value);
3998        }
3999      });
4000    }
4001    prepare() {
4002      trigger2("commit.prepare", { component: this.component });
4003    }
4004    toRequestPayload() {
4005      let propertiesDiff = diff(this.component.canonical, this.component.ephemeral);
4006      let updates = this.component.mergeQueuedUpdates(propertiesDiff);
4007      let payload = {
4008        snapshot: this.component.snapshotEncoded,
4009        updates,
4010        calls: this.calls.map((i) => ({
4011          path: i.path,
4012          method: i.method,
4013          params: i.params
4014        }))
4015      };
4016      let succeedCallbacks = [];
4017      let failCallbacks = [];
4018      let respondCallbacks = [];
4019      let succeed = (fwd) => succeedCallbacks.forEach((i) => i(fwd));
4020      let fail = () => failCallbacks.forEach((i) => i());
4021      let respond = () => respondCallbacks.forEach((i) => i());
4022      let finishTarget = trigger2("commit", {
4023        component: this.component,
4024        commit: payload,
4025        succeed: (callback) => {
4026          succeedCallbacks.push(callback);
4027        },
4028        fail: (callback) => {
4029          failCallbacks.push(callback);
4030        },
4031        respond: (callback) => {
4032          respondCallbacks.push(callback);
4033        }
4034      });
4035      let handleResponse = (response) => {
4036        let { snapshot, effects } = response;
4037        respond();
4038        this.component.mergeNewSnapshot(snapshot, effects, updates);
4039        this.component.processEffects(this.component.effects);
4040        if (effects["returns"]) {
4041          let returns = effects["returns"];
4042          let returnHandlerStack = this.calls.map(({ handleReturn }) => handleReturn);
4043          returnHandlerStack.forEach((handleReturn, index) => {
4044            handleReturn(returns[index]);
4045          });
4046        }
4047        let parsedSnapshot = JSON.parse(snapshot);
4048        finishTarget({ snapshot: parsedSnapshot, effects });
4049        this.resolvers.forEach((i) => i());
4050        succeed(response);
4051      };
4052      let handleFailure = () => {
4053        respond();
4054        fail();
4055      };
4056      return [payload, handleResponse, handleFailure];
4057    }
4058  };
4059
4060  
4060// js/request/bus.js
4061  var CommitBus = class {
4062    constructor() {
4063      this.commits = /* @__PURE__ */ new Set();
4064      this.pools = /* @__PURE__ */ new Set();
4065    }
4066    add(component) {
4067      let commit = this.findCommitOr(component, () => {
4068        let newCommit = new Commit(component);
4069        this.commits.add(newCommit);
4070        return newCommit;
4071      });
4072      bufferPoolingForFiveMs(commit, () => {
4073        let pool = this.findPoolWithComponent(commit.component);
4074        if (!pool) {
4075          this.createAndSendNewPool();
4076        }
4077      });
4078      return commit;
4079    }
4080    findCommitOr(component, callback) {
4081      for (let [idx, commit] of this.commits.entries()) {
4082        if (commit.component === component) {
4083          return commit;
4084        }
4085      }
4086      return callback();
4087    }
4088    findPoolWithComponent(component) {
4089      for (let [idx, pool] of this.pools.entries()) {
4090        if (pool.hasCommitFor(component))
4091          return pool;
4092      }
4093    }
4094    createAndSendNewPool() {
4095      trigger2("commit.pooling", { commits: this.commits });
4096      let pools = this.corraleCommitsIntoPools();
4097      this.commits.clear();
4098      trigger2("commit.pooled", { pools });
4099      pools.forEach((pool) => {
4100        if (pool.empty())
4101          return;
4102        this.pools.add(pool);
4103        pool.send().then(() => {
4104          this.pools.delete(pool);
4105          this.sendAnyQueuedCommits();
4106        });
4107      });
4108    }
4109    corraleCommitsIntoPools() {
4110      let pools = /* @__PURE__ */ new Set();
4111      for (let [idx, commit] of this.commits.entries()) {
4112        let hasFoundPool = false;
4113        pools.forEach((pool) => {
4114          if (pool.shouldHoldCommit(commit)) {
4115            pool.add(commit);
4116            hasFoundPool = true;
4117          }
4118        });
4119        if (!hasFoundPool) {
4120          let newPool = new RequestPool();
4121          newPool.add(commit);
4122          pools.add(newPool);
4123        }
4124      }
4125      return pools;
4126    }
4127    sendAnyQueuedCommits() {
4128      if (this.commits.size > 0) {
4129        this.createAndSendNewPool();
4130      }
4131    }
4132  };
4133  var buffersByCommit = /* @__PURE__ */ new WeakMap();
4134  function bufferPoolingForFiveMs(commit, callback) {
4135    if (buffersByCommit.has(commit))
4136      return;
4137    buffersByCommit.set(commit, setTimeout(() => {
4138      callback();
4139      buffersByCommit.delete(commit);
4140    }, 5));
4141  }
4142
4143  
4143// js/request/index.js
4144  var commitBus = new CommitBus();
4145  async function requestCommit(component) {
4146    let commit = commitBus.add(component);
4147    let promise = new Promise((resolve) => {
4148      commit.addResolver(resolve);
4149    });
4150    promise.commit = commit;
4151    return promise;
4152  }
4153  async function requestCall(component, method, params) {
4154    let commit = commitBus.add(component);
4155    let promise = new Promise((resolve) => {
4156      commit.addCall(method, params, (value) => resolve(value));
4157    });
4158    promise.commit = commit;
4159    return promise;
4160  }
4161  async function sendRequest(pool) {
4162    let [payload, handleSuccess, handleFailure] = pool.payload();
4163    let options = {
4164      method: "POST",
4165      body: JSON.stringify({
4166        _token: getCsrfToken(),
4167        components: payload
4168      }),
4169      headers: {
4170        "Content-type": "application/json",
4171        "X-Livewire": ""
4172      }
4173    };
4174    let succeedCallbacks = [];
4175    let failCallbacks = [];
4176    let respondCallbacks = [];
4177    let succeed = (fwd) => succeedCallbacks.forEach((i) => i(fwd));
4178    let fail = (fwd) => failCallbacks.forEach((i) => i(fwd));
4179    let respond = (fwd) => respondCallbacks.forEach((i) => i(fwd));
4180    let finishProfile = trigger2("request.profile", options);
4181    let updateUri = getUpdateUri();
4182    trigger2("request", {
4183      url: updateUri,
4184      options,
4185      payload: options.body,
4186      respond: (i) => respondCallbacks.push(i),
4187      succeed: (i) => succeedCallbacks.push(i),
4188      fail: (i) => failCallbacks.push(i)
4189    });
4190    let response;
4191    try {
4192      response = await fetch(updateUri, options);
4193    } catch (e) {
4194      finishProfile({ content: "{}", failed: true });
4195      handleFailure();
4196      fail({
4197        status: 503,
4198        content: null,
4199        preventDefault: () => {
4200        }
4201      });
4202      return;
4203    }
4204    let mutableObject = {
4205      status: response.status,
4206      response
4207    };
4208    respond(mutableObject);
4209    response = mutableObject.response;
4210    let content = await response.text();
4211    if (!response.ok) {
4212      finishProfile({ content: "{}", failed: true });
4213      let preventDefault = false;
4214      handleFailure();
4215      fail({
4216        status: response.status,
4217        content,
4218        preventDefault: () => preventDefault = true
4219      });
4220      if (preventDefault)
4221        return;
4222      if (response.status === 419) {
4223        handlePageExpiry();
4224      }
4225      return showFailureModal(content);
4226    }
4227    if (response.redirected) {
4228      window.location.href = response.url;
4229    }
4230    if (contentIsFromDump(content)) {
4231      let dump;
4232      [dump, content] = splitDumpFromContent(content);
4233      showHtmlModal(dump);
4234      finishProfile({ content: "{}", failed: true });
4235    } else {
4236      finishProfile({ content, failed: false });
4237    }
4238    let { components: components2, assets } = JSON.parse(content);
4239    await triggerAsync("payload.intercept", { components: components2, assets });
4240    await handleSuccess(components2);
4241    succeed({ status: response.status, json: JSON.parse(content) });
4242  }
4243  function handlePageExpiry() {
4244    confirm("This page has expired.\nWould you like to refresh the page?") && window.location.reload();
4245  }
4246  function showFailureModal(content) {
4247    let html = content;
4248    showHtmlModal(html);
4249  }
4250
4251  // js/$wire.js
4252  var properties = {};
4253  var fallback;
4254  function wireProperty(name, callback, component = null) {
4255    properties[name] = callback;
4256  }
4257  function wireFallback(callback) {
4258    fallback = callback;
4259  }
4260  var aliases = {
4261    "on": "$on",
4262    "el": "$el",
4263    "id": "$id",
4264    "get": "$get",
4265    "set": "$set",
4266    "call": "$call",
4267    "commit": "$commit",
4268    "watch": "$watch",
4269    "entangle": "$entangle",
4270    "dispatch": "$dispatch",
4271    "dispatchTo": "$dispatchTo",
4272    "dispatchSelf": "$dispatchSelf",
4273    "upload": "$upload",
4274    "uploadMultiple": "$uploadMultiple",
4275    "removeUpload": "$removeUpload",
4276    "cancelUpload": "$cancelUpload"
4277  };
4278  function generateWireObject(component, state) {
4279    return new Proxy({}, {
4280      get(target, property) {
4281        if (property === "__instance")
4282          return component;
4283        if (property in aliases) {
4284          return getProperty(component, aliases[property]);
4285        } else if (property in properties) {
4286          return getProperty(component, property);
4287        } else if (property in state) {
4288          return state[property];
4289        } else if (!["then"].includes(property)) {
4290          return getFallback(component)(property);
4291        }
4292      },
4293      set(target, property, value) {
4294        if (property in state) {
4295          state[property] = value;
4296        }
4297        return true;
4298      }
4299    });
4300  }
4301  function getProperty(component, name) {
4302    return properties[name](component);
4303  }
4304  function getFallback(component) {
4305    return fallback(component);
4306  }
4307  module_default.magic("wire", (el, { cleanup: cleanup3 }) => {
4308    let component;
4309    return new Proxy({}, {
4310      get(target, property) {
4311        if (!component)
4312          component = closestComponent(el);
4313        if (["$entangle", "entangle"].includes(property)) {
4314          return generateEntangleFunction(component, cleanup3);
4315        }
4316        return component.$wire[property];
4317      },
4318      set(target, property, value) {
4319        if (!component)
4320          component = closestComponent(el);
4321        component.$wire[property] = value;
4322        return true;
4323      }
4324    });
4325  });
4326  wireProperty("__instance", (component) => component);
4327  wireProperty("$get", (component) => (property, reactive3 = true) => dataGet(reactive3 ? component.reactive : component.ephemeral, property));
4328  wireProperty("$el", (component) => {
4329    return component.el;
4330  });
4331  wireProperty("$id", (component) => {
4332    return component.id;
4333  });
4334  wireProperty("$set", (component) => async (property, value, live = true) => {
4335    dataSet(component.reactive, property, value);
4336    if (live) {
4337      component.queueUpdate(property, value);
4338      return await requestCommit(component);
4339    }
4340    return Promise.resolve();
4341  });
4342  wireProperty("$call", (component) => async (method, ...params) => {
4343    return await component.$wire[method](...params);
4344  });
4345  wireProperty("$entangle", (component) => (name, live = false) => {
4346    return generateEntangleFunction(component)(name, live);
4347  });
4348  wireProperty("$toggle", (component) => (name, live = true) => {
4349    return component.$wire.set(name, !component.$wire.get(name), live);
4350  });
4351  wireProperty("$watch", (component) => (path, callback) => {
4352    let firstTime = true;
4353    let oldValue = void 0;
4354    module_default.effect(() => {
4355      let value = dataGet(component.reactive, path);
4356      JSON.stringify(value);
4357      if (!firstTime) {
4358        queueMicrotask(() => {
4359          callback(value, oldValue);
4360          oldValue = value;
4361        });
4362      } else {
4363        oldValue = value;
4364      }
4365      firstTime = false;
4366    });
4367  });
4368  wireProperty("$refresh", (component) => component.$wire.$commit);
4369  wireProperty("$commit", (component) => async () => await requestCommit(component));
4370  wireProperty("$on", (component) => (...params) => listen(component, ...params));
4371  wireProperty("$dispatch", (component) => (...params) => dispatch3(component, ...params));
4372  wireProperty("$dispatchSelf", (component) => (...params) => dispatchSelf(component, ...params));
4373  wireProperty("$dispatchTo", () => (...params) => dispatchTo(...params));
4374  wireProperty("$upload", (component) => (...params) => upload(component, ...params));
4375  wireProperty("$uploadMultiple", (component) => (...params) => uploadMultiple(component, ...params));
4376  wireProperty("$removeUpload", (component) => (...params) => removeUpload(component, ...params));
4377  wireProperty("$cancelUpload", (component) => (...params) => cancelUpload(component, ...params));
4378  var parentMemo = /* @__PURE__ */ new WeakMap();
4379  wireProperty("$parent", (component) => {
4380    if (parentMemo.has(component))
4381      return parentMemo.get(component).$wire;
4382    let parent = closestComponent(component.el.parentElement);
4383    parentMemo.set(component, parent);
4384    return parent.$wire;
4385  });
4386  var overriddenMethods = /* @__PURE__ */ new WeakMap();
4387  function overrideMethod(component, method, callback) {
4388    if (!overriddenMethods.has(component)) {
4389      overriddenMethods.set(component, {});
4390    }
4391    let obj = overriddenMethods.get(component);
4392    obj[method] = callback;
4393    overriddenMethods.set(component, obj);
4394  }
4395  wireFallback((component) => (property) => async (...params) => {
4396    if (params.length === 1 && params[0] instanceof Event) {
4397      params = [];
4398    }
4399    if (overriddenMethods.has(component)) {
4400      let overrides = overriddenMethods.get(component);
4401      if (typeof overrides[property] === "function") {
4402        return overrides[property](params);
4403      }
4404    }
4405    return await requestCall(component, property, params);
4406  });
4407
4408  
4408// js/component.js
4409  var Component = class {
4410    constructor(el) {
4411      if (el.__livewire)
4412        throw "Component already initialized";
4413      el.__livewire = this;
4414      this.el = el;
4415      this.id = el.getAttribute("wire:id");
4416      this.__livewireId = this.id;
4417      this.snapshotEncoded = el.getAttribute("wire:snapshot");
4418      this.snapshot = JSON.parse(this.snapshotEncoded);
4419      if (!this.snapshot) {
4420        throw `Snapshot missing on Livewire component with id: ` + this.id;
4421      }
4422      this.name = this.snapshot.memo.name;
4423      this.effects = JSON.parse(el.getAttribute("wire:effects"));
4424      this.originalEffects = deepClone(this.effects);
4425      this.canonical = extractData(deepClone(this.snapshot.data));
4426      this.ephemeral = extractData(deepClone(this.snapshot.data));
4427      this.reactive = Alpine.reactive(this.ephemeral);
4428      this.queuedUpdates = {};
4429      this.$wire = generateWireObject(this, this.reactive);
4430      this.cleanups = [];
4431      this.processEffects(this.effects);
4432    }
4433    mergeNewSnapshot(snapshotEncoded, effects, updates = {}) {
4434      let snapshot = JSON.parse(snapshotEncoded);
4435      let oldCanonical = deepClone(this.canonical);
4436      let updatedOldCanonical = this.applyUpdates(oldCanonical, updates);
4437      let newCanonical = extractData(deepClone(snapshot.data));
4438      let dirty = diff(updatedOldCanonical, newCanonical);
4439      this.snapshotEncoded = snapshotEncoded;
4440      this.snapshot = snapshot;
4441      this.effects = effects;
4442      this.canonical = extractData(deepClone(snapshot.data));
4443      let newData = extractData(deepClone(snapshot.data));
4444      Object.entries(dirty).forEach(([key, value]) => {
4445        let rootKey = key.split(".")[0];
4446        this.reactive[rootKey] = newData[rootKey];
4447      });
4448      return dirty;
4449    }
4450    queueUpdate(propertyName, value) {
4451      this.queuedUpdates[propertyName] = value;
4452    }
4453    mergeQueuedUpdates(diff2) {
4454      Object.entries(this.queuedUpdates).forEach(([updateKey, updateValue]) => {
4455        Object.entries(diff2).forEach(([diffKey, diffValue]) => {
4456          if (diffKey.startsWith(updateValue)) {
4457            delete diff2[diffKey];
4458          }
4459        });
4460        diff2[updateKey] = updateValue;
4461      });
4462      this.queuedUpdates = [];
4463      return diff2;
4464    }
4465    applyUpdates(object, updates) {
4466      for (let key in updates) {
4467        dataSet(object, key, updates[key]);
4468      }
4469      return object;
4470    }
4471    replayUpdate(snapshot, html) {
4472      let effects = { ...this.effects, html };
4473      this.mergeNewSnapshot(JSON.stringify(snapshot), effects);
4474      this.processEffects({ html });
4475    }
4476    processEffects(effects) {
4477      trigger2("effects", this, effects);
4478      trigger2("effect", {
4479        component: this,
4480        effects,
4481        cleanup: (i) => this.addCleanup(i)
4482      });
4483    }
4484    get children() {
4485      let meta = this.snapshot.memo;
4486      let childIds = Object.values(meta.children).map((i) => i[1]);
4487      return childIds.map((id) => findComponent(id));
4488    }
4489    inscribeSnapshotAndEffectsOnElement() {
4490      let el = this.el;
4491      el.setAttribute("wire:snapshot", this.snapshotEncoded);
4492      let effects = this.originalEffects.listeners ? { listeners: this.originalEffects.listeners } : {};
4493      if (this.originalEffects.url) {
4494        effects.url = this.originalEffects.url;
4495      }
4496      el.setAttribute("wire:effects", JSON.stringify(effects));
4497    }
4498    addCleanup(cleanup3) {
4499      this.cleanups.push(cleanup3);
4500    }
4501    cleanup() {
4502      delete this.el.__livewire;
4503      while (this.cleanups.length > 0) {
4504        this.cleanups.pop()();
4505      }
4506    }
4507  };
4508
4509  
4509// js/store.js
4510  var components = {};
4511  function initComponent(el) {
4512    let component = new Component(el);
4513    if (components[component.id])
4514      throw "Component already registered";
4515    let cleanup3 = (i) => component.addCleanup(i);
4516    trigger2("component.init", { component, cleanup: cleanup3 });
4517    components[component.id] = component;
4518    return component;
4519  }
4520  function destroyComponent(id) {
4521    let component = components[id];
4522    if (!component)
4523      return;
4524    component.cleanup();
4525    delete components[id];
4526  }
4527  function findComponent(id) {
4528    let component = components[id];
4529    if (!component)
4530      throw "Component not found: " + id;
4531    return component;
4532  }
4533  function closestComponent(el, strict = true) {
4534    let closestRoot2 = Alpine.findClosest(el, (i) => i.__livewire);
4535    if (!closestRoot2) {
4536      if (strict)
4537        throw "Could not find Livewire component in DOM tree";
4538      return;
4539    }
4540    return closestRoot2.__livewire;
4541  }
4542  function componentsByName(name) {
4543    return Object.values(components).filter((component) => {
4544      return name == component.name;
4545    });
4546  }
4547  function getByName(name) {
4548    return componentsByName(name).map((i) => i.$wire);
4549  }
4550  function find(id) {
4551    let component = components[id];
4552    return component && component.$wire;
4553  }
4554  function first() {
4555    return Object.values(components)[0].$wire;
4556  }
4557  function all() {
4558    return Object.values(components);
4559  }
4560
4561  
4561// js/events.js
4562  function dispatch3(component, name, params) {
4563    dispatchEvent(component.el, name, params);
4564  }
4565  function dispatchGlobal(name, params) {
4566    dispatchEvent(window, name, params);
4567  }
4568  function dispatchSelf(component, name, params) {
4569    dispatchEvent(component.el, name, params, false);
4570  }
4571  function dispatchTo(componentName, name, params) {
4572    let targets = componentsByName(componentName);
4573    targets.forEach((target) => {
4574      dispatchEvent(target.el, name, params, false);
4575    });
4576  }
4577  function listen(component, name, callback) {
4578    component.el.addEventListener(name, (e) => {
4579      callback(e.detail);
4580    });
4581  }
4582  function on3(eventName, callback) {
4583    let handler4 = (e) => {
4584      if (!e.__livewire)
4585        return;
4586      callback(e.detail);
4587    };
4588    window.addEventListener(eventName, handler4);
4589    return () => {
4590      window.removeEventListener(eventName, handler4);
4591    };
4592  }
4593  function dispatchEvent(target, name, params, bubbles = true) {
4594    let e = new CustomEvent(name, { bubbles, detail: params });
4595    e.__livewire = { name, params, receivedBy: [] };
4596    target.dispatchEvent(e);
4597  }
4598
4599  
4599// js/directives.js
4600  function matchesForLivewireDirective(attributeName) {
4601    return attributeName.match(new RegExp("wire:"));
4602  }
4603  function extractDirective(el, name) {
4604    let [value, ...modifiers] = name.replace(new RegExp("wire:"), "").split(".");
4605    return new Directive(value, modifiers, name, el);
4606  }
4607  function directive2(name, callback) {
4608    on2("directive.init", ({ el, component, directive: directive3, cleanup: cleanup3 }) => {
4609      if (directive3.value === name) {
4610        callback({
4611          el,
4612          directive: directive3,
4613          component,
4614          cleanup: cleanup3
4615        });
4616      }
4617    });
4618  }
4619  function getDirectives(el) {
4620    return new DirectiveManager(el);
4621  }
4622  var DirectiveManager = class {
4623    constructor(el) {
4624      this.el = el;
4625      this.directives = this.extractTypeModifiersAndValue();
4626    }
4627    all() {
4628      return this.directives;
4629    }
4630    has(value) {
4631      return this.directives.map((directive3) => directive3.value).includes(value);
4632    }
4633    missing(value) {
4634      return !this.has(value);
4635    }
4636    get(value) {
4637      return this.directives.find((directive3) => directive3.value === value);
4638    }
4639    extractTypeModifiersAndValue() {
4640      return Array.from(this.el.getAttributeNames().filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(this.el, name)));
4641    }
4642  };
4643  var Directive = class {
4644    constructor(value, modifiers, rawName, el) {
4645      this.rawName = this.raw = rawName;
4646      this.el = el;
4647      this.eventContext;
4648      this.value = value;
4649      this.modifiers = modifiers;
4650      this.expression = this.el.getAttribute(this.rawName);
4651    }
4652    get method() {
4653      const { method } = this.parseOutMethodAndParams(this.expression);
4654      return method;
4655    }
4656    get params() {
4657      const { params } = this.parseOutMethodAndParams(this.expression);
4658      return params;
4659    }
4660    parseOutMethodAndParams(rawMethod) {
4661      let method = rawMethod;
4662      let params = [];
4663      const methodAndParamString = method.match(/(.*?)\((.*)\)/s);
4664      if (methodAndParamString) {
4665        method = methodAndParamString[1];
4666        let func = new Function("$event", `return (function () {
4667                for (var l=arguments.length, p=new Array(l), k=0; k<l; k++) {
4668                    p[k] = arguments[k];
4669                }
4670                return [].concat(p);
4671            })(${methodAndParamString[2]})`);
4672        params = func(this.eventContext);
4673      }
4674      return { method, params };
4675    }
4676  };
4677
4678  
vendor: 3,027 bytes, lines 4678-4772
4678// ../alpine/packages/collapse/dist/module.esm.js
4679  function src_default2(Alpine3) {
4680    Alpine3.directive("collapse", collapse);
4681    collapse.inline = (el, { modifiers }) => {
4682      if (!modifiers.includes("min"))
4683        return;
4684      el._x_doShow = () => {
4685      };
4686      el._x_doHide = () => {
4687      };
4688    };
4689    function collapse(el, { modifiers }) {
4690      let duration = modifierValue2(modifiers, "duration", 250) / 1e3;
4691      let floor2 = modifierValue2(modifiers, "min", 0);
4692      let fullyHide = !modifiers.includes("min");
4693      if (!el._x_isShown)
4694        el.style.height = `${floor2}px`;
4695      if (!el._x_isShown && fullyHide)
4696        el.hidden = true;
4697      if (!el._x_isShown)
4698        el.style.overflow = "hidden";
4699      let setFunction = (el2, styles) => {
4700        let revertFunction = Alpine3.setStyles(el2, styles);
4701        return styles.height ? () => {
4702        } : revertFunction;
4703      };
4704      let transitionStyles = {
4705        transitionProperty: "height",
4706        transitionDuration: `${duration}s`,
4707        transitionTimingFunction: "cubic-bezier(0.4, 0.0, 0.2, 1)"
4708      };
4709      el._x_transition = {
4710        in(before = () => {
4711        }, after = () => {
4712        }) {
4713          if (fullyHide)
4714            el.hidden = false;
4715          if (fullyHide)
4716            el.style.display = null;
4717          let current = el.getBoundingClientRect().height;
4718          el.style.height = "auto";
4719          let full = el.getBoundingClientRect().height;
4720          if (current === full) {
4721            current = floor2;
4722          }
4723          Alpine3.transition(el, Alpine3.setStyles, {
4724            during: transitionStyles,
4725            start: { height: current + "px" },
4726            end: { height: full + "px" }
4727          }, () => el._x_isShown = true, () => {
4728            if (el.getBoundingClientRect().height == full) {
4729              el.style.overflow = null;
4730            }
4731          });
4732        },
4733        out(before = () => {
4734        }, after = () => {
4735        }) {
4736          let full = el.getBoundingClientRect().height;
4737          Alpine3.transition(el, setFunction, {
4738            during: transitionStyles,
4739            start: { height: full + "px" },
4740            end: { height: floor2 + "px" }
4741          }, () => el.style.overflow = "hidden", () => {
4742            el._x_isShown = false;
4743            if (el.style.height == `${floor2}px` && fullyHide) {
4744              el.style.display = "none";
4745              el.hidden = true;
4746            }
4747          });
4748        }
4749      };
4750    }
4751  }
4752  function modifierValue2(modifiers, key, fallback2) {
4753    if (modifiers.indexOf(key) === -1)
4754      return fallback2;
4755    const rawValue = modifiers[modifiers.indexOf(key) + 1];
4756    if (!rawValue)
4757      return fallback2;
4758    if (key === "duration") {
4759      let match = rawValue.match(/([0-9]+)ms/);
4760      if (match)
4761        return match[1];
4762    }
4763    if (key === "min") {
4764      let match = rawValue.match(/([0-9]+)px/);
4765      if (match)
4766        return match[1];
4767    }
4768    return rawValue;
4769  }
4770  var module_default2 = src_default2;
4771
4772  
4772// ../alpine/packages/focus/dist/module.esm.js
4773  var candidateSelectors = ["input", "select", "textarea", "a[href]", "button", "[tabindex]:not(slot)", "audio[controls]", "video[controls]", '[contenteditable]:not([contenteditable="false"])', "details>summary:first-of-type", "details"];
4774  var candidateSelector = /* @__PURE__ */ candidateSelectors.join(",");
4775  var NoElement = typeof Element === "undefined";
4776  var matches = NoElement ? function() {
4777  } : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
4778  var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) {
4779    return element.getRootNode();
4780  } : function(element) {
4781    return element.ownerDocument;
4782  };
4783  var getCandidates = function getCandidates2(el, includeContainer, filter) {
4784    var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));
4785    if (includeContainer && matches.call(el, candidateSelector)) {
4786      candidates.unshift(el);
4787    }
4788    candidates = candidates.filter(filter);
4789    return candidates;
4790  };
4791  var getCandidatesIteratively = function getCandidatesIteratively2(elements, includeContainer, options) {
4792    var candidates = [];
4793    var elementsToCheck = Array.from(elements);
4794    while (elementsToCheck.length) {
4795      var element = elementsToCheck.shift();
4796      if (element.tagName === "SLOT") {
4797        var assigned = element.assignedElements();
4798        var content = assigned.length ? assigned : element.children;
4799        var nestedCandidates = getCandidatesIteratively2(content, true, options);
4800        if (options.flatten) {
4801          candidates.push.apply(candidates, nestedCandidates);
4802        } else {
4803          candidates.push({
4804            scope: element,
4805            candidates: nestedCandidates
4806          });
4807        }
4808      } else {
4809        var validCandidate = matches.call(element, candidateSelector);
4810        if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {
4811          candidates.push(element);
4812        }
4813        var shadowRoot = element.shadowRoot || typeof options.getShadowRoot === "function" && options.getShadowRoot(element);
4814        var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);
4815        if (shadowRoot && validShadowRoot) {
4816          var _nestedCandidates = getCandidatesIteratively2(shadowRoot === true ? element.children : shadowRoot.children, true, options);
4817          if (options.flatten) {
4818            candidates.push.apply(candidates, _nestedCandidates);
4819          } else {
4820            candidates.push({
4821              scope: element,
4822              candidates: _nestedCandidates
4823            });
4824          }
4825        } else {
4826          elementsToCheck.unshift.apply(elementsToCheck, element.children);
4827        }
4828      }
4829    }
4830    return candidates;
4831  };
4832  var getTabindex = function getTabindex2(node, isScope) {
4833    if (node.tabIndex < 0) {
4834      if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute("tabindex"), 10))) {
4835        return 0;
4836      }
4837    }
4838    return node.tabIndex;
4839  };
4840  var sortOrderedTabbables = function sortOrderedTabbables2(a, b) {
4841    return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;
4842  };
4843  var isInput = function isInput2(node) {
4844    return node.tagName === "INPUT";
4845  };
4846  var isHiddenInput = function isHiddenInput2(node) {
4847    return isInput(node) && node.type === "hidden";
4848  };
4849  var isDetailsWithSummary = function isDetailsWithSummary2(node) {
4850    var r = node.tagName === "DETAILS" && Array.prototype.slice.apply(node.children).some(function(child) {
4851      return child.tagName === "SUMMARY";
4852    });
4853    return r;
4854  };
4855  var getCheckedRadio = function getCheckedRadio2(nodes, form) {
4856    for (var i = 0; i < nodes.length; i++) {
4857      if (nodes[i].checked && nodes[i].form === form) {
4858        return nodes[i];
4859      }
4860    }
4861  };
4862  var isTabbableRadio = function isTabbableRadio2(node) {
4863    if (!node.name) {
4864      return true;
4865    }
4866    var radioScope = node.form || getRootNode(node);
4867    var queryRadios = function queryRadios2(name) {
4868      return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]');
4869    };
4870    var radioSet;
4871    if (typeof window !== "undefined" && typeof window.CSS !== "undefined" && typeof window.CSS.escape === "function") {
4872      radioSet = queryRadios(window.CSS.escape(node.name));
4873    } else {
4874      try {
4875        radioSet = queryRadios(node.name);
4876      } catch (err) {
4877        console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s", err.message);
4878        return false;
4879      }
4880    }
4881    var checked = getCheckedRadio(radioSet, node.form);
4882    return !checked || checked === node;
4883  };
4884  var isRadio = function isRadio2(node) {
4885    return isInput(node) && node.type === "radio";
4886  };
4887  var isNonTabbableRadio = function isNonTabbableRadio2(node) {
4888    return isRadio(node) && !isTabbableRadio(node);
4889  };
4890  var isZeroArea = function isZeroArea2(node) {
4891    var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height;
4892    return width === 0 && height === 0;
4893  };
4894  var isHidden = function isHidden2(node, _ref) {
4895    var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot;
4896    if (getComputedStyle(node).visibility === "hidden") {
4897      return true;
4898    }
4899    var isDirectSummary = matches.call(node, "details>summary:first-of-type");
4900    var nodeUnderDetails = isDirectSummary ? node.parentElement : node;
4901    if (matches.call(nodeUnderDetails, "details:not([open]) *")) {
4902      return true;
4903    }
4904    var nodeRootHost = getRootNode(node).host;
4905    var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node);
4906    if (!displayCheck || displayCheck === "full") {
4907      if (typeof getShadowRoot === "function") {
4908        var originalNode = node;
4909        while (node) {
4910          var parentElement = node.parentElement;
4911          var rootNode = getRootNode(node);
4912          if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) {
4913            return isZeroArea(node);
4914          } else if (node.assignedSlot) {
4915            node = node.assignedSlot;
4916          } else if (!parentElement && rootNode !== node.ownerDocument) {
4917            node = rootNode.host;
4918          } else {
4919            node = parentElement;
4920          }
4921        }
4922        node = originalNode;
4923      }
4924      if (nodeIsAttached) {
4925        return !node.getClientRects().length;
4926      }
4927    } else if (displayCheck === "non-zero-area") {
4928      return isZeroArea(node);
4929    }
4930    return false;
4931  };
4932  var isDisabledFromFieldset = function isDisabledFromFieldset2(node) {
4933    if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {
4934      var parentNode = node.parentElement;
4935      while (parentNode) {
4936        if (parentNode.tagName === "FIELDSET" && parentNode.disabled) {
4937          for (var i = 0; i < parentNode.children.length; i++) {
4938            var child = parentNode.children.item(i);
4939            if (child.tagName === "LEGEND") {
4940              return matches.call(parentNode, "fieldset[disabled] *") ? true : !child.contains(node);
4941            }
4942          }
4943          return true;
4944        }
4945        parentNode = parentNode.parentElement;
4946      }
4947    }
4948    return false;
4949  };
4950  var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) {
4951    if (node.disabled || isHiddenInput(node) || isHidden(node, options) || isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {
4952      return false;
4953    }
4954    return true;
4955  };
4956  var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) {
4957    if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {
4958      return false;
4959    }
4960    return true;
4961  };
4962  var isValidShadowRootTabbable = function isValidShadowRootTabbable2(shadowHostNode) {
4963    var tabIndex = parseInt(shadowHostNode.getAttribute("tabindex"), 10);
4964    if (isNaN(tabIndex) || tabIndex >= 0) {
4965      return true;
4966    }
4967    return false;
4968  };
4969  var sortByOrder = function sortByOrder2(candidates) {
4970    var regularTabbables = [];
4971    var orderedTabbables = [];
4972    candidates.forEach(function(item, i) {
4973      var isScope = !!item.scope;
4974      var element = isScope ? item.scope : item;
4975      var candidateTabindex = getTabindex(element, isScope);
4976      var elements = isScope ? sortByOrder2(item.candidates) : element;
4977      if (candidateTabindex === 0) {
4978        isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);
4979      } else {
4980        orderedTabbables.push({
4981          documentOrder: i,
4982          tabIndex: candidateTabindex,
4983          item,
4984          isScope,
4985          content: elements
4986        });
4987      }
4988    });
4989    return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) {
4990      sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);
4991      return acc;
4992    }, []).concat(regularTabbables);
4993  };
4994  var tabbable = function tabbable2(el, options) {
4995    options = options || {};
4996    var candidates;
4997    if (options.getShadowRoot) {
4998      candidates = getCandidatesIteratively([el], options.includeContainer, {
4999        filter: isNodeMatchingSelectorTabbable.bind(null, options),
5000        flatten: false,
5001        getShadowRoot: options.getShadowRoot,
5002        shadowRootFilter: isValidShadowRootTabbable
5003      });
5004    } else {
5005      candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
5006    }
5007    return sortByOrder(candidates);
5008  };
5009  var focusable = function focusable2(el, options) {
5010    options = options || {};
5011    var candidates;
5012    if (options.getShadowRoot) {
5013      candidates = getCandidatesIteratively([el], options.includeContainer, {
5014        filter: isNodeMatchingSelectorFocusable.bind(null, options),
5015        flatten: true,
5016        getShadowRoot: options.getShadowRoot
5017      });
5018    } else {
5019      candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));
5020    }
5021    return candidates;
5022  };
5023  var isTabbable = function isTabbable2(node, options) {
5024    options = options || {};
5025    if (!node) {
5026      throw new Error("No node provided");
5027    }
5028    if (matches.call(node, candidateSelector) === false) {
5029      return false;
5030    }
5031    return isNodeMatchingSelectorTabbable(options, node);
5032  };
5033  var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat("iframe").join(",");
5034  var isFocusable = function isFocusable2(node, options) {
5035    options = options || {};
5036    if (!node) {
5037      throw new Error("No node provided");
5038    }
5039    if (matches.call(node, focusableCandidateSelector) === false) {
5040      return false;
5041    }
5042    return isNodeMatchingSelectorFocusable(options, node);
5043  };
5044  function ownKeys2(object, enumerableOnly) {
5045    var keys = Object.keys(object);
5046    if (Object.getOwnPropertySymbols) {
5047      var symbols = Object.getOwnPropertySymbols(object);
5048      enumerableOnly && (symbols = symbols.filter(function(sym) {
5049        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
5050      })), keys.push.apply(keys, symbols);
5051    }
5052    return keys;
5053  }
5054  function _objectSpread2(target) {
5055    for (var i = 1; i < arguments.length; i++) {
5056      var source = null != arguments[i] ? arguments[i] : {};
5057      i % 2 ? ownKeys2(Object(source), true).forEach(function(key) {
5058        _defineProperty(target, key, source[key]);
5059      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys2(Object(source)).forEach(function(key) {
5060        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
5061      });
5062    }
5063    return target;
5064  }
5065  function _defineProperty(obj, key, value) {
5066    if (key in obj) {
5067      Object.defineProperty(obj, key, {
5068        value,
5069        enumerable: true,
5070        configurable: true,
5071        writable: true
5072      });
5073    } else {
5074      obj[key] = value;
5075    }
5076    return obj;
5077  }
5078  var activeFocusTraps = function() {
5079    var trapQueue = [];
5080    return {
5081      activateTrap: function activateTrap(trap) {
5082        if (trapQueue.length > 0) {
5083          var activeTrap = trapQueue[trapQueue.length - 1];
5084          if (activeTrap !== trap) {
5085            activeTrap.pause();
5086          }
5087        }
5088        var trapIndex = trapQueue.indexOf(trap);
5089        if (trapIndex === -1) {
5090          trapQueue.push(trap);
5091        } else {
5092          trapQueue.splice(trapIndex, 1);
5093          trapQueue.push(trap);
5094        }
5095      },
5096      deactivateTrap: function deactivateTrap(trap) {
5097        var trapIndex = trapQueue.indexOf(trap);
5098        if (trapIndex !== -1) {
5099          trapQueue.splice(trapIndex, 1);
5100        }
5101        if (trapQueue.length > 0) {
5102          trapQueue[trapQueue.length - 1].unpause();
5103        }
5104      }
5105    };
5106  }();
5107  var isSelectableInput = function isSelectableInput2(node) {
5108    return node.tagName && node.tagName.toLowerCase() === "input" && typeof node.select === "function";
5109  };
5110  var isEscapeEvent = function isEscapeEvent2(e) {
5111    return e.key === "Escape" || e.key === "Esc" || e.keyCode === 27;
5112  };
5113  var isTabEvent = function isTabEvent2(e) {
5114    return e.key === "Tab" || e.keyCode === 9;
5115  };
5116  var delay = function delay2(fn) {
5117    return setTimeout(fn, 0);
5118  };
5119  var findIndex = function findIndex2(arr, fn) {
5120    var idx = -1;
5121    arr.every(function(value, i) {
5122      if (fn(value)) {
5123        idx = i;
5124        return false;
5125      }
5126      return true;
5127    });
5128    return idx;
5129  };
5130  var valueOrHandler = function valueOrHandler2(value) {
5131    for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
5132      params[_key - 1] = arguments[_key];
5133    }
5134    return typeof value === "function" ? value.apply(void 0, params) : value;
5135  };
5136  var getActualTarget = function getActualTarget2(event) {
5137    return event.target.shadowRoot && typeof event.composedPath === "function" ? event.composedPath()[0] : event.target;
5138  };
5139  var createFocusTrap = function createFocusTrap2(elements, userOptions) {
5140    var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;
5141    var config = _objectSpread2({
5142      returnFocusOnDeactivate: true,
5143      escapeDeactivates: true,
5144      delayInitialFocus: true
5145    }, userOptions);
5146    var state = {
5147      containers: [],
5148      containerGroups: [],
5149      tabbableGroups: [],
5150      nodeFocusedBeforeActivation: null,
5151      mostRecentlyFocusedNode: null,
5152      active: false,
5153      paused: false,
5154      delayInitialFocusTimer: void 0
5155    };
5156    var trap;
5157    var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) {
5158      return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName];
5159    };
5160    var findContainerIndex = function findContainerIndex2(element) {
5161      return state.containerGroups.findIndex(function(_ref) {
5162        var container = _ref.container, tabbableNodes = _ref.tabbableNodes;
5163        return container.contains(element) || tabbableNodes.find(function(node) {
5164          return node === element;
5165        });
5166      });
5167    };
5168    var getNodeForOption = function getNodeForOption2(optionName) {
5169      var optionValue = config[optionName];
5170      if (typeof optionValue === "function") {
5171        for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
5172          params[_key2 - 1] = arguments[_key2];
5173        }
5174        optionValue = optionValue.apply(void 0, params);
5175      }
5176      if (optionValue === true) {
5177        optionValue = void 0;
5178      }
5179      if (!optionValue) {
5180        if (optionValue === void 0 || optionValue === false) {
5181          return optionValue;
5182        }
5183        throw new Error("`".concat(optionName, "` was specified but was not a node, or did not return a node"));
5184      }
5185      var node = optionValue;
5186      if (typeof optionValue === "string") {
5187        node = doc.querySelector(optionValue);
5188        if (!node) {
5189          throw new Error("`".concat(optionName, "` as selector refers to no known node"));
5190        }
5191      }
5192      return node;
5193    };
5194    var getInitialFocusNode = function getInitialFocusNode2() {
5195      var node = getNodeForOption("initialFocus");
5196      if (node === false) {
5197        return false;
5198      }
5199      if (node === void 0) {
5200        if (findContainerIndex(doc.activeElement) >= 0) {
5201          node = doc.activeElement;
5202        } else {
5203          var firstTabbableGroup = state.tabbableGroups[0];
5204          var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;
5205          node = firstTabbableNode || getNodeForOption("fallbackFocus");
5206        }
5207      }
5208      if (!node) {
5209        throw new Error("Your focus-trap needs to have at least one focusable element");
5210      }
5211      return node;
5212    };
5213    var updateTabbableNodes = function updateTabbableNodes2() {
5214      state.containerGroups = state.containers.map(function(container) {
5215        var tabbableNodes = tabbable(container, config.tabbableOptions);
5216        var focusableNodes = focusable(container, config.tabbableOptions);
5217        return {
5218          container,
5219          tabbableNodes,
5220          focusableNodes,
5221          firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,
5222          lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,
5223          nextTabbableNode: function nextTabbableNode(node) {
5224            var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
5225            var nodeIdx = focusableNodes.findIndex(function(n) {
5226              return n === node;
5227            });
5228            if (nodeIdx < 0) {
5229              return void 0;
5230            }
5231            if (forward) {
5232              return focusableNodes.slice(nodeIdx + 1).find(function(n) {
5233                return isTabbable(n, config.tabbableOptions);
5234              });
5235            }
5236            return focusableNodes.slice(0, nodeIdx).reverse().find(function(n) {
5237              return isTabbable(n, config.tabbableOptions);
5238            });
5239          }
5240        };
5241      });
5242      state.tabbableGroups = state.containerGroups.filter(function(group) {
5243        return group.tabbableNodes.length > 0;
5244      });
5245      if (state.tabbableGroups.length <= 0 && !getNodeForOption("fallbackFocus")) {
5246        throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");
5247      }
5248    };
5249    var tryFocus = function tryFocus2(node) {
5250      if (node === false) {
5251        return;
5252      }
5253      if (node === doc.activeElement) {
5254        return;
5255      }
5256      if (!node || !node.focus) {
5257        tryFocus2(getInitialFocusNode());
5258        return;
5259      }
5260      node.focus({
5261        preventScroll: !!config.preventScroll
5262      });
5263      state.mostRecentlyFocusedNode = node;
5264      if (isSelectableInput(node)) {
5265        node.select();
5266      }
5267    };
5268    var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) {
5269      var node = getNodeForOption("setReturnFocus", previousActiveElement);
5270      return node ? node : node === false ? false : previousActiveElement;
5271    };
5272    var checkPointerDown = function checkPointerDown2(e) {
5273      var target = getActualTarget(e);
5274      if (findContainerIndex(target) >= 0) {
5275        return;
5276      }
5277      if (valueOrHandler(config.clickOutsideDeactivates, e)) {
5278        trap.deactivate({
5279          returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions)
5280        });
5281        return;
5282      }
5283      if (valueOrHandler(config.allowOutsideClick, e)) {
5284        return;
5285      }
5286      e.preventDefault();
5287    };
5288    var checkFocusIn = function checkFocusIn2(e) {
5289      var target = getActualTarget(e);
5290      var targetContained = findContainerIndex(target) >= 0;
5291      if (targetContained || target instanceof Document) {
5292        if (targetContained) {
5293          state.mostRecentlyFocusedNode = target;
5294        }
5295      } else {
5296        e.stopImmediatePropagation();
5297        tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());
5298      }
5299    };
5300    var checkTab = function checkTab2(e) {
5301      var target = getActualTarget(e);
5302      updateTabbableNodes();
5303      var destinationNode = null;
5304      if (state.tabbableGroups.length > 0) {
5305        var containerIndex = findContainerIndex(target);
5306        var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0;
5307        if (containerIndex < 0) {
5308          if (e.shiftKey) {
5309            destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;
5310          } else {
5311            destinationNode = state.tabbableGroups[0].firstTabbableNode;
5312          }
5313        } else if (e.shiftKey) {
5314          var startOfGroupIndex = findIndex(state.tabbableGroups, function(_ref2) {
5315            var firstTabbableNode = _ref2.firstTabbableNode;
5316            return target === firstTabbableNode;
5317          });
5318          if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {
5319            startOfGroupIndex = containerIndex;
5320          }
5321          if (startOfGroupIndex >= 0) {
5322            var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;
5323            var destinationGroup = state.tabbableGroups[destinationGroupIndex];
5324            destinationNode = destinationGroup.lastTabbableNode;
5325          }
5326        } else {
5327          var lastOfGroupIndex = findIndex(state.tabbableGroups, function(_ref3) {
5328            var lastTabbableNode = _ref3.lastTabbableNode;
5329            return target === lastTabbableNode;
5330          });
5331          if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {
5332            lastOfGroupIndex = containerIndex;
5333          }
5334          if (lastOfGroupIndex >= 0) {
5335            var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;
5336            var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];
5337            destinationNode = _destinationGroup.firstTabbableNode;
5338          }
5339        }
5340      } else {
5341        destinationNode = getNodeForOption("fallbackFocus");
5342      }
5343      if (destinationNode) {
5344        e.preventDefault();
5345        tryFocus(destinationNode);
5346      }
5347    };
5348    var checkKey = function checkKey2(e) {
5349      if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) {
5350        e.preventDefault();
5351        trap.deactivate();
5352        return;
5353      }
5354      if (isTabEvent(e)) {
5355        checkTab(e);
5356        return;
5357      }
5358    };
5359    var checkClick = function checkClick2(e) {
5360      var target = getActualTarget(e);
5361      if (findContainerIndex(target) >= 0) {
5362        return;
5363      }
5364      if (valueOrHandler(config.clickOutsideDeactivates, e)) {
5365        return;
5366      }
5367      if (valueOrHandler(config.allowOutsideClick, e)) {
5368        return;
5369      }
5370      e.preventDefault();
5371      e.stopImmediatePropagation();
5372    };
5373    var addListeners = function addListeners2() {
5374      if (!state.active) {
5375        return;
5376      }
5377      activeFocusTraps.activateTrap(trap);
5378      state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function() {
5379        tryFocus(getInitialFocusNode());
5380      }) : tryFocus(getInitialFocusNode());
5381      doc.addEventListener("focusin", checkFocusIn, true);
5382      doc.addEventListener("mousedown", checkPointerDown, {
5383        capture: true,
5384        passive: false
5385      });
5386      doc.addEventListener("touchstart", checkPointerDown, {
5387        capture: true,
5388        passive: false
5389      });
5390      doc.addEventListener("click", checkClick, {
5391        capture: true,
5392        passive: false
5393      });
5394      doc.addEventListener("keydown", checkKey, {
5395        capture: true,
5396        passive: false
5397      });
5398      return trap;
5399    };
5400    var removeListeners = function removeListeners2() {
5401      if (!state.active) {
5402        return;
5403      }
5404      doc.removeEventListener("focusin", checkFocusIn, true);
5405      doc.removeEventListener("mousedown", checkPointerDown, true);
5406      doc.removeEventListener("touchstart", checkPointerDown, true);
5407      doc.removeEventListener("click", checkClick, true);
5408      doc.removeEventListener("keydown", checkKey, true);
5409      return trap;
5410    };
5411    trap = {
5412      get active() {
5413        return state.active;
5414      },
5415      get paused() {
5416        return state.paused;
5417      },
5418      activate: function activate(activateOptions) {
5419        if (state.active) {
5420          return this;
5421        }
5422        var onActivate = getOption(activateOptions, "onActivate");
5423        var onPostActivate = getOption(activateOptions, "onPostActivate");
5424        var checkCanFocusTrap = getOption(activateOptions, "checkCanFocusTrap");
5425        if (!checkCanFocusTrap) {
5426          updateTabbableNodes();
5427        }
5428        state.active = true;
5429        state.paused = false;
5430        state.nodeFocusedBeforeActivation = doc.activeElement;
5431        if (onActivate) {
5432          onActivate();
5433        }
5434        var finishActivation = function finishActivation2() {
5435          if (checkCanFocusTrap) {
5436            updateTabbableNodes();
5437          }
5438          addListeners();
5439          if (onPostActivate) {
5440            onPostActivate();
5441          }
5442        };
5443        if (checkCanFocusTrap) {
5444          checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);
5445          return this;
5446        }
5447        finishActivation();
5448        return this;
5449      },
5450      deactivate: function deactivate(deactivateOptions) {
5451        if (!state.active) {
5452          return this;
5453        }
5454        var options = _objectSpread2({
5455          onDeactivate: config.onDeactivate,
5456          onPostDeactivate: config.onPostDeactivate,
5457          checkCanReturnFocus: config.checkCanReturnFocus
5458        }, deactivateOptions);
5459        clearTimeout(state.delayInitialFocusTimer);
5460        state.delayInitialFocusTimer = void 0;
5461        removeListeners();
5462        state.active = false;
5463        state.paused = false;
5464        activeFocusTraps.deactivateTrap(trap);
5465        var onDeactivate = getOption(options, "onDeactivate");
5466        var onPostDeactivate = getOption(options, "onPostDeactivate");
5467        var checkCanReturnFocus = getOption(options, "checkCanReturnFocus");
5468        var returnFocus = getOption(options, "returnFocus", "returnFocusOnDeactivate");
5469        if (onDeactivate) {
5470          onDeactivate();
5471        }
5472        var finishDeactivation = function finishDeactivation2() {
5473          delay(function() {
5474            if (returnFocus) {
5475              tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));
5476            }
5477            if (onPostDeactivate) {
5478              onPostDeactivate();
5479            }
5480          });
5481        };
5482        if (returnFocus && checkCanReturnFocus) {
5483          checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);
5484          return this;
5485        }
5486        finishDeactivation();
5487        return this;
5488      },
5489      pause: function pause() {
5490        if (state.paused || !state.active) {
5491          return this;
5492        }
5493        state.paused = true;
5494        removeListeners();
5495        return this;
5496      },
5497      unpause: function unpause() {
5498        if (!state.paused || !state.active) {
5499          return this;
5500        }
5501        state.paused = false;
5502        updateTabbableNodes();
5503        addListeners();
5504        return this;
5505      },
5506      updateContainerElements: function updateContainerElements(containerElements) {
5507        var elementsAsArray = [].concat(containerElements).filter(
vendor: 5,515 bytes, lines 5507-5699
5507Boolean);
5508        state.containers = elementsAsArray.map(function(element) {
5509          return typeof element === "string" ? doc.querySelector(element) : element;
5510        });
5511        if (state.active) {
5512          updateTabbableNodes();
5513        }
5514        return this;
5515      }
5516    };
5517    trap.updateContainerElements(elements);
5518    return trap;
5519  };
5520  function src_default3(Alpine3) {
5521    let lastFocused;
5522    let currentFocused;
5523    window.addEventListener("focusin", () => {
5524      lastFocused = currentFocused;
5525      currentFocused = document.activeElement;
5526    });
5527    Alpine3.magic("focus", (el) => {
5528      let within = el;
5529      return {
5530        __noscroll: false,
5531        __wrapAround: false,
5532        within(el2) {
5533          within = el2;
5534          return this;
5535        },
5536        withoutScrolling() {
5537          this.__noscroll = true;
5538          return this;
5539        },
5540        noscroll() {
5541          this.__noscroll = true;
5542          return this;
5543        },
5544        withWrapAround() {
5545          this.__wrapAround = true;
5546          return this;
5547        },
5548        wrap() {
5549          return this.withWrapAround();
5550        },
5551        focusable(el2) {
5552          return isFocusable(el2);
5553        },
5554        previouslyFocused() {
5555          return lastFocused;
5556        },
5557        lastFocused() {
5558          return lastFocused;
5559        },
5560        focused() {
5561          return currentFocused;
5562        },
5563        focusables() {
5564          if (Array.isArray(within))
5565            return within;
5566          return focusable(within, { displayCheck: "none" });
5567        },
5568        all() {
5569          return this.focusables();
5570        },
5571        isFirst(el2) {
5572          let els2 = this.all();
5573          return els2[0] && els2[0].isSameNode(el2);
5574        },
5575        isLast(el2) {
5576          let els2 = this.all();
5577          return els2.length && els2.slice(-1)[0].isSameNode(el2);
5578        },
5579        getFirst() {
5580          return this.all()[0];
5581        },
5582        getLast() {
5583          return this.all().slice(-1)[0];
5584        },
5585        getNext() {
5586          let list = this.all();
5587          let current = document.activeElement;
5588          if (list.indexOf(current) === -1)
5589            return;
5590          if (this.__wrapAround && list.indexOf(current) === list.length - 1) {
5591            return list[0];
5592          }
5593          return list[list.indexOf(current) + 1];
5594        },
5595        getPrevious() {
5596          let list = this.all();
5597          let current = document.activeElement;
5598          if (list.indexOf(current) === -1)
5599            return;
5600          if (this.__wrapAround && list.indexOf(current) === 0) {
5601            return list.slice(-1)[0];
5602          }
5603          return list[list.indexOf(current) - 1];
5604        },
5605        first() {
5606          this.focus(this.getFirst());
5607        },
5608        last() {
5609          this.focus(this.getLast());
5610        },
5611        next() {
5612          this.focus(this.getNext());
5613        },
5614        previous() {
5615          this.focus(this.getPrevious());
5616        },
5617        prev() {
5618          return this.previous();
5619        },
5620        focus(el2) {
5621          if (!el2)
5622            return;
5623          setTimeout(() => {
5624            if (!el2.hasAttribute("tabindex"))
5625              el2.setAttribute("tabindex", "0");
5626            el2.focus({ preventScroll: this.__noscroll });
5627          });
5628        }
5629      };
5630    });
5631    Alpine3.directive("trap", Alpine3.skipDuringClone((el, { expression, modifiers }, { effect: effect3, evaluateLater: evaluateLater2, cleanup: cleanup3 }) => {
5632      let evaluator = evaluateLater2(expression);
5633      let oldValue = false;
5634      let options = {
5635        escapeDeactivates: false,
5636        allowOutsideClick: true,
5637        fallbackFocus: () => el
5638      };
5639      if (modifiers.includes("noautofocus")) {
5640        options.initialFocus = false;
5641      } else {
5642        let autofocusEl = el.querySelector("[autofocus]");
5643        if (autofocusEl)
5644          options.initialFocus = autofocusEl;
5645      }
5646      let trap = createFocusTrap(el, options);
5647      let undoInert = () => {
5648      };
5649      let undoDisableScrolling = () => {
5650      };
5651      const releaseFocus = () => {
5652        undoInert();
5653        undoInert = () => {
5654        };
5655        undoDisableScrolling();
5656        undoDisableScrolling = () => {
5657        };
5658        trap.deactivate({
5659          returnFocus: !modifiers.includes("noreturn")
5660        });
5661      };
5662      effect3(() => evaluator((value) => {
5663        if (oldValue === value)
5664          return;
5665        if (value && !oldValue) {
5666          if (modifiers.includes("noscroll"))
5667            undoDisableScrolling = disableScrolling();
5668          if (modifiers.includes("inert"))
5669            undoInert = setInert(el);
5670          setTimeout(() => {
5671            trap.activate();
5672          }, 15);
5673        }
5674        if (!value && oldValue) {
5675          releaseFocus();
5676        }
5677        oldValue = !!value;
5678      }));
5679      cleanup3(releaseFocus);
5680    }, (el, { expression, modifiers }, { evaluate: evaluate3 }) => {
5681      if (modifiers.includes("inert") && evaluate3(expression))
5682        setInert(el);
5683    }));
5684  }
5685  function setInert(el) {
5686    let undos = [];
5687    crawlSiblingsUp(el, (sibling) => {
5688      let cache = sibling.hasAttribute("aria-hidden");
5689      sibling.setAttribute("aria-hidden", "true");
5690      undos.push(() => cache || sibling.removeAttribute("aria-hidden"));
5691    });
5692    return () => {
5693      while (undos.length)
5694        undos.pop()();
5695    };
5696  }
5697  function crawlSiblingsUp(el, callback) {
5698    if (el.isSameNode(document.body) || !el.parentNode)
5699      return;
5700    Array.from(el.parentNode.children).forEach((sibling) => {
5701      if (sibling.isSameNode(el)) {
5702        crawlSiblingsUp(el.parentNode, callback);
5703      } else {
5704        callback(sibling);
5705      }
5706    });
5707  }
5708  function disableScrolling() {
5709    let overflow = document.documentElement.style.overflow;
5710    let paddingRight = document.documentElement.style.paddingRight;
5711    let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
5712    document.documentElement.style.overflow = "hidden";
5713    document.documentElement.style.paddingRight = `${scrollbarWidth}px`;
5714    return () => {
5715      document.documentElement.style.overflow = overflow;
5716      document.documentElement.style.paddingRight = paddingRight;
5717    };
5718  }
5719  var module_default3 = src_default3;
5720
5721  
5721// ../alpine/packages/persist/dist/module.esm.js
5722  function src_default4(Alpine3) {
5723    let persist = () => {
5724      let alias;
5725      let storage;
5726      try {
5727        storage = localStorage;
5728      } catch (e) {
5729        console.error(e);
5730        console.warn("Alpine: $persist is using temporary storage since localStorage is unavailable.");
5731        let dummy = /* @__PURE__ */ new Map();
5732        storage = {
5733          getItem: dummy.get.bind(dummy),
5734          setItem: dummy.set.bind(dummy)
5735        };
5736      }
5737      return Alpine3.interceptor((initialValue, getter, setter, path, key) => {
5738        let lookup = alias || `_x_${path}`;
5739        let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue;
5740        setter(initial);
5741        Alpine3.effect(() => {
5742          let value = getter();
5743          storageSet(lookup, value, storage);
5744          setter(value);
5745        });
5746        return initial;
5747      }, (func) => {
5748        func.as = (key) => {
5749          alias = key;
5750          return func;
5751        }, func.using = (target) => {
5752          storage = target;
5753          return func;
5754        };
5755      });
5756    };
5757    Object.defineProperty(Alpine3, "$persist", { get: () => persist() });
5758    Alpine3.magic("persist", persist);
5759    Alpine3.persist = (key, { get: get3, set: set3 }, storage = localStorage) => {
5760      let initial = storageHas(key, storage) ? storageGet(key, storage) : get3();
5761      set3(initial);
5762      Alpine3.effect(() => {
5763        let value = get3();
5764        storageSet(key, value, storage);
5765        set3(value);
5766      });
5767    };
5768  }
5769  function storageHas(key, storage) {
5770    return storage.getItem(key) !== null;
5771  }
5772  function storageGet(key, storage) {
5773    return JSON.parse(storage.getItem(key, storage));
5774  }
5775  function storageSet(key, value, storage) {
5776    storage.setItem(key, JSON.stringify(value));
5777  }
5778  var module_default4 = src_default4;
5779
5780  
5780// ../alpine/packages/intersect/dist/module.esm.js
5781  function src_default5(Alpine3) {
5782    Alpine3.directive("intersect", Alpine3.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater: evaluateLater2, cleanup: cleanup3 }) => {
5783      let evaluate3 = evaluateLater2(expression);
5784      let options = {
5785        rootMargin: getRootMargin(modifiers),
5786        threshold: getThreshold(modifiers)
5787      };
5788      let observer2 = new IntersectionObserver((entries) => {
5789        entries.forEach((entry) => {
5790          if (entry.isIntersecting === (value === "leave"))
5791            return;
5792          evaluate3();
5793          modifiers.includes("once") && observer2.disconnect();
5794        });
5795      }, options);
5796      observer2.observe(el);
5797      cleanup3(() => {
5798        observer2.disconnect();
5799      });
5800    }));
5801  }
5802  function getThreshold(modifiers) {
5803    if (modifiers.includes("full"))
5804      return 0.99;
5805    if (modifiers.includes("half"))
5806      return 0.5;
5807    if (!modifiers.includes("threshold"))
5808      return 0;
5809    let threshold = modifiers[modifiers.indexOf("threshold") + 1];
5810    if (threshold === "100")
5811      return 1;
5812    if (threshold === "0")
5813      return 0;
5814    return Number(`.${threshold}`);
5815  }
5816  function getLengthValue(rawValue) {
5817    let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);
5818    return match ? match[1] + (match[2] || "px") : void 0;
5819  }
5820  function getRootMargin(modifiers) {
5821    const key = "margin";
5822    const fallback2 = "0px 0px 0px 0px";
5823    const index = modifiers.indexOf(key);
5824    if (index === -1)
5825      return fallback2;
5826    let values = [];
5827    for (let i = 1; i < 5; i++) {
5828      values.push(getLengthValue(modifiers[index + i] || ""));
5829    }
5830    values = values.filter((v) => v !== void 0);
5831    return values.length ? values.join(" ").trim() : fallback2;
5832  }
5833  var module_default5 = src_default5;
5834
5835  
vendor: 22,871 bytes, lines 5835-6530
5835// ../alpine/packages/anchor/dist/module.esm.js
5836  var min = Math.min;
5837  var max = Math.max;
5838  var round = Math.round;
5839  var floor = Math.floor;
5840  var createCoords = (v) => ({
5841    x: v,
5842    y: v
5843  });
5844  var oppositeSideMap = {
5845    left: "right",
5846    right: "left",
5847    bottom: "top",
5848    top: "bottom"
5849  };
5850  var oppositeAlignmentMap = {
5851    start: "end",
5852    end: "start"
5853  };
5854  function clamp(start3, value, end) {
5855    return max(start3, min(value, end));
5856  }
5857  function evaluate2(value, param) {
5858    return typeof value === "function" ? value(param) : value;
5859  }
5860  function getSide(placement) {
5861    return placement.split("-")[0];
5862  }
5863  function getAlignment(placement) {
5864    return placement.split("-")[1];
5865  }
5866  function getOppositeAxis(axis) {
5867    return axis === "x" ? "y" : "x";
5868  }
5869  function getAxisLength(axis) {
5870    return axis === "y" ? "height" : "width";
5871  }
5872  function getSideAxis(placement) {
5873    return ["top", "bottom"].includes(getSide(placement)) ? "y" : "x";
5874  }
5875  function getAlignmentAxis(placement) {
5876    return getOppositeAxis(getSideAxis(placement));
5877  }
5878  function getAlignmentSides(placement, rects, rtl) {
5879    if (rtl === void 0) {
5880      rtl = false;
5881    }
5882    const alignment = getAlignment(placement);
5883    const alignmentAxis = getAlignmentAxis(placement);
5884    const length = getAxisLength(alignmentAxis);
5885    let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top";
5886    if (rects.reference[length] > rects.floating[length]) {
5887      mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
5888    }
5889    return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
5890  }
5891  function getExpandedPlacements(placement) {
5892    const oppositePlacement = getOppositePlacement(placement);
5893    return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
5894  }
5895  function getOppositeAlignmentPlacement(placement) {
5896    return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);
5897  }
5898  function getSideList(side, isStart, rtl) {
5899    const lr = ["left", "right"];
5900    const rl = ["right", "left"];
5901    const tb = ["top", "bottom"];
5902    const bt = ["bottom", "top"];
5903    switch (side) {
5904      case "top":
5905      case "bottom":
5906        if (rtl)
5907          return isStart ? rl : lr;
5908        return isStart ? lr : rl;
5909      case "left":
5910      case "right":
5911        return isStart ? tb : bt;
5912      default:
5913        return [];
5914    }
5915  }
5916  function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
5917    const alignment = getAlignment(placement);
5918    let list = getSideList(getSide(placement), direction === "start", rtl);
5919    if (alignment) {
5920      list = list.map((side) => side + "-" + alignment);
5921      if (flipAlignment) {
5922        list = list.concat(list.map(getOppositeAlignmentPlacement));
5923      }
5924    }
5925    return list;
5926  }
5927  function getOppositePlacement(placement) {
5928    return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);
5929  }
5930  function expandPaddingObject(padding) {
5931    return {
5932      top: 0,
5933      right: 0,
5934      bottom: 0,
5935      left: 0,
5936      ...padding
5937    };
5938  }
5939  function getPaddingObject(padding) {
5940    return typeof padding !== "number" ? expandPaddingObject(padding) : {
5941      top: padding,
5942      right: padding,
5943      bottom: padding,
5944      left: padding
5945    };
5946  }
5947  function rectToClientRect(rect) {
5948    return {
5949      ...rect,
5950      top: rect.y,
5951      left: rect.x,
5952      right: rect.x + rect.width,
5953      bottom: rect.y + rect.height
5954    };
5955  }
5956  function computeCoordsFromPlacement(_ref, placement, rtl) {
5957    let {
5958      reference,
5959      floating
5960    } = _ref;
5961    const sideAxis = getSideAxis(placement);
5962    const alignmentAxis = getAlignmentAxis(placement);
5963    const alignLength = getAxisLength(alignmentAxis);
5964    const side = getSide(placement);
5965    const isVertical = sideAxis === "y";
5966    const commonX = reference.x + reference.width / 2 - floating.width / 2;
5967    const commonY = reference.y + reference.height / 2 - floating.height / 2;
5968    const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
5969    let coords;
5970    switch (side) {
5971      case "top":
5972        coords = {
5973          x: commonX,
5974          y: reference.y - floating.height
5975        };
5976        break;
5977      case "bottom":
5978        coords = {
5979          x: commonX,
5980          y: reference.y + reference.height
5981        };
5982        break;
5983      case "right":
5984        coords = {
5985          x: reference.x + reference.width,
5986          y: commonY
5987        };
5988        break;
5989      case "left":
5990        coords = {
5991          x: reference.x - floating.width,
5992          y: commonY
5993        };
5994        break;
5995      default:
5996        coords = {
5997          x: reference.x,
5998          y: reference.y
5999        };
6000    }
6001    switch (getAlignment(placement)) {
6002      case "start":
6003        coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
6004        break;
6005      case "end":
6006        coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
6007        break;
6008    }
6009    return coords;
6010  }
6011  var computePosition = async (reference, floating, config) => {
6012    const {
6013      placement = "bottom",
6014      strategy = "absolute",
6015      middleware = [],
6016      platform: platform2
6017    } = config;
6018    const validMiddleware = middleware.filter(Boolean);
6019    const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating));
6020    let rects = await platform2.getElementRects({
6021      reference,
6022      floating,
6023      strategy
6024    });
6025    let {
6026      x,
6027      y
6028    } = computeCoordsFromPlacement(rects, placement, rtl);
6029    let statefulPlacement = placement;
6030    let middlewareData = {};
6031    let resetCount = 0;
6032    for (let i = 0; i < validMiddleware.length; i++) {
6033      const {
6034        name,
6035        fn
6036      } = validMiddleware[i];
6037      const {
6038        x: nextX,
6039        y: nextY,
6040        data: data2,
6041        reset
6042      } = await fn({
6043        x,
6044        y,
6045        initialPlacement: placement,
6046        placement: statefulPlacement,
6047        strategy,
6048        middlewareData,
6049        rects,
6050        platform: platform2,
6051        elements: {
6052          reference,
6053          floating
6054        }
6055      });
6056      x = nextX != null ? nextX : x;
6057      y = nextY != null ? nextY : y;
6058      middlewareData = {
6059        ...middlewareData,
6060        [name]: {
6061          ...middlewareData[name],
6062          ...data2
6063        }
6064      };
6065      if (reset && resetCount <= 50) {
6066        resetCount++;
6067        if (typeof reset === "object") {
6068          if (reset.placement) {
6069            statefulPlacement = reset.placement;
6070          }
6071          if (reset.rects) {
6072            rects = reset.rects === true ? await platform2.getElementRects({
6073              reference,
6074              floating,
6075              strategy
6076            }) : reset.rects;
6077          }
6078          ({
6079            x,
6080            y
6081          } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
6082        }
6083        i = -1;
6084        continue;
6085      }
6086    }
6087    return {
6088      x,
6089      y,
6090      placement: statefulPlacement,
6091      strategy,
6092      middlewareData
6093    };
6094  };
6095  async function detectOverflow(state, options) {
6096    var _await$platform$isEle;
6097    if (options === void 0) {
6098      options = {};
6099    }
6100    const {
6101      x,
6102      y,
6103      platform: platform2,
6104      rects,
6105      elements,
6106      strategy
6107    } = state;
6108    const {
6109      boundary = "clippingAncestors",
6110      rootBoundary = "viewport",
6111      elementContext = "floating",
6112      altBoundary = false,
6113      padding = 0
6114    } = evaluate2(options, state);
6115    const paddingObject = getPaddingObject(padding);
6116    const altContext = elementContext === "floating" ? "reference" : "floating";
6117    const element = elements[altBoundary ? altContext : elementContext];
6118    const clippingClientRect = rectToClientRect(await platform2.getClippingRect({
6119      element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)),
6120      boundary,
6121      rootBoundary,
6122      strategy
6123    }));
6124    const rect = elementContext === "floating" ? {
6125      ...rects.floating,
6126      x,
6127      y
6128    } : rects.reference;
6129    const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating));
6130    const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {
6131      x: 1,
6132      y: 1
6133    } : {
6134      x: 1,
6135      y: 1
6136    };
6137    const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({
6138      rect,
6139      offsetParent,
6140      strategy
6141    }) : rect);
6142    return {
6143      top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
6144      bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
6145      left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
6146      right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
6147    };
6148  }
6149  var flip = function(options) {
6150    if (options === void 0) {
6151      options = {};
6152    }
6153    return {
6154      name: "flip",
6155      options,
6156      async fn(state) {
6157        var _middlewareData$arrow, _middlewareData$flip;
6158        const {
6159          placement,
6160          middlewareData,
6161          rects,
6162          initialPlacement,
6163          platform: platform2,
6164          elements
6165        } = state;
6166        const {
6167          mainAxis: checkMainAxis = true,
6168          crossAxis: checkCrossAxis = true,
6169          fallbackPlacements: specifiedFallbackPlacements,
6170          fallbackStrategy = "bestFit",
6171          fallbackAxisSideDirection = "none",
6172          flipAlignment = true,
6173          ...detectOverflowOptions
6174        } = evaluate2(options, state);
6175        if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
6176          return {};
6177        }
6178        const side = getSide(placement);
6179        const isBasePlacement = getSide(initialPlacement) === initialPlacement;
6180        const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));
6181        const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
6182        if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== "none") {
6183          fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
6184        }
6185        const placements2 = [initialPlacement, ...fallbackPlacements];
6186        const overflow = await detectOverflow(state, detectOverflowOptions);
6187        const overflows = [];
6188        let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
6189        if (checkMainAxis) {
6190          overflows.push(overflow[side]);
6191        }
6192        if (checkCrossAxis) {
6193          const sides2 = getAlignmentSides(placement, rects, rtl);
6194          overflows.push(overflow[sides2[0]], overflow[sides2[1]]);
6195        }
6196        overflowsData = [...overflowsData, {
6197          placement,
6198          overflows
6199        }];
6200        if (!overflows.every((side2) => side2 <= 0)) {
6201          var _middlewareData$flip2, _overflowsData$filter;
6202          const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
6203          const nextPlacement = placements2[nextIndex];
6204          if (nextPlacement) {
6205            return {
6206              data: {
6207                index: nextIndex,
6208                overflows: overflowsData
6209              },
6210              reset: {
6211                placement: nextPlacement
6212              }
6213            };
6214          }
6215          let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
6216          if (!resetPlacement) {
6217            switch (fallbackStrategy) {
6218              case "bestFit": {
6219                var _overflowsData$map$so;
6220                const placement2 = (_overflowsData$map$so = overflowsData.map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];
6221                if (placement2) {
6222                  resetPlacement = placement2;
6223                }
6224                break;
6225              }
6226              case "initialPlacement":
6227                resetPlacement = initialPlacement;
6228                break;
6229            }
6230          }
6231          if (placement !== resetPlacement) {
6232            return {
6233              reset: {
6234                placement: resetPlacement
6235              }
6236            };
6237          }
6238        }
6239        return {};
6240      }
6241    };
6242  };
6243  async function convertValueToCoords(state, options) {
6244    const {
6245      placement,
6246      platform: platform2,
6247      elements
6248    } = state;
6249    const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));
6250    const side = getSide(placement);
6251    const alignment = getAlignment(placement);
6252    const isVertical = getSideAxis(placement) === "y";
6253    const mainAxisMulti = ["left", "top"].includes(side) ? -1 : 1;
6254    const crossAxisMulti = rtl && isVertical ? -1 : 1;
6255    const rawValue = evaluate2(options, state);
6256    let {
6257      mainAxis,
6258      crossAxis,
6259      alignmentAxis
6260    } = typeof rawValue === "number" ? {
6261      mainAxis: rawValue,
6262      crossAxis: 0,
6263      alignmentAxis: null
6264    } : {
6265      mainAxis: 0,
6266      crossAxis: 0,
6267      alignmentAxis: null,
6268      ...rawValue
6269    };
6270    if (alignment && typeof alignmentAxis === "number") {
6271      crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
6272    }
6273    return isVertical ? {
6274      x: crossAxis * crossAxisMulti,
6275      y: mainAxis * mainAxisMulti
6276    } : {
6277      x: mainAxis * mainAxisMulti,
6278      y: crossAxis * crossAxisMulti
6279    };
6280  }
6281  var offset = function(options) {
6282    if (options === void 0) {
6283      options = 0;
6284    }
6285    return {
6286      name: "offset",
6287      options,
6288      async fn(state) {
6289        const {
6290          x,
6291          y
6292        } = state;
6293        const diffCoords = await convertValueToCoords(state, options);
6294        return {
6295          x: x + diffCoords.x,
6296          y: y + diffCoords.y,
6297          data: diffCoords
6298        };
6299      }
6300    };
6301  };
6302  var shift = function(options) {
6303    if (options === void 0) {
6304      options = {};
6305    }
6306    return {
6307      name: "shift",
6308      options,
6309      async fn(state) {
6310        const {
6311          x,
6312          y,
6313          placement
6314        } = state;
6315        const {
6316          mainAxis: checkMainAxis = true,
6317          crossAxis: checkCrossAxis = false,
6318          limiter = {
6319            fn: (_ref) => {
6320              let {
6321                x: x2,
6322                y: y2
6323              } = _ref;
6324              return {
6325                x: x2,
6326                y: y2
6327              };
6328            }
6329          },
6330          ...detectOverflowOptions
6331        } = evaluate2(options, state);
6332        const coords = {
6333          x,
6334          y
6335        };
6336        const overflow = await detectOverflow(state, detectOverflowOptions);
6337        const crossAxis = getSideAxis(getSide(placement));
6338        const mainAxis = getOppositeAxis(crossAxis);
6339        let mainAxisCoord = coords[mainAxis];
6340        let crossAxisCoord = coords[crossAxis];
6341        if (checkMainAxis) {
6342          const minSide = mainAxis === "y" ? "top" : "left";
6343          const maxSide = mainAxis === "y" ? "bottom" : "right";
6344          const min2 = mainAxisCoord + overflow[minSide];
6345          const max2 = mainAxisCoord - overflow[maxSide];
6346          mainAxisCoord = clamp(min2, mainAxisCoord, max2);
6347        }
6348        if (checkCrossAxis) {
6349          const minSide = crossAxis === "y" ? "top" : "left";
6350          const maxSide = crossAxis === "y" ? "bottom" : "right";
6351          const min2 = crossAxisCoord + overflow[minSide];
6352          const max2 = crossAxisCoord - overflow[maxSide];
6353          crossAxisCoord = clamp(min2, crossAxisCoord, max2);
6354        }
6355        const limitedCoords = limiter.fn({
6356          ...state,
6357          [mainAxis]: mainAxisCoord,
6358          [crossAxis]: crossAxisCoord
6359        });
6360        return {
6361          ...limitedCoords,
6362          data: {
6363            x: limitedCoords.x - x,
6364            y: limitedCoords.y - y
6365          }
6366        };
6367      }
6368    };
6369  };
6370  function getNodeName(node) {
6371    if (isNode(node)) {
6372      return (node.nodeName || "").toLowerCase();
6373    }
6374    return "#document";
6375  }
6376  function getWindow(node) {
6377    var _node$ownerDocument;
6378    return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
6379  }
6380  function getDocumentElement(node) {
6381    var _ref;
6382    return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
6383  }
6384  function isNode(value) {
6385    return value instanceof Node || value instanceof getWindow(value).Node;
6386  }
6387  function isElement(value) {
6388    return value instanceof Element || value instanceof getWindow(value).Element;
6389  }
6390  function isHTMLElement(value) {
6391    return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
6392  }
6393  function isShadowRoot(value) {
6394    if (typeof ShadowRoot === "undefined") {
6395      return false;
6396    }
6397    return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
6398  }
6399  function isOverflowElement(element) {
6400    const {
6401      overflow,
6402      overflowX,
6403      overflowY,
6404      display
6405    } = getComputedStyle2(element);
6406    return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !["inline", "contents"].includes(display);
6407  }
6408  function isTableElement(element) {
6409    return ["table", "td", "th"].includes(getNodeName(element));
6410  }
6411  function isContainingBlock(element) {
6412    const webkit = isWebKit();
6413    const css = getComputedStyle2(element);
6414    return css.transform !== "none" || css.perspective !== "none" || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || ["transform", "perspective", "filter"].some((value) => (css.willChange || "").includes(value)) || ["paint", "layout", "strict", "content"].some((value) => (css.contain || "").includes(value));
6415  }
6416  function getContainingBlock(element) {
6417    let currentNode = getParentNode(element);
6418    while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
6419      if (isContainingBlock(currentNode)) {
6420        return currentNode;
6421      } else {
6422        currentNode = getParentNode(currentNode);
6423      }
6424    }
6425    return null;
6426  }
6427  function isWebKit() {
6428    if (typeof CSS === "undefined" || !CSS.supports)
6429      return false;
6430    return CSS.supports("-webkit-backdrop-filter", "none");
6431  }
6432  function isLastTraversableNode(node) {
6433    return ["html", "body", "#document"].includes(getNodeName(node));
6434  }
6435  function getComputedStyle2(element) {
6436    return getWindow(element).getComputedStyle(element);
6437  }
6438  function getNodeScroll(element) {
6439    if (isElement(element)) {
6440      return {
6441        scrollLeft: element.scrollLeft,
6442        scrollTop: element.scrollTop
6443      };
6444    }
6445    return {
6446      scrollLeft: element.pageXOffset,
6447      scrollTop: element.pageYOffset
6448    };
6449  }
6450  function getParentNode(node) {
6451    if (getNodeName(node) === "html") {
6452      return node;
6453    }
6454    const result = node.assignedSlot || node.parentNode || isShadowRoot(node) && node.host || getDocumentElement(node);
6455    return isShadowRoot(result) ? result.host : result;
6456  }
6457  function getNearestOverflowAncestor(node) {
6458    const parentNode = getParentNode(node);
6459    if (isLastTraversableNode(parentNode)) {
6460      return node.ownerDocument ? node.ownerDocument.body : node.body;
6461    }
6462    if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
6463      return parentNode;
6464    }
6465    return getNearestOverflowAncestor(parentNode);
6466  }
6467  function getOverflowAncestors(node, list, traverseIframes) {
6468    var _node$ownerDocument2;
6469    if (list === void 0) {
6470      list = [];
6471    }
6472    if (traverseIframes === void 0) {
6473      traverseIframes = true;
6474    }
6475    const scrollableAncestor = getNearestOverflowAncestor(node);
6476    const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
6477    const win = getWindow(scrollableAncestor);
6478    if (isBody) {
6479      return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);
6480    }
6481    return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
6482  }
6483  function getCssDimensions(element) {
6484    const css = getComputedStyle2(element);
6485    let width = parseFloat(css.width) || 0;
6486    let height = parseFloat(css.height) || 0;
6487    const hasOffset = isHTMLElement(element);
6488    const offsetWidth = hasOffset ? element.offsetWidth : width;
6489    const offsetHeight = hasOffset ? element.offsetHeight : height;
6490    const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
6491    if (shouldFallback) {
6492      width = offsetWidth;
6493      height = offsetHeight;
6494    }
6495    return {
6496      width,
6497      height,
6498      $: shouldFallback
6499    };
6500  }
6501  function unwrapElement(element) {
6502    return !isElement(element) ? element.contextElement : element;
6503  }
6504  function getScale(element) {
6505    const domElement = unwrapElement(element);
6506    if (!isHTMLElement(domElement)) {
6507      return createCoords(1);
6508    }
6509    const rect = domElement.getBoundingClientRect();
6510    const {
6511      width,
6512      height,
6513      $
6514    } = getCssDimensions(domElement);
6515    let x = ($ ? round(rect.width) : rect.width) / width;
6516    let y = ($ ? round(rect.height) : rect.height) / height;
6517    if (!x || !Number.isFinite(x)) {
6518      x = 1;
6519    }
6520    if (!y || !Number.isFinite(y)) {
6521      y = 1;
6522    }
6523    return {
6524      x,
6525      y
6526    };
6527  }
6528  var noOffsets = /* @__PURE__ */ createCoords(0);
6529  function getVisualOffsets(element) {
6530    const win = getWindow(element);
vendor: 4,610 bytes, lines 6531-6659
6531    if (!isWebKit() || !win.visualViewport) {
6532      return noOffsets;
6533    }
6534    return {
6535      x: win.visualViewport.offsetLeft,
6536      y: win.visualViewport.offsetTop
6537    };
6538  }
6539  function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
6540    if (isFixed === void 0) {
6541      isFixed = false;
6542    }
6543    if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {
6544      return false;
6545    }
6546    return isFixed;
6547  }
6548  function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
6549    if (includeScale === void 0) {
6550      includeScale = false;
6551    }
6552    if (isFixedStrategy === void 0) {
6553      isFixedStrategy = false;
6554    }
6555    const clientRect = element.getBoundingClientRect();
6556    const domElement = unwrapElement(element);
6557    let scale = createCoords(1);
6558    if (includeScale) {
6559      if (offsetParent) {
6560        if (isElement(offsetParent)) {
6561          scale = getScale(offsetParent);
6562        }
6563      } else {
6564        scale = getScale(element);
6565      }
6566    }
6567    const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
6568    let x = (clientRect.left + visualOffsets.x) / scale.x;
6569    let y = (clientRect.top + visualOffsets.y) / scale.y;
6570    let width = clientRect.width / scale.x;
6571    let height = clientRect.height / scale.y;
6572    if (domElement) {
6573      const win = getWindow(domElement);
6574      const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
6575      let currentIFrame = win.frameElement;
6576      while (currentIFrame && offsetParent && offsetWin !== win) {
6577        const iframeScale = getScale(currentIFrame);
6578        const iframeRect = currentIFrame.getBoundingClientRect();
6579        const css = getComputedStyle2(currentIFrame);
6580        const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
6581        const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
6582        x *= iframeScale.x;
6583        y *= iframeScale.y;
6584        width *= iframeScale.x;
6585        height *= iframeScale.y;
6586        x += left;
6587        y += top;
6588        currentIFrame = getWindow(currentIFrame).frameElement;
6589      }
6590    }
6591    return rectToClientRect({
6592      width,
6593      height,
6594      x,
6595      y
6596    });
6597  }
6598  function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
6599    let {
6600      rect,
6601      offsetParent,
6602      strategy
6603    } = _ref;
6604    const isOffsetParentAnElement = isHTMLElement(offsetParent);
6605    const documentElement = getDocumentElement(offsetParent);
6606    if (offsetParent === documentElement) {
6607      return rect;
6608    }
6609    let scroll = {
6610      scrollLeft: 0,
6611      scrollTop: 0
6612    };
6613    let scale = createCoords(1);
6614    const offsets = createCoords(0);
6615    if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== "fixed") {
6616      if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
6617        scroll = getNodeScroll(offsetParent);
6618      }
6619      if (isHTMLElement(offsetParent)) {
6620        const offsetRect = getBoundingClientRect(offsetParent);
6621        scale = getScale(offsetParent);
6622        offsets.x = offsetRect.x + offsetParent.clientLeft;
6623        offsets.y = offsetRect.y + offsetParent.clientTop;
6624      }
6625    }
6626    return {
6627      width: rect.width * scale.x,
6628      height: rect.height * scale.y,
6629      x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,
6630      y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y
6631    };
6632  }
6633  function getClientRects(element) {
6634    return Array.from(element.getClientRects());
6635  }
6636  function getWindowScrollBarX(element) {
6637    return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;
6638  }
6639  function getDocumentRect(element) {
6640    const html = getDocumentElement(element);
6641    const scroll = getNodeScroll(element);
6642    const body = element.ownerDocument.body;
6643    const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
6644    const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
6645    let x = -scroll.scrollLeft + getWindowScrollBarX(element);
6646    const y = -scroll.scrollTop;
6647    if (getComputedStyle2(body).direction === "rtl") {
6648      x += max(html.clientWidth, body.clientWidth) - width;
6649    }
6650    return {
6651      width,
6652      height,
6653      x,
6654      y
6655    };
6656  }
6657  function getViewportRect(element, strategy) {
6658    const win = getWindow(element);
6659    const html = getDocumentElement(element);
vendor: 12,549 bytes, lines 6660-7011
6660    const visualViewport = win.visualViewport;
6661    let width = html.clientWidth;
6662    let height = html.clientHeight;
6663    let x = 0;
6664    let y = 0;
6665    if (visualViewport) {
6666      width = visualViewport.width;
6667      height = visualViewport.height;
6668      const visualViewportBased = isWebKit();
6669      if (!visualViewportBased || visualViewportBased && strategy === "fixed") {
6670        x = visualViewport.offsetLeft;
6671        y = visualViewport.offsetTop;
6672      }
6673    }
6674    return {
6675      width,
6676      height,
6677      x,
6678      y
6679    };
6680  }
6681  function getInnerBoundingClientRect(element, strategy) {
6682    const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
6683    const top = clientRect.top + element.clientTop;
6684    const left = clientRect.left + element.clientLeft;
6685    const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);
6686    const width = element.clientWidth * scale.x;
6687    const height = element.clientHeight * scale.y;
6688    const x = left * scale.x;
6689    const y = top * scale.y;
6690    return {
6691      width,
6692      height,
6693      x,
6694      y
6695    };
6696  }
6697  function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
6698    let rect;
6699    if (clippingAncestor === "viewport") {
6700      rect = getViewportRect(element, strategy);
6701    } else if (clippingAncestor === "document") {
6702      rect = getDocumentRect(getDocumentElement(element));
6703    } else if (isElement(clippingAncestor)) {
6704      rect = getInnerBoundingClientRect(clippingAncestor, strategy);
6705    } else {
6706      const visualOffsets = getVisualOffsets(element);
6707      rect = {
6708        ...clippingAncestor,
6709        x: clippingAncestor.x - visualOffsets.x,
6710        y: clippingAncestor.y - visualOffsets.y
6711      };
6712    }
6713    return rectToClientRect(rect);
6714  }
6715  function hasFixedPositionAncestor(element, stopNode) {
6716    const parentNode = getParentNode(element);
6717    if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
6718      return false;
6719    }
6720    return getComputedStyle2(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
6721  }
6722  function getClippingElementAncestors(element, cache) {
6723    const cachedResult = cache.get(element);
6724    if (cachedResult) {
6725      return cachedResult;
6726    }
6727    let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body");
6728    let currentContainingBlockComputedStyle = null;
6729    const elementIsFixed = getComputedStyle2(element).position === "fixed";
6730    let currentNode = elementIsFixed ? getParentNode(element) : element;
6731    while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
6732      const computedStyle = getComputedStyle2(currentNode);
6733      const currentNodeIsContaining = isContainingBlock(currentNode);
6734      if (!currentNodeIsContaining && computedStyle.position === "fixed") {
6735        currentContainingBlockComputedStyle = null;
6736      }
6737      const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && ["absolute", "fixed"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
6738      if (shouldDropCurrentNode) {
6739        result = result.filter((ancestor) => ancestor !== currentNode);
6740      } else {
6741        currentContainingBlockComputedStyle = computedStyle;
6742      }
6743      currentNode = getParentNode(currentNode);
6744    }
6745    cache.set(element, result);
6746    return result;
6747  }
6748  function getClippingRect(_ref) {
6749    let {
6750      element,
6751      boundary,
6752      rootBoundary,
6753      strategy
6754    } = _ref;
6755    const elementClippingAncestors = boundary === "clippingAncestors" ? getClippingElementAncestors(element, this._c) : [].concat(boundary);
6756    const clippingAncestors = [...elementClippingAncestors, rootBoundary];
6757    const firstClippingAncestor = clippingAncestors[0];
6758    const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
6759      const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
6760      accRect.top = max(rect.top, accRect.top);
6761      accRect.right = min(rect.right, accRect.right);
6762      accRect.bottom = min(rect.bottom, accRect.bottom);
6763      accRect.left = max(rect.left, accRect.left);
6764      return accRect;
6765    }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
6766    return {
6767      width: clippingRect.right - clippingRect.left,
6768      height: clippingRect.bottom - clippingRect.top,
6769      x: clippingRect.left,
6770      y: clippingRect.top
6771    };
6772  }
6773  function getDimensions(element) {
6774    return getCssDimensions(element);
6775  }
6776  function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
6777    const isOffsetParentAnElement = isHTMLElement(offsetParent);
6778    const documentElement = getDocumentElement(offsetParent);
6779    const isFixed = strategy === "fixed";
6780    const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
6781    let scroll = {
6782      scrollLeft: 0,
6783      scrollTop: 0
6784    };
6785    const offsets = createCoords(0);
6786    if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
6787      if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
6788        scroll = getNodeScroll(offsetParent);
6789      }
6790      if (isOffsetParentAnElement) {
6791        const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
6792        offsets.x = offsetRect.x + offsetParent.clientLeft;
6793        offsets.y = offsetRect.y + offsetParent.clientTop;
6794      } else if (documentElement) {
6795        offsets.x = getWindowScrollBarX(documentElement);
6796      }
6797    }
6798    return {
6799      x: rect.left + scroll.scrollLeft - offsets.x,
6800      y: rect.top + scroll.scrollTop - offsets.y,
6801      width: rect.width,
6802      height: rect.height
6803    };
6804  }
6805  function getTrueOffsetParent(element, polyfill) {
6806    if (!isHTMLElement(element) || getComputedStyle2(element).position === "fixed") {
6807      return null;
6808    }
6809    if (polyfill) {
6810      return polyfill(element);
6811    }
6812    return element.offsetParent;
6813  }
6814  function getOffsetParent(element, polyfill) {
6815    const window2 = getWindow(element);
6816    if (!isHTMLElement(element)) {
6817      return window2;
6818    }
6819    let offsetParent = getTrueOffsetParent(element, polyfill);
6820    while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") {
6821      offsetParent = getTrueOffsetParent(offsetParent, polyfill);
6822    }
6823    if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static" && !isContainingBlock(offsetParent))) {
6824      return window2;
6825    }
6826    return offsetParent || getContainingBlock(element) || window2;
6827  }
6828  var getElementRects = async function(_ref) {
6829    let {
6830      reference,
6831      floating,
6832      strategy
6833    } = _ref;
6834    const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
6835    const getDimensionsFn = this.getDimensions;
6836    return {
6837      reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),
6838      floating: {
6839        x: 0,
6840        y: 0,
6841        ...await getDimensionsFn(floating)
6842      }
6843    };
6844  };
6845  function isRTL(element) {
6846    return getComputedStyle2(element).direction === "rtl";
6847  }
6848  var platform = {
6849    convertOffsetParentRelativeRectToViewportRelativeRect,
6850    getDocumentElement,
6851    getClippingRect,
6852    getOffsetParent,
6853    getElementRects,
6854    getClientRects,
6855    getDimensions,
6856    getScale,
6857    isElement,
6858    isRTL
6859  };
6860  function observeMove(element, onMove) {
6861    let io = null;
6862    let timeoutId;
6863    const root = getDocumentElement(element);
6864    function cleanup3() {
6865      clearTimeout(timeoutId);
6866      io && io.disconnect();
6867      io = null;
6868    }
6869    function refresh(skip, threshold) {
6870      if (skip === void 0) {
6871        skip = false;
6872      }
6873      if (threshold === void 0) {
6874        threshold = 1;
6875      }
6876      cleanup3();
6877      const {
6878        left,
6879        top,
6880        width,
6881        height
6882      } = element.getBoundingClientRect();
6883      if (!skip) {
6884        onMove();
6885      }
6886      if (!width || !height) {
6887        return;
6888      }
6889      const insetTop = floor(top);
6890      const insetRight = floor(root.clientWidth - (left + width));
6891      const insetBottom = floor(root.clientHeight - (top + height));
6892      const insetLeft = floor(left);
6893      const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
6894      const options = {
6895        rootMargin,
6896        threshold: max(0, min(1, threshold)) || 1
6897      };
6898      let isFirstUpdate = true;
6899      function handleObserve(entries) {
6900        const ratio = entries[0].intersectionRatio;
6901        if (ratio !== threshold) {
6902          if (!isFirstUpdate) {
6903            return refresh();
6904          }
6905          if (!ratio) {
6906            timeoutId = setTimeout(() => {
6907              refresh(false, 1e-7);
6908            }, 100);
6909          } else {
6910            refresh(false, ratio);
6911          }
6912        }
6913        isFirstUpdate = false;
6914      }
6915      try {
6916        io = new IntersectionObserver(handleObserve, {
6917          ...options,
6918          root: root.ownerDocument
6919        });
6920      } catch (e) {
6921        io = new IntersectionObserver(handleObserve, options);
6922      }
6923      io.observe(element);
6924    }
6925    refresh(true);
6926    return cleanup3;
6927  }
6928  function autoUpdate(reference, floating, update, options) {
6929    if (options === void 0) {
6930      options = {};
6931    }
6932    const {
6933      ancestorScroll = true,
6934      ancestorResize = true,
6935      elementResize = typeof ResizeObserver === "function",
6936      layoutShift = typeof IntersectionObserver === "function",
6937      animationFrame = false
6938    } = options;
6939    const referenceEl = unwrapElement(reference);
6940    const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];
6941    ancestors.forEach((ancestor) => {
6942      ancestorScroll && ancestor.addEventListener("scroll", update, {
6943        passive: true
6944      });
6945      ancestorResize && ancestor.addEventListener("resize", update);
6946    });
6947    const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
6948    let reobserveFrame = -1;
6949    let resizeObserver = null;
6950    if (elementResize) {
6951      resizeObserver = new ResizeObserver((_ref) => {
6952        let [firstEntry] = _ref;
6953        if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {
6954          resizeObserver.unobserve(floating);
6955          cancelAnimationFrame(reobserveFrame);
6956          reobserveFrame = requestAnimationFrame(() => {
6957            resizeObserver && resizeObserver.observe(floating);
6958          });
6959        }
6960        update();
6961      });
6962      if (referenceEl && !animationFrame) {
6963        resizeObserver.observe(referenceEl);
6964      }
6965      resizeObserver.observe(floating);
6966    }
6967    let frameId;
6968    let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
6969    if (animationFrame) {
6970      frameLoop();
6971    }
6972    function frameLoop() {
6973      const nextRefRect = getBoundingClientRect(reference);
6974      if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {
6975        update();
6976      }
6977      prevRefRect = nextRefRect;
6978      frameId = requestAnimationFrame(frameLoop);
6979    }
6980    update();
6981    return () => {
6982      ancestors.forEach((ancestor) => {
6983        ancestorScroll && ancestor.removeEventListener("scroll", update);
6984        ancestorResize && ancestor.removeEventListener("resize", update);
6985      });
6986      cleanupIo && cleanupIo();
6987      resizeObserver && resizeObserver.disconnect();
6988      resizeObserver = null;
6989      if (animationFrame) {
6990        cancelAnimationFrame(frameId);
6991      }
6992    };
6993  }
6994  var computePosition2 = (reference, floating, options) => {
6995    const cache = /* @__PURE__ */ new Map();
6996    const mergedOptions = {
6997      platform,
6998      ...options
6999    };
7000    const platformWithCache = {
7001      ...mergedOptions.platform,
7002      _c: cache
7003    };
7004    return computePosition(reference, floating, {
7005      ...mergedOptions,
7006      platform: platformWithCache
7007    });
7008  };
7009  function src_default6(Alpine3) {
7010    Alpine3.magic("anchor", (el) => {
7011      if (!el._x_anchor)
7012        throw "Alpine: No x-anchor directive found on element using $anchor...";
7013      return el._x_anchor;
7014    });
7015    Alpine3.interceptClone((from, to) => {
7016      if (from && from._x_anchor && !to._x_anchor) {
7017        to._x_anchor = from._x_anchor;
7018      }
7019    });
7020    Alpine3.directive("anchor", Alpine3.skipDuringClone((el, { expression, modifiers, value }, { cleanup: cleanup3, evaluate: evaluate22 }) => {
7021      let { placement, offsetValue, unstyled } = getOptions(modifiers);
7022      el._x_anchor = Alpine3.reactive({ x: 0, y: 0 });
7023      let reference = evaluate22(expression);
7024      if (!reference)
7025        throw "Alpine: no element provided to x-anchor...";
7026      let compute = () => {
7027        let previousValue;
7028        computePosition2(reference, el, {
7029          placement,
7030          middleware: [flip(), shift({ padding: 5 }), offset(offsetValue)]
7031        }).then(({ x, y }) => {
7032          unstyled || setStyles2(el, x, y);
7033          if (JSON.stringify({ x, y }) !== previousValue) {
7034            el._x_anchor.x = x;
7035            el._x_anchor.y = y;
7036          }
7037          previousValue = JSON.stringify({ x, y });
7038        });
7039      };
7040      let release2 = autoUpdate(reference, el, () => compute());
7041      cleanup3(() => release2());
7042    }, (el, { expression, modifiers, value }, { cleanup: cleanup3, evaluate: evaluate22 }) => {
7043      let { placement, offsetValue, unstyled } = getOptions(modifiers);
7044      if (el._x_anchor) {
7045        unstyled || setStyles2(el, el._x_anchor.x, el._x_anchor.y);
7046      }
7047    }));
7048  }
7049  function setStyles2(el, x, y) {
7050    Object.assign(el.style, {
7051      left: x + "px",
7052      top: y + "px",
7053      position: "absolute"
7054    });
7055  }
7056  function getOptions(modifiers) {
7057    let positions = ["top", "top-start", "top-end", "right", "right-start", "right-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end"];
7058    let placement = positions.find((i) => modifiers.includes(i));
7059    let offsetValue = 0;
7060    if (modifiers.includes("offset")) {
7061      let idx = modifiers.findIndex((i) => i === "offset");
7062      offsetValue = modifiers[idx + 1] !== void 0 ? Number(modifiers[idx + 1]) : offsetValue;
7063    }
7064    let unstyled = modifiers.includes("no-style");
7065    return { placement, offsetValue, unstyled };
7066  }
7067  var module_default6 = src_default6;
7068
7069  
7069// js/plugins/navigate/history.js
7070  function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() {
7071    let url = new URL(window.location.href, document.baseURI);
7072    replaceUrl(url, document.documentElement.outerHTML);
7073  }
7074  function whenTheBackOrForwardButtonIsClicked(callback) {
7075    window.addEventListener("popstate", (e) => {
7076      let state = e.state || {};
7077      let alpine = state.alpine || {};
7078      if (!alpine._html)
7079        return;
7080      let html = fromSessionStorage(alpine._html);
7081      callback(html);
7082    });
7083  }
7084  function updateUrlAndStoreLatestHtmlForFutureBackButtons(html, destination) {
7085    pushUrl(destination, html);
7086  }
7087  function pushUrl(url, html) {
7088    updateUrl("pushState", url, html);
7089  }
7090  function replaceUrl(url, html) {
7091    updateUrl("replaceState", url, html);
7092  }
7093  function updateUrl(method, url, html) {
7094    let key = new Date().getTime();
7095    tryToStoreInSession(key, html);
7096    let state = history.state || {};
7097    if (!state.alpine)
7098      state.alpine = {};
7099    state.alpine._html = key;
7100    try {
7101      history[method](state, document.title, url);
7102    } catch (error2) {
7103      if (error2 instanceof DOMException && error2.name === "SecurityError") {
7104        console.error("Livewire: You can't use wire:navigate with a link to a different root domain: " + url);
7105      }
7106      console.error(error2);
7107    }
7108  }
7109  function fromSessionStorage(timestamp) {
7110    let state = JSON.parse(sessionStorage.getItem("alpine:" + timestamp));
7111    return state;
7112  }
7113  function tryToStoreInSession(timestamp, value) {
7114    try {
7115      sessionStorage.setItem("alpine:" + timestamp, JSON.stringify(value));
7116    } catch (error2) {
7117      if (![22, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14].includes(error2.code))
7118        return;
7119      let oldestTimestamp = Object.keys(sessionStorage).map((key) => Number(key.replace("alpine:", ""))).sort().shift();
7120      if (!oldestTimestamp)
7121        return;
7122      sessionStorage.removeItem("alpine:" + oldestTimestamp);
7123      tryToStoreInSession(timestamp, value);
7124    }
7125  }
7126
7127  
7127// js/plugins/navigate/links.js
7128  function whenThisLinkIsPressed(el, callback) {
7129    let isProgrammaticClick = (e) => !e.isTrusted;
7130    let isNotPlainLeftClick = (e) => e.which > 1 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey;
7131    let isNotPlainEnterKey = (e) => e.which !== 13 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey;
7132    el.addEventListener("click", (e) => {
7133      if (isProgrammaticClick(e)) {
7134        e.preventDefault();
7135        callback((whenReleased) => whenReleased());
7136        return;
7137      }
7138      if (isNotPlainLeftClick(e))
7139        return;
7140      e.preventDefault();
7141    });
7142    el.addEventListener("mousedown", (e) => {
7143      if (isNotPlainLeftClick(e))
7144        return;
7145      e.preventDefault();
7146      callback((whenReleased) => {
7147        let handler4 = (e2) => {
7148          e2.preventDefault();
7149          whenReleased();
7150          el.removeEventListener("mouseup", handler4);
7151        };
7152        el.addEventListener("mouseup", handler4);
7153      });
7154    });
7155    el.addEventListener("keydown", (e) => {
7156      if (isNotPlainEnterKey(e))
7157        return;
7158      e.preventDefault();
7159      callback((whenReleased) => whenReleased());
7160    });
7161  }
7162  function whenThisLinkIsHoveredFor(el, ms = 60, callback) {
7163    el.addEventListener("mouseenter", (e) => {
7164      let timeout = setTimeout(() => {
7165        callback(e);
7166      }, ms);
7167      let handler4 = () => {
7168        clearTimeout(timeout);
7169        el.removeEventListener("mouseleave", handler4);
7170      };
7171      el.addEventListener("mouseleave", handler4);
7172    });
7173  }
7174  function extractDestinationFromLink(linkEl) {
7175    return createUrlObjectFromString(linkEl.getAttribute("href"));
7176  }
7177  function createUrlObjectFromString(urlString) {
7178    return new URL(urlString, document.baseURI);
7179  }
7180
7181  
7181// js/plugins/navigate/fetch.js
7182  function fetchHtml(destination, callback) {
7183    let uri = destination.pathname + destination.search;
7184    performFetch(uri, (html, finalDestination) => {
7185      callback(html, finalDestination);
7186    });
7187  }
7188  function performFetch(uri, callback) {
7189    let options = {
7190      headers: {
7191        "X-Livewire-Navigate": ""
7192      }
7193    };
7194    trigger2("navigate.request", {
7195      url: uri,
7196      options
7197    });
7198    let finalDestination;
7199    fetch(uri, options).then((response) => {
7200      finalDestination = createUrlObjectFromString(response.url);
7201      return response.text();
7202    }).then((html) => {
7203      callback(html, finalDestination);
7204    });
7205  }
7206
7207  
7207// js/plugins/navigate/prefetch.js
7208  var prefetches = {};
7209  function prefetchHtml(destination, callback) {
7210    let path = destination.pathname;
7211    if (prefetches[path])
7212      return;
7213    prefetches[path] = { finished: false, html: null, whenFinished: () => {
7214    } };
7215    performFetch(path, (html, routedUri) => {
7216      callback(html, routedUri);
7217    });
7218  }
7219  function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination) {
7220    let state = prefetches[destination.pathname];
7221    state.html = html;
7222    state.finished = true;
7223    state.finalDestination = finalDestination;
7224    state.whenFinished();
7225  }
7226  function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) {
7227    let uri = destination.pathname + destination.search;
7228    if (!prefetches[uri])
7229      return ifNoPrefetchExists();
7230    if (prefetches[uri].finished) {
7231      let html = prefetches[uri].html;
7232      let finalDestination = prefetches[uri].finalDestination;
7233      delete prefetches[uri];
7234      return receive(html, finalDestination);
7235    } else {
7236      prefetches[uri].whenFinished = () => {
7237        let html = prefetches[uri].html;
7238        let finalDestination = prefetches[uri].finalDestination;
7239        delete prefetches[uri];
7240        receive(html, finalDestination);
7241      };
7242    }
7243  }
7244
7245  
7245// js/plugins/navigate/teleport.js
7246  function packUpPersistedTeleports(persistedEl) {
7247    module_default.mutateDom(() => {
7248      persistedEl.querySelectorAll("[data-teleport-template]").forEach((i) => i._x_teleport.remove());
7249    });
7250  }
7251  function removeAnyLeftOverStaleTeleportTargets(body) {
7252    module_default.mutateDom(() => {
7253      body.querySelectorAll("[data-teleport-target]").forEach((i) => i.remove());
7254    });
7255  }
7256  function unPackPersistedTeleports(persistedEl) {
7257    module_default.walk(persistedEl, (el, skip) => {
7258      if (!el._x_teleport)
7259        return;
7260      el._x_teleportPutBack();
7261      skip();
7262    });
7263  }
7264  function isTeleportTarget(el) {
7265    return el.hasAttribute("data-teleport-target");
7266  }
7267
7268  
7268// js/plugins/navigate/scroll.js
7269  function storeScrollInformationInHtmlBeforeNavigatingAway() {
7270    document.body.setAttribute("data-scroll-x", document.body.scrollLeft);
7271    document.body.setAttribute("data-scroll-y", document.body.scrollTop);
7272    document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:scroll]"]).forEach((el) => {
7273      el.setAttribute("data-scroll-x", el.scrollLeft);
7274      el.setAttribute("data-scroll-y", el.scrollTop);
7275    });
7276  }
7277  function restoreScrollPositionOrScrollToTop() {
7278    let scroll = (el) => {
7279      if (!el.hasAttribute("data-scroll-x")) {
7280        window.scrollTo({ top: 0, left: 0, behavior: "instant" });
7281      } else {
7282        el.scrollTo({
7283          top: Number(el.getAttribute("data-scroll-y")),
7284          left: Number(el.getAttribute("data-scroll-x")),
7285          behavior: "instant"
7286        });
7287        el.removeAttribute("data-scroll-x");
7288        el.removeAttribute("data-scroll-y");
7289      }
7290    };
7291    queueMicrotask(() => {
7292      scroll(document.body);
7293      document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:scroll]"]).forEach(scroll);
7294    });
7295  }
7296
7297  
7297// js/plugins/navigate/persist.js
7298  var els = {};
7299  function storePersistantElementsForLater(callback) {
7300    els = {};
7301    document.querySelectorAll("[x-persist]").forEach((i) => {
7302      els[i.getAttribute("x-persist")] = i;
7303      callback(i);
7304      module_default.mutateDom(() => {
7305        i.remove();
7306      });
7307    });
7308  }
7309  function putPersistantElementsBack(callback) {
7310    let usedPersists = [];
7311    document.querySelectorAll("[x-persist]").forEach((i) => {
7312      let old = els[i.getAttribute("x-persist")];
7313      if (!old)
7314        return;
7315      usedPersists.push(i.getAttribute("x-persist"));
7316      old._x_wasPersisted = true;
7317      callback(old, i);
7318      module_default.mutateDom(() => {
7319        i.replaceWith(old);
7320      });
7321    });
7322    Object.entries(els).forEach(([key, el]) => {
7323      if (usedPersists.includes(key))
7324        return;
7325      module_default.destroyTree(el);
7326    });
7327    els = {};
7328  }
7329  function isPersistedElement(el) {
7330    return el.hasAttribute("x-persist");
7331  }
7332
7333  
7333// js/plugins/navigate/bar.js
7334  var import_nprogress = __toESM(require_nprogress());
7335  import_nprogress.default.configure({
7336    minimum: 0.1,
7337    trickleSpeed: 200,
7338    showSpinner: false
7339  });
7340  injectStyles();
7341  var inProgress = false;
7342  function showAndStartProgressBar() {
7343    inProgress = true;
7344    setTimeout(() => {
7345      if (!inProgress)
7346        return;
7347      import_nprogress.default.start();
7348    }, 150);
7349  }
7350  function finishAndHideProgressBar() {
7351    inProgress = false;
7352    import_nprogress.default.done();
7353    import_nprogress.default.remove();
7354  }
7355  function injectStyles() {
7356    let style = document.createElement("style");
7357    style.innerHTML = `/* Make clicks pass-through */
7358
7359    #nprogress {
7360      pointer-events: none;
7361    }
7362
7363    #nprogress .bar {
7364      background: var(--livewire-progress-bar-color, #29d);
7365
7366      position: fixed;
7367      z-index: 1031;
7368      top: 0;
7369      left: 0;
7370
7371      width: 100%;
7372      height: 2px;
7373    }
7374
7375    /* Fancy blur effect */
7376    #nprogress .peg {
7377      display: block;
7378      position: absolute;
7379      right: 0px;
7380      width: 100px;
7381      height: 100%;
7382      box-shadow: 0 0 10px var(--livewire-progress-bar-color, #29d), 0 0 5px var(--livewire-progress-bar-color, #29d);
7383      opacity: 1.0;
7384
7385      -webkit-transform: rotate(3deg) translate(0px, -4px);
7386          -ms-transform: rotate(3deg) translate(0px, -4px);
7387              transform: rotate(3deg) translate(0px, -4px);
7388    }
7389
7390    /* Remove these to get rid of the spinner */
7391    #nprogress .spinner {
7392      display: block;
7393      position: fixed;
7394      z-index: 1031;
7395      top: 15px;
7396      right: 15px;
7397    }
7398
7399    #nprogress .spinner-icon {
7400      width: 18px;
7401      height: 18px;
7402      box-sizing: border-box;
7403
7404      border: solid 2px transparent;
7405      border-top-color: var(--livewire-progress-bar-color, #29d);
7406      border-left-color: var(--livewire-progress-bar-color, #29d);
7407      border-radius: 50%;
7408
7409      -webkit-animation: nprogress-spinner 400ms linear infinite;
7410              animation: nprogress-spinner 400ms linear infinite;
7411    }
7412
7413    .nprogress-custom-parent {
7414      overflow: hidden;
7415      position: relative;
7416    }
7417
7418    .nprogress-custom-parent #nprogress .spinner,
7419    .nprogress-custom-parent #nprogress .bar {
7420      position: absolute;
7421    }
7422
7423    @-webkit-keyframes nprogress-spinner {
7424      0%   { -webkit-transform: rotate(0deg); }
7425      100% { -webkit-transform: rotate(360deg); }
7426    }
7427    @keyframes nprogress-spinner {
7428      0%   { transform: rotate(0deg); }
7429      100% { transform: rotate(360deg); }
7430    }
7431    `;
7432    let nonce2 = getNonce();
7433    if (nonce2) {
7434      style.nonce = nonce2;
7435    }
7436    document.head.appendChild(style);
7437  }
7438
7439  
7439// js/plugins/navigate/page.js
7440  var oldBodyScriptTagHashes = [];
7441  var attributesExemptFromScriptTagHashing = [
7442    "data-csrf",
7443    "aria-hidden"
7444  ];
7445  function swapCurrentPageWithNewHtml(html, andThen) {
7446    let newDocument = new DOMParser().parseFromString(html, "text/html");
7447    let newBody = document.adoptNode(newDocument.body);
7448    let newHead = document.adoptNode(newDocument.head);
7449    oldBodyScriptTagHashes = oldBodyScriptTagHashes.concat(Array.from(document.body.querySelectorAll("script")).map((i) => {
7450      return simpleHash(ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing));
7451    }));
7452    let afterRemoteScriptsHaveLoaded = () => {
7453    };
7454    mergeNewHead(newHead).finally(() => {
7455      afterRemoteScriptsHaveLoaded();
7456    });
7457    prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes);
7458    let oldBody = document.body;
7459    document.body.replaceWith(newBody);
7460    Alpine.destroyTree(oldBody);
7461    andThen((i) => afterRemoteScriptsHaveLoaded = i);
7462  }
7463  function prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes2) {
7464    newBody.querySelectorAll("script").forEach((i) => {
7465      if (i.hasAttribute("data-navigate-once")) {
7466        let hash = simpleHash(ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing));
7467        if (oldBodyScriptTagHashes2.includes(hash))
7468          return;
7469      }
7470      i.replaceWith(cloneScriptTag(i));
7471    });
7472  }
7473  function mergeNewHead(newHead) {
7474    let children = Array.from(document.head.children);
7475    let headChildrenHtmlLookup = children.map((i) => i.outerHTML);
7476    let garbageCollector = document.createDocumentFragment();
7477    let touchedHeadElements = [];
7478    let remoteScriptsPromises = [];
7479    for (let child of Array.from(newHead.children)) {
7480      if (isAsset(child)) {
7481        if (!headChildrenHtmlLookup.includes(child.outerHTML)) {
7482          if (isTracked(child)) {
7483            if (ifTheQueryStringChangedSinceLastRequest(child, children)) {
7484              setTimeout(() => window.location.reload());
7485            }
7486          }
7487          if (isScript(child)) {
7488            try {
7489              remoteScriptsPromises.push(injectScriptTagAndWaitForItToFullyLoad(cloneScriptTag(child)));
7490            } catch (error2) {
7491            }
7492          } else {
7493            document.head.appendChild(child);
7494          }
7495        } else {
7496          garbageCollector.appendChild(child);
7497        }
7498        touchedHeadElements.push(child);
7499      }
7500    }
7501    for (let child of Array.from(document.head.children)) {
7502      if (!isAsset(child))
7503        child.remove();
7504    }
7505    for (let child of Array.from(newHead.children)) {
7506      document.head.appendChild(child);
7507    }
7508    return Promise.all(remoteScriptsPromises);
7509  }
7510  async function injectScriptTagAndWaitForItToFullyLoad(script) {
7511    return new Promise((resolve, reject) => {
7512      if (script.src) {
7513        script.onload = () => resolve();
7514        script.onerror = () => reject();
7515      } else {
7516        resolve();
7517      }
7518      document.head.appendChild(script);
7519    });
7520  }
7521  function cloneScriptTag(el) {
7522    let script = document.createElement("script");
7523    script.textContent = el.textContent;
7524    script.async = el.async;
7525    for (let attr of el.attributes) {
7526      script.setAttribute(attr.name, attr.value);
7527    }
7528    return script;
7529  }
7530  function isTracked(el) {
7531    return el.hasAttribute("data-navigate-track");
7532  }
7533  function ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) {
7534    let [uri, queryString] = extractUriAndQueryString(el);
7535    return currentHeadChildren.some((child) => {
7536      if (!isTracked(child))
7537        return false;
7538      let [currentUri, currentQueryString] = extractUriAndQueryString(child);
7539      if (currentUri === uri && queryString !== currentQueryString)
7540        return true;
7541    });
7542  }
7543  function extractUriAndQueryString(el) {
7544    let url = isScript(el) ? el.src : el.href;
7545    return url.split("?");
7546  }
7547  function isAsset(el) {
7548    return el.tagName.toLowerCase() === "link" && el.getAttribute("rel").toLowerCase() === "stylesheet" || el.tagName.toLowerCase() === "style" || el.tagName.toLowerCase() === "script";
7549  }
7550  function isScript(el) {
7551    return el.tagName.toLowerCase() === "script";
7552  }
7553  function simpleHash(str) {
7554    return str.split("").reduce((a, b) => {
7555      a = (a << 5) - a + b.charCodeAt(0);
7556      return a & a;
7557    }, 0);
7558  }
7559  function ignoreAttributes(subject, attributesToRemove) {
7560    let result = subject;
7561    attributesToRemove.forEach((attr) => {
7562      const regex = new RegExp(`${attr}="[^"]*"|${attr}='[^']*'`, "g");
7563      result = result.replace(regex, "");
7564    });
7565    result = result.replaceAll(" ", "");
7566    return result.trim();
7567  }
7568
7569  
7569// js/plugins/navigate/index.js
7570  var enablePersist = true;
7571  var showProgressBar = true;
7572  var restoreScroll = true;
7573  var autofocus = false;
7574  function navigate_default(Alpine3) {
7575    Alpine3.navigate = (url) => {
7576      navigateTo(createUrlObjectFromString(url));
7577    };
7578    Alpine3.navigate.disableProgressBar = () => {
7579      showProgressBar = false;
7580    };
7581    Alpine3.addInitSelector(() => `[${Alpine3.prefixed("navigate")}]`);
7582    Alpine3.directive("navigate", (el, { modifiers }) => {
7583      let shouldPrefetchOnHover = modifiers.includes("hover");
7584      shouldPrefetchOnHover && whenThisLinkIsHoveredFor(el, 60, () => {
7585        let destination = extractDestinationFromLink(el);
7586        prefetchHtml(destination, (html, finalDestination) => {
7587          storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination);
7588        });
7589      });
7590      whenThisLinkIsPressed(el, (whenItIsReleased) => {
7591        let destination = extractDestinationFromLink(el);
7592        prefetchHtml(destination, (html, finalDestination) => {
7593          storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination);
7594        });
7595        whenItIsReleased(() => {
7596          navigateTo(destination);
7597        });
7598      });
7599    });
7600    function navigateTo(destination) {
7601      showProgressBar && showAndStartProgressBar();
7602      fetchHtmlOrUsePrefetchedHtml(destination, (html, finalDestination) => {
7603        fireEventForOtherLibariesToHookInto("alpine:navigating");
7604        restoreScroll && storeScrollInformationInHtmlBeforeNavigatingAway();
7605        showProgressBar && finishAndHideProgressBar();
7606        cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement();
7607        updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks();
7608        preventAlpineFromPickingUpDomChanges(Alpine3, (andAfterAllThis) => {
7609          enablePersist && storePersistantElementsForLater((persistedEl) => {
7610            packUpPersistedTeleports(persistedEl);
7611          });
7612          swapCurrentPageWithNewHtml(html, (afterNewScriptsAreDoneLoading) => {
7613            removeAnyLeftOverStaleTeleportTargets(document.body);
7614            enablePersist && putPersistantElementsBack((persistedEl, newStub) => {
7615              unPackPersistedTeleports(persistedEl);
7616            });
7617            restoreScrollPositionOrScrollToTop();
7618            updateUrlAndStoreLatestHtmlForFutureBackButtons(html, finalDestination);
7619            fireEventForOtherLibariesToHookInto("alpine:navigated");
7620            afterNewScriptsAreDoneLoading(() => {
7621              andAfterAllThis(() => {
7622                setTimeout(() => {
7623                  autofocus && autofocusElementsWithTheAutofocusAttribute();
7624                });
7625                nowInitializeAlpineOnTheNewPage(Alpine3);
7626              });
7627            });
7628          });
7629        });
7630      });
7631    }
7632    whenTheBackOrForwardButtonIsClicked((html) => {
7633      storeScrollInformationInHtmlBeforeNavigatingAway();
7634      preventAlpineFromPickingUpDomChanges(Alpine3, (andAfterAllThis) => {
7635        enablePersist && storePersistantElementsForLater((persistedEl) => {
7636          packUpPersistedTeleports(persistedEl);
7637        });
7638        swapCurrentPageWithNewHtml(html, () => {
7639          removeAnyLeftOverStaleTeleportTargets(document.body);
7640          enablePersist && putPersistantElementsBack((persistedEl, newStub) => {
7641            unPackPersistedTeleports(persistedEl);
7642          });
7643          restoreScrollPositionOrScrollToTop();
7644          fireEventForOtherLibariesToHookInto("alpine:navigated");
7645          andAfterAllThis(() => {
7646            autofocus && autofocusElementsWithTheAutofocusAttribute();
7647            nowInitializeAlpineOnTheNewPage(Alpine3);
7648          });
7649        });
7650      });
7651    });
7652    setTimeout(() => {
7653      fireEventForOtherLibariesToHookInto("alpine:navigated");
7654    });
7655  }
7656  function fetchHtmlOrUsePrefetchedHtml(fromDestination, callback) {
7657    getPretchedHtmlOr(fromDestination, callback, () => {
7658      fetchHtml(fromDestination, callback);
7659    });
7660  }
7661  function preventAlpineFromPickingUpDomChanges(Alpine3, callback) {
7662    Alpine3.stopObservingMutations();
7663    callback((afterAllThis) => {
7664      Alpine3.startObservingMutations();
7665      queueMicrotask(() => {
7666        afterAllThis();
7667      });
7668    });
7669  }
7670  function fireEventForOtherLibariesToHookInto(eventName) {
7671    document.dispatchEvent(new CustomEvent(eventName, { bubbles: true }));
7672  }
7673  function nowInitializeAlpineOnTheNewPage(Alpine3) {
7674    Alpine3.initTree(document.body, void 0, (el, skip) => {
7675      if (el._x_wasPersisted)
7676        skip();
7677    });
7678  }
7679  function autofocusElementsWithTheAutofocusAttribute() {
7680    document.querySelector("[autofocus]") && document.querySelector("[autofocus]").focus();
7681  }
7682  function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() {
7683    let walker = function(root, callback) {
7684      Alpine.walk(root, (el, skip) => {
7685        if (isPersistedElement(el))
7686          skip();
7687        if (isTeleportTarget(el))
7688          skip();
7689        else
7690          callback(el, skip);
7691      });
7692    };
7693    Alpine.destroyTree(document.body, walker);
7694  }
7695
7696  
7696// js/plugins/history/index.js
7697  function history2(Alpine3) {
7698    Alpine3.magic("queryString", (el, { interceptor: interceptor2 }) => {
7699      let alias;
7700      let alwaysShow = false;
7701      let usePush = false;
7702      return interceptor2((initialSeedValue, getter, setter, path, key) => {
7703        let queryKey = alias || path;
7704        let { initial, replace: replace2, push: push2, pop } = track2(queryKey, initialSeedValue, alwaysShow);
7705        setter(initial);
7706        if (!usePush) {
7707          Alpine3.effect(() => replace2(getter()));
7708        } else {
7709          Alpine3.effect(() => push2(getter()));
7710          pop(async (newValue) => {
7711            setter(newValue);
7712            let tillTheEndOfTheMicrotaskQueue = () => Promise.resolve();
7713            await tillTheEndOfTheMicrotaskQueue();
7714          });
7715        }
7716        return initial;
7717      }, (func) => {
7718        func.alwaysShow = () => {
7719          alwaysShow = true;
7720          return func;
7721        };
7722        func.usePush = () => {
7723          usePush = true;
7724          return func;
7725        };
7726        func.as = (key) => {
7727          alias = key;
7728          return func;
7729        };
7730      });
7731    });
7732    Alpine3.history = { track: track2 };
7733  }
7734  function track2(name, initialSeedValue, alwaysShow = false) {
7735    let { has: has2, get: get3, set: set3, remove } = queryStringUtils();
7736    let url = new URL(window.location.href);
7737    let isInitiallyPresentInUrl = has2(url, name);
7738    let initialValue = isInitiallyPresentInUrl ? get3(url, name) : initialSeedValue;
7739    let initialValueMemo = JSON.stringify(initialValue);
7740    let hasReturnedToInitialValue = (newValue) => JSON.stringify(newValue) === initialValueMemo;
7741    if (alwaysShow)
7742      url = set3(url, name, initialValue);
7743    replace(url, name, { value: initialValue });
7744    let lock = false;
7745    let update = (strategy, newValue) => {
7746      if (lock)
7747        return;
7748      let url2 = new URL(window.location.href);
7749      if (!alwaysShow && !isInitiallyPresentInUrl && hasReturnedToInitialValue(newValue)) {
7750        url2 = remove(url2, name);
7751      } else if (newValue === void 0) {
7752        url2 = remove(url2, name);
7753      } else {
7754        url2 = set3(url2, name, newValue);
7755      }
7756      strategy(url2, name, { value: newValue });
7757    };
7758    return {
7759      initial: initialValue,
7760      replace(newValue) {
7761        update(replace, newValue);
7762      },
7763      push(newValue) {
7764        update(push, newValue);
7765      },
7766      pop(receiver) {
7767        let handler4 = (e) => {
7768          if (!e.state || !e.state.alpine)
7769            return;
7770          Object.entries(e.state.alpine).forEach(([iName, { value: newValue }]) => {
7771            if (iName !== name)
7772              return;
7773            lock = true;
7774            let result = receiver(newValue);
7775            if (result instanceof Promise) {
7776              result.finally(() => lock = false);
7777            } else {
7778              lock = false;
7779            }
7780          });
7781        };
7782        window.addEventListener("popstate", handler4);
7783        return () => window.removeEventListener("popstate", handler4);
7784      }
7785    };
7786  }
7787  function replace(url, key, object) {
7788    let state = window.history.state || {};
7789    if (!state.alpine)
7790      state.alpine = {};
7791    state.alpine[key] = unwrap(object);
7792    window.history.replaceState(state, "", url.toString());
7793  }
7794  function push(url, key, object) {
7795    let state = window.history.state || {};
7796    if (!state.alpine)
7797      state.alpine = {};
7798    state = { alpine: { ...state.alpine, ...{ [key]: unwrap(object) } } };
7799    window.history.pushState(state, "", url.toString());
7800  }
7801  function unwrap(object) {
7802    if (object === void 0)
7803      return void 0;
7804    return JSON.parse(JSON.stringify(object));
7805  }
7806  function queryStringUtils() {
7807    return {
7808      has(url, key) {
7809        let search = url.search;
7810        if (!search)
7811          return false;
7812        let data2 = fromQueryString(search);
7813        return Object.keys(data2).includes(key);
7814      },
7815      get(url, key) {
7816        let search = url.search;
7817        if (!search)
7818          return false;
7819        let data2 = fromQueryString(search);
7820        return data2[key];
7821      },
7822      set(url, key, value) {
7823        let data2 = fromQueryString(url.search);
7824        data2[key] = stripNulls(unwrap(value));
7825        url.search = toQueryString(data2);
7826        return url;
7827      },
7828      remove(url, key) {
7829        let data2 = fromQueryString(url.search);
7830        delete data2[key];
7831        url.search = toQueryString(data2);
7832        return url;
7833      }
7834    };
7835  }
7836  function stripNulls(value) {
7837    if (!isObjecty(value))
7838      return value;
7839    for (let key in value) {
7840      if (value[key] === null)
7841        delete value[key];
7842      else
7843        value[key] = stripNulls(value[key]);
7844    }
7845    return value;
7846  }
7847  function toQueryString(data2) {
7848    let isObjecty2 = (subject) => typeof subject === "object" && subject !== null;
7849    let buildQueryStringEntries = (data3, entries2 = {}, baseKey = "") => {
7850      Object.entries(data3).forEach(([iKey, iValue]) => {
7851        let key = baseKey === "" ? iKey : `${baseKey}[${iKey}]`;
7852        if (iValue === null) {
7853          entries2[key] = "";
7854        } else if (!isObjecty2(iValue)) {
7855          entries2[key] = encodeURIComponent(iValue).replaceAll("%20", "+").replaceAll("%2C", ",");
7856        } else {
7857          entries2 = { ...entries2, ...buildQueryStringEntries(iValue, entries2, key) };
7858        }
7859      });
7860      return entries2;
7861    };
7862    let entries = buildQueryStringEntries(data2);
7863    return Object.entries(entries).map(([key, value]) => `${key}=${value}`).join("&");
7864  }
7865  function fromQueryString(search) {
7866    search = search.replace("?", "");
7867    if (search === "")
7868      return {};
7869    let insertDotNotatedValueIntoData = (key, value, data3) => {
7870      let [first2, second, ...rest] = key.split(".");
7871      if (!second)
7872        return data3[key] = value;
7873      if (data3[first2] === void 0) {
7874        data3[first2] = isNaN(second) ? {} : [];
7875      }
7876      insertDotNotatedValueIntoData([second, ...rest].join("."), value, data3[first2]);
7877    };
7878    let entries = search.split("&").map((i) => i.split("="));
7879    let data2 = /* @__PURE__ */ Object.create(null);
7880    entries.forEach(([key, value]) => {
7881      value = decodeURIComponent(value.replaceAll("+", "%20"));
7882      if (!key.includes("[")) {
7883        data2[key] = value;
7884      } else {
7885        let dotNotatedKey = key.replaceAll("[", ".").replaceAll("]", "");
7886        insertDotNotatedValueIntoData(dotNotatedKey, value, data2);
7887      }
7888    });
7889    return data2;
7890  }
7891
7892  
7892// ../alpine/packages/morph/dist/module.esm.js
7893  function morph(from, toHtml, options) {
7894    monkeyPatchDomSetAttributeToAllowAtSymbols();
7895    let fromEl;
7896    let toEl;
7897    let key, lookahead, updating, updated, removing, removed, adding, added;
7898    function assignOptions(options2 = {}) {
7899      let defaultGetKey = (el) => el.getAttribute("key");
7900      let noop = () => {
7901      };
7902      updating = options2.updating || noop;
7903      updated = options2.updated || noop;
7904      removing = options2.removing || noop;
7905      removed = options2.removed || noop;
7906      adding = options2.adding || noop;
7907      added = options2.added || noop;
7908      key = options2.key || defaultGetKey;
7909      lookahead = options2.lookahead || false;
7910    }
7911    function patch(from2, to) {
7912      if (differentElementNamesTypesOrKeys(from2, to)) {
7913        return swapElements(from2, to);
7914      }
7915      let updateChildrenOnly = false;
7916      if (shouldSkip(updating, from2, to, () => updateChildrenOnly = true))
7917        return;
7918      if (from2.nodeType === 1 && window.Alpine) {
7919        window.Alpine.cloneNode(from2, to);
7920      }
7921      if (textOrComment(to)) {
7922        patchNodeValue(from2, to);
7923        updated(from2, to);
7924        return;
7925      }
7926      if (!updateChildrenOnly) {
7927        patchAttributes(from2, to);
7928      }
7929      updated(from2, to);
7930      patchChildren(from2, to);
7931    }
7932    function differentElementNamesTypesOrKeys(from2, to) {
7933      return from2.nodeType != to.nodeType || from2.nodeName != to.nodeName || getKey(from2) != getKey(to);
7934    }
7935    function swapElements(from2, to) {
7936      if (shouldSkip(removing, from2))
7937        return;
7938      let toCloned = to.cloneNode(true);
7939      if (shouldSkip(adding, toCloned))
7940        return;
7941      from2.replaceWith(toCloned);
7942      removed(from2);
7943      added(toCloned);
7944    }
7945    function patchNodeValue(from2, to) {
7946      let value = to.nodeValue;
7947      if (from2.nodeValue !== value) {
7948        from2.nodeValue = value;
7949      }
7950    }
7951    function patchAttributes(from2, to) {
7952      if (from2._x_transitioning)
7953        return;
7954      if (from2._x_isShown && !to._x_isShown) {
7955        return;
7956      }
7957      if (!from2._x_isShown && to._x_isShown) {
7958        return;
7959      }
7960      let domAttributes = Array.from(from2.attributes);
7961      let toAttributes = Array.from(to.attributes);
7962      for (let i = domAttributes.length - 1; i >= 0; i--) {
7963        let name = domAttributes[i].name;
7964        if (!to.hasAttribute(name)) {
7965          from2.removeAttribute(name);
7966        }
7967      }
7968      for (let i = toAttributes.length - 1; i >= 0; i--) {
7969        let name = toAttributes[i].name;
7970        let value = toAttributes[i].value;
7971        if (from2.getAttribute(name) !== value) {
7972          from2.setAttribute(name, value);
7973        }
7974      }
7975    }
7976    function patchChildren(from2, to) {
7977      if (from2._x_teleport)
7978        from2 = from2._x_teleport;
7979      if (to._x_teleport)
7980        to = to._x_teleport;
7981      let fromKeys = keyToMap(from2.children);
7982      let fromKeyHoldovers = {};
7983      let currentTo = getFirstNode(to);
7984      let currentFrom = getFirstNode(from2);
7985      while (currentTo) {
7986        seedingMatchingId(currentTo, currentFrom);
7987        let toKey = getKey(currentTo);
7988        let fromKey = getKey(currentFrom);
7989        if (!currentFrom) {
7990          if (toKey && fromKeyHoldovers[toKey]) {
7991            let holdover = fromKeyHoldovers[toKey];
7992            from2.appendChild(holdover);
7993            currentFrom = holdover;
7994          } else {
7995            if (!shouldSkip(adding, currentTo)) {
7996              let clone2 = currentTo.cloneNode(true);
7997              from2.appendChild(clone2);
7998              added(clone2);
7999            }
8000            currentTo = getNextSibling(to, currentTo);
8001            continue;
8002          }
8003        }
8004        let isIf = (node) => node && node.nodeType === 8 && node.textContent === "[if BLOCK]><![endif]";
8005        let isEnd = (node) => node && node.nodeType === 8 && node.textContent === "[if ENDBLOCK]><![endif]";
8006        if (isIf(currentTo) && isIf(currentFrom)) {
8007          let nestedIfCount = 0;
8008          let fromBlockStart = currentFrom;
8009          while (currentFrom) {
8010            let next = getNextSibling(from2, currentFrom);
8011            if (isIf(next)) {
8012              nestedIfCount++;
8013            } else if (isEnd(next) && nestedIfCount > 0) {
8014              nestedIfCount--;
8015            } else if (isEnd(next) && nestedIfCount === 0) {
8016              currentFrom = next;
8017              break;
8018            }
8019            currentFrom = next;
8020          }
8021          let fromBlockEnd = currentFrom;
8022          nestedIfCount = 0;
8023          let toBlockStart = currentTo;
8024          while (currentTo) {
8025            let next = getNextSibling(to, currentTo);
8026            if (isIf(next)) {
8027              nestedIfCount++;
8028            } else if (isEnd(next) && nestedIfCount > 0) {
8029              nestedIfCount--;
8030            } else if (isEnd(next) && nestedIfCount === 0) {
8031              currentTo = next;
8032              break;
8033            }
8034            currentTo = next;
8035          }
8036          let toBlockEnd = currentTo;
8037          let fromBlock = new Block(fromBlockStart, fromBlockEnd);
8038          let toBlock = new Block(toBlockStart, toBlockEnd);
8039          patchChildren(fromBlock, toBlock);
8040          continue;
8041        }
8042        if (currentFrom.nodeType === 1 && lookahead && !currentFrom.isEqualNode(currentTo)) {
8043          let nextToElementSibling = getNextSibling(to, currentTo);
8044          let found = false;
8045          while (!found && nextToElementSibling) {
8046            if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) {
8047              found = true;
8048              currentFrom = addNodeBefore(from2, currentTo, currentFrom);
8049              fromKey = getKey(currentFrom);
8050            }
8051            nextToElementSibling = getNextSibling(to, nextToElementSibling);
8052          }
8053        }
8054        if (toKey !== fromKey) {
8055          if (!toKey && fromKey) {
8056            fromKeyHoldovers[fromKey] = currentFrom;
8057            currentFrom = addNodeBefore(from2, currentTo, currentFrom);
8058            fromKeyHoldovers[fromKey].remove();
8059            currentFrom = getNextSibling(from2, currentFrom);
8060            currentTo = getNextSibling(to, currentTo);
8061            continue;
8062          }
8063          if (toKey && !fromKey) {
8064            if (fromKeys[toKey]) {
8065              currentFrom.replaceWith(fromKeys[toKey]);
8066              currentFrom = fromKeys[toKey];
8067            }
8068          }
8069          if (toKey && fromKey) {
8070            let fromKeyNode = fromKeys[toKey];
8071            if (fromKeyNode) {
8072              fromKeyHoldovers[fromKey] = currentFrom;
8073              currentFrom.replaceWith(fromKeyNode);
8074              currentFrom = fromKeyNode;
8075            } else {
8076              fromKeyHoldovers[fromKey] = currentFrom;
8077              currentFrom = addNodeBefore(from2, currentTo, currentFrom);
8078              fromKeyHoldovers[fromKey].remove();
8079              currentFrom = getNextSibling(from2, currentFrom);
8080              currentTo = getNextSibling(to, currentTo);
8081              continue;
8082            }
8083          }
8084        }
8085        let currentFromNext = currentFrom && getNextSibling(from2, currentFrom);
8086        patch(currentFrom, currentTo);
8087        currentTo = currentTo && getNextSibling(to, currentTo);
8088        currentFrom = currentFromNext;
8089      }
8090      let removals = [];
8091      while (currentFrom) {
8092        if (!shouldSkip(removing, currentFrom))
8093          removals.push(currentFrom);
8094        currentFrom = getNextSibling(from2, currentFrom);
8095      }
8096      while (removals.length) {
8097        let domForRemoval = removals.shift();
8098        domForRemoval.remove();
8099        removed(domForRemoval);
8100      }
8101    }
8102    function getKey(el) {
8103      return el && el.nodeType === 1 && key(el);
8104    }
8105    function keyToMap(els2) {
8106      let map = {};
8107      for (let el of els2) {
8108        let theKey = getKey(el);
8109        if (theKey) {
8110          map[theKey] = el;
8111        }
8112      }
8113      return map;
8114    }
8115    function addNodeBefore(parent, node, beforeMe) {
8116      if (!shouldSkip(adding, node)) {
8117        let clone2 = node.cloneNode(true);
8118        parent.insertBefore(clone2, beforeMe);
8119        added(clone2);
8120        return clone2;
8121      }
8122      return node;
8123    }
8124    assignOptions(options);
8125    fromEl = from;
8126    toEl = typeof toHtml === "string" ? createElement(toHtml) : toHtml;
8127    if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) {
8128      toEl._x_dataStack = window.Alpine.closestDataStack(from);
8129      toEl._x_dataStack && window.Alpine.cloneNode(from, toEl);
8130    }
8131    patch(from, toEl);
8132    fromEl = void 0;
8133    toEl = void 0;
8134    return from;
8135  }
8136  morph.step = () => {
8137  };
8138  morph.log = () => {
8139  };
8140  function shouldSkip(hook, ...args) {
8141    let skip = false;
8142    hook(...args, () => skip = true);
8143    return skip;
8144  }
8145  var patched = false;
8146  function createElement(html) {
8147    const template = document.createElement("template");
8148    template.innerHTML = html;
8149    return template.content.firstElementChild;
8150  }
8151  function textOrComment(el) {
8152    return el.nodeType === 3 || el.nodeType === 8;
8153  }
8154  var Block = class {
8155    constructor(start3, end) {
8156      this.startComment = start3;
8157      this.endComment = end;
8158    }
8159    get children() {
8160      let children = [];
8161      let currentNode = this.startComment.nextSibling;
8162      while (currentNode && currentNode !== this.endComment) {
8163        children.push(currentNode);
8164        currentNode = currentNode.nextSibling;
8165      }
8166      return children;
8167    }
8168    appendChild(child) {
8169      this.endComment.before(child);
8170    }
8171    get firstChild() {
8172      let first2 = this.startComment.nextSibling;
8173      if (first2 === this.endComment)
8174        return;
8175      return first2;
8176    }
8177    nextNode(reference) {
8178      let next = reference.nextSibling;
8179      if (next === this.endComment)
8180        return;
8181      return next;
8182    }
8183    insertBefore(newNode, reference) {
8184      reference.before(newNode);
8185      return newNode;
8186    }
8187  };
8188  function getFirstNode(parent) {
8189    return parent.firstChild;
8190  }
8191  function getNextSibling(parent, reference) {
8192    let next;
8193    if (parent instanceof Block) {
8194      next = parent.nextNode(reference);
8195    } else {
8196      next = reference.nextSibling;
8197    }
8198    return next;
8199  }
8200  function monkeyPatchDomSetAttributeToAllowAtSymbols() {
8201    if (patched)
8202      return;
8203    patched = true;
8204    let original = Element.prototype.setAttribute;
8205    let hostDiv = document.createElement("div");
8206    Element.prototype.setAttribute = function newSetAttribute(name, value) {
8207      if (!name.includes("@")) {
8208        return original.call(this, name, value);
8209      }
8210      hostDiv.innerHTML = `<span ${name}="${value}"></span>`;
8211      let attr = hostDiv.firstElementChild.getAttributeNode(name);
8212      hostDiv.firstElementChild.removeAttributeNode(attr);
8213      this.setAttributeNode(attr);
8214    };
8215  }
8216  function seedingMatchingId(to, from) {
8217    let fromId = from && from._x_bindings && from._x_bindings.id;
8218    if (!fromId)
8219      return;
8220    to.setAttribute("id", fromId);
8221    to.id = fromId;
8222  }
8223  function src_default7(Alpine3) {
8224    Alpine3.morph = morph;
8225  }
8226  var module_default7 = src_default7;
8227
8228  
8228// ../alpine/packages/mask/dist/module.esm.js
8229  function src_default8(Alpine3) {
8230    Alpine3.directive("mask", (el, { value, expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup: cleanup3 }) => {
8231      let templateFn = () => expression;
8232      let lastInputValue = "";
8233      queueMicrotask(() => {
8234        if (["function", "dynamic"].includes(value)) {
8235          let evaluator = evaluateLater2(expression);
8236          effect3(() => {
8237            templateFn = (input) => {
8238              let result;
8239              Alpine3.dontAutoEvaluateFunctions(() => {
8240                evaluator((value2) => {
8241                  result = typeof value2 === "function" ? value2(input) : value2;
8242                }, { scope: {
8243                  "$input": input,
8244                  "$money": formatMoney.bind({ el })
8245                } });
8246              });
8247              return result;
8248            };
8249            processInputValue(el, false);
8250          });
8251        } else {
8252          processInputValue(el, false);
8253        }
8254        if (el._x_model)
8255          el._x_model.set(el.value);
8256      });
8257      const controller = new AbortController();
8258      cleanup3(() => {
8259        controller.abort();
8260      });
8261      el.addEventListener("input", () => processInputValue(el), {
8262        signal: controller.signal,
8263        capture: true
8264      });
8265      el.addEventListener("blur", () => processInputValue(el, false), { signal: controller.signal });
8266      function processInputValue(el2, shouldRestoreCursor = true) {
8267        let input = el2.value;
8268        let template = templateFn(input);
8269        if (!template || template === "false")
8270          return false;
8271        if (lastInputValue.length - el2.value.length === 1) {
8272          return lastInputValue = el2.value;
8273        }
8274        let setInput = () => {
8275          lastInputValue = el2.value = formatInput(input, template);
8276        };
8277        if (shouldRestoreCursor) {
8278          restoreCursorPosition(el2, template, () => {
8279            setInput();
8280          });
8281        } else {
8282          setInput();
8283        }
8284      }
8285      function formatInput(input, template) {
8286        if (input === "")
8287          return "";
8288        let strippedDownInput = stripDown(template, input);
8289        let rebuiltInput = buildUp(template, strippedDownInput);
8290        return rebuiltInput;
8291      }
8292    }).before("model");
8293  }
8294  function restoreCursorPosition(el, template, callback) {
8295    let cursorPosition = el.selectionStart;
8296    let unformattedValue = el.value;
8297    callback();
8298    let beforeLeftOfCursorBeforeFormatting = unformattedValue.slice(0, cursorPosition);
8299    let newPosition = buildUp(template, stripDown(template, beforeLeftOfCursorBeforeFormatting)).length;
8300    el.setSelectionRange(newPosition, newPosition);
8301  }
8302  function stripDown(template, input) {
8303    let inputToBeStripped = input;
8304    let output = "";
8305    let regexes = {
8306      "9": /[0-9]/,
8307      "a": /[a-zA-Z]/,
8308      "*": /[a-zA-Z0-9]/
8309    };
8310    let wildcardTemplate = "";
8311    for (let i = 0; i < template.length; i++) {
8312      if (["9", "a", "*"].includes(template[i])) {
8313        wildcardTemplate += template[i];
8314        continue;
8315      }
8316      for (let j = 0; j < inputToBeStripped.length; j++) {
8317        if (inputToBeStripped[j] === template[i]) {
8318          inputToBeStripped = inputToBeStripped.slice(0, j) + inputToBeStripped.slice(j + 1);
8319          break;
8320        }
8321      }
8322    }
8323    for (let i = 0; i < wildcardTemplate.length; i++) {
8324      let found = false;
8325      for (let j = 0; j < inputToBeStripped.length; j++) {
8326        if (regexes[wildcardTemplate[i]].test(inputToBeStripped[j])) {
8327          output += inputToBeStripped[j];
8328          inputToBeStripped = inputToBeStripped.slice(0, j) + inputToBeStripped.slice(j + 1);
8329          found = true;
8330          break;
8331        }
8332      }
8333      if (!found)
8334        break;
8335    }
8336    return output;
8337  }
8338  function buildUp(template, input) {
8339    let clean = Array.from(input);
8340    let output = "";
8341    for (let i = 0; i < template.length; i++) {
8342      if (!["9", "a", "*"].includes(template[i])) {
8343        output += template[i];
8344        continue;
8345      }
8346      if (clean.length === 0)
8347        break;
8348      output += clean.shift();
8349    }
8350    return output;
8351  }
8352  function formatMoney(input, delimiter = ".", thousands, precision = 2) {
8353    if (input === "-")
8354      return "-";
8355    if (/^\D+$/.test(input))
8356      return "9";
8357    if (thousands === null || thousands === void 0) {
8358      thousands = delimiter === "," ? "." : ",";
8359    }
8360    let addThousands = (input2, thousands2) => {
8361      let output = "";
8362      let counter = 0;
8363      for (let i = input2.length - 1; i >= 0; i--) {
8364        if (input2[i] === thousands2)
8365          continue;
8366        if (counter === 3) {
8367          output = input2[i] + thousands2 + output;
8368          counter = 0;
8369        } else {
8370          output = input2[i] + output;
8371        }
8372        counter++;
8373      }
8374      return output;
8375    };
8376    let minus = input.startsWith("-") ? "-" : "";
8377    let strippedInput = input.replaceAll(new RegExp(`[^0-9\\${delimiter}]`, "g"), "");
8378    let template = Array.from({ length: strippedInput.split(delimiter)[0].length }).fill("9").join("");
8379    template = `${minus}${addThousands(template, thousands)}`;
8380    if (precision > 0 && input.includes(delimiter))
8381      template += `${delimiter}` + "9".repeat(precision);
8382    queueMicrotask(() => {
8383      if (this.el.value.endsWith(delimiter))
8384        return;
8385      if (this.el.value[this.el.selectionStart - 1] === delimiter) {
8386        this.el.setSelectionRange(this.el.selectionStart - 1, this.el.selectionStart - 1);
8387      }
8388    });
8389    return template;
8390  }
8391  var module_default8 = src_default8;
8392
8393  
8393// js/lifecycle.js
8394  function start2() {
8395    setTimeout(() => ensureLivewireScriptIsntMisplaced());
8396    dispatch(document, "livewire:init");
8397    dispatch(document, "livewire:initializing");
8398    module_default.plugin(module_default7);
8399    module_default.plugin(history2);
8400    module_default.plugin(module_default5);
8401    module_default.plugin(module_default2);
8402    module_default.plugin(module_default6);
8403    module_default.plugin(module_default3);
8404    module_default.plugin(module_default4);
8405    module_default.plugin(navigate_default);
8406    module_default.plugin(module_default8);
8407    module_default.addRootSelector(() => "[wire\\:id]");
8408    module_default.onAttributesAdded((el, attributes) => {
8409      if (!Array.from(attributes).some((attribute) => matchesForLivewireDirective(attribute.name)))
8410        return;
8411      let component = closestComponent(el, false);
8412      if (!component)
8413        return;
8414      attributes.forEach((attribute) => {
8415        if (!matchesForLivewireDirective(attribute.name))
8416          return;
8417        let directive3 = extractDirective(el, attribute.name);
8418        trigger2("directive.init", { el, component, directive: directive3, cleanup: (callback) => {
8419          module_default.onAttributeRemoved(el, directive3.raw, callback);
8420        } });
8421      });
8422    });
8423    module_default.interceptInit(module_default.skipDuringClone((el) => {
8424      if (!Array.from(el.attributes).some((attribute) => matchesForLivewireDirective(attribute.name)))
8425        return;
8426      if (el.hasAttribute("wire:id")) {
8427        let component2 = initComponent(el);
8428        module_default.onAttributeRemoved(el, "wire:id", () => {
8429          destroyComponent(component2.id);
8430        });
8431      }
8432      let component = closestComponent(el, false);
8433      if (component) {
8434        trigger2("element.init", { el, component });
8435        let directives2 = Array.from(el.getAttributeNames()).filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(el, name));
8436        directives2.forEach((directive3) => {
8437          trigger2("directive.init", { el, component, directive: directive3, cleanup: (callback) => {
8438            module_default.onAttributeRemoved(el, directive3.raw, callback);
8439          } });
8440        });
8441      }
8442    }));
8443    module_default.start();
8444    setTimeout(() => window.Livewire.initialRenderIsFinished = true);
8445    dispatch(document, "livewire:initialized");
8446  }
8447  function ensureLivewireScriptIsntMisplaced() {
8448    let el = document.querySelector("script[data-update-uri][data-csrf]");
8449    if (!el)
8450      return;
8451    let livewireEl = el.closest("[wire\\:id]");
8452    if (livewireEl) {
8453      console.warn("Livewire: missing closing tags found. Ensure your template elements contain matching closing tags.", livewireEl);
8454    }
8455  }
8456
8457  
8457// js/features/supportDisablingFormsDuringRequest.js
8458  var cleanupStackByComponentId = {};
8459  on2("element.init", ({ el, component }) => setTimeout(() => {
8460    let directives2 = getDirectives(el);
8461    if (directives2.missing("submit"))
8462      return;
8463    el.addEventListener("submit", () => {
8464      cleanupStackByComponentId[component.id] = [];
8465      module_default.walk(component.el, (node, skip) => {
8466        if (!el.contains(node))
8467          return;
8468        if (node.hasAttribute("wire:ignore"))
8469          return skip();
8470        if (node.tagName.toLowerCase() === "button" && node.type === "submit" || node.tagName.toLowerCase() === "select" || node.tagName.toLowerCase() === "input" && (node.type === "checkbox" || node.type === "radio")) {
8471          if (!node.disabled)
8472            cleanupStackByComponentId[component.id].push(() => node.disabled = false);
8473          node.disabled = true;
8474        } else if (node.tagName.toLowerCase() === "input" || node.tagName.toLowerCase() === "textarea") {
8475          if (!node.readOnly)
8476            cleanupStackByComponentId[component.id].push(() => node.readOnly = false);
8477          node.readOnly = true;
8478        }
8479      });
8480    });
8481  }));
8482  on2("commit", ({ component, respond }) => {
8483    respond(() => {
8484      cleanup2(component);
8485    });
8486  });
8487  function cleanup2(component) {
8488    if (!cleanupStackByComponentId[component.id])
8489      return;
8490    while (cleanupStackByComponentId[component.id].length > 0) {
8491      cleanupStackByComponentId[component.id].shift()();
8492    }
8493  }
8494
8495  
8495// js/features/supportPropsAndModelables.js
8496  on2("commit.pooling", ({ commits }) => {
8497    commits.forEach((commit) => {
8498      let component = commit.component;
8499      getDeepChildrenWithBindings(component, (child) => {
8500        child.$wire.$commit();
8501      });
8502    });
8503  });
8504  on2("commit.pooled", ({ pools }) => {
8505    let commits = getPooledCommits(pools);
8506    commits.forEach((commit) => {
8507      let component = commit.component;
8508      getDeepChildrenWithBindings(component, (child) => {
8509        colocateCommitsByComponent(pools, component, child);
8510      });
8511    });
8512  });
8513  function getPooledCommits(pools) {
8514    let commits = [];
8515    pools.forEach((pool) => {
8516      pool.commits.forEach((commit) => {
8517        commits.push(commit);
8518      });
8519    });
8520    return commits;
8521  }
8522  function colocateCommitsByComponent(pools, component, foreignComponent) {
8523    let pool = findPoolWithComponent(pools, component);
8524    let foreignPool = findPoolWithComponent(pools, foreignComponent);
8525    let foreignCommit = foreignPool.findCommitByComponent(foreignComponent);
8526    foreignPool.delete(foreignCommit);
8527    pool.add(foreignCommit);
8528    pools.forEach((pool2) => {
8529      if (pool2.empty())
8530        pools.delete(pool2);
8531    });
8532  }
8533  function findPoolWithComponent(pools, component) {
8534    for (let [idx, pool] of pools.entries()) {
8535      if (pool.hasCommitFor(component))
8536        return pool;
8537    }
8538  }
8539  function getDeepChildrenWithBindings(component, callback) {
8540    getDeepChildren(component, (child) => {
8541      if (hasReactiveProps(child) || hasWireModelableBindings(child)) {
8542        callback(child);
8543      }
8544    });
8545  }
8546  function hasReactiveProps(component) {
8547    let meta = component.snapshot.memo;
8548    let props = meta.props;
8549    return !!props;
8550  }
8551  function hasWireModelableBindings(component) {
8552    let meta = component.snapshot.memo;
8553    let bindings = meta.bindings;
8554    return !!bindings;
8555  }
8556  function getDeepChildren(component, callback) {
8557    component.children.forEach((child) => {
8558      callback(child);
8559      getDeepChildren(child, callback);
8560    });
8561  }
8562
8563  
8563// js/features/supportScriptsAndAssets.js
8564  var executedScripts = /* @__PURE__ */ new WeakMap();
8565  var executedAssets = /* @__PURE__ */ new Set();
8566  on2("payload.intercept", async ({ assets }) => {
8567    if (!assets)
8568      return;
8569    for (let [key, asset] of Object.entries(assets)) {
8570      await onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, async () => {
8571        await addAssetsToHeadTagOfPage(asset);
8572      });
8573    }
8574  });
8575  on2("component.init", ({ component }) => {
8576    let assets = component.snapshot.memo.assets;
8577    if (assets) {
8578      assets.forEach((key) => {
8579        if (executedAssets.has(key))
8580          return;
8581        executedAssets.add(key);
8582      });
8583    }
8584  });
8585  on2("effect", ({ component, effects }) => {
8586    let scripts = effects.scripts;
8587    if (scripts) {
8588      Object.entries(scripts).forEach(([key, content]) => {
8589        onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, () => {
8590          let scriptContent = extractScriptTagContent(content);
8591          module_default.dontAutoEvaluateFunctions(() => {
8592            module_default.evaluate(component.el, scriptContent, { "$wire": component.$wire });
8593          });
8594        });
8595      });
8596    }
8597  });
8598  function onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, callback) {
8599    if (executedScripts.has(component)) {
8600      let alreadyRunKeys2 = executedScripts.get(component);
8601      if (alreadyRunKeys2.includes(key))
8602        return;
8603    }
8604    callback();
8605    if (!executedScripts.has(component))
8606      executedScripts.set(component, []);
8607    let alreadyRunKeys = executedScripts.get(component);
8608    alreadyRunKeys.push(key);
8609    executedScripts.set(component, alreadyRunKeys);
8610  }
8611  function extractScriptTagContent(rawHtml) {
8612    let scriptRegex = /<script\b[^>]*>([\s\S]*?)<\/script>/gm;
8613    let matches2 = scriptRegex.exec(rawHtml);
8614    let innards = matches2 && matches2[1] ? matches2[1].trim() : "";
8615    return innards;
8616  }
8617  async function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callback) {
8618    if (executedAssets.has(key))
8619      return;
8620    await callback();
8621    executedAssets.add(key);
8622  }
8623  async function addAssetsToHeadTagOfPage(rawHtml) {
8624    let newDocument = new DOMParser().parseFromString(rawHtml, "text/html");
8625    let newHead = document.adoptNode(newDocument.head);
8626    for (let child of newHead.children) {
8627      try {
8628        await runAssetSynchronously(child);
8629      } catch (error2) {
8630      }
8631    }
8632  }
8633  async function runAssetSynchronously(child) {
8634    return new Promise((resolve, reject) => {
8635      if (isScript2(child)) {
8636        let script = cloneScriptTag2(child);
8637        if (script.src) {
8638          script.onload = () => resolve();
8639          script.onerror = () => reject();
8640        } else {
8641          resolve();
8642        }
8643        document.head.appendChild(script);
8644      } else {
8645        document.head.appendChild(child);
8646        resolve();
8647      }
8648    });
8649  }
8650  function isScript2(el) {
8651    return el.tagName.toLowerCase() === "script";
8652  }
8653  function cloneScriptTag2(el) {
8654    let script = document.createElement("script");
8655    script.textContent = el.textContent;
8656    script.async = el.async;
8657    for (let attr of el.attributes) {
8658      script.setAttribute(attr.name, attr.value);
8659    }
8660    return script;
8661  }
8662
8663  
8663// js/features/supportFileDownloads.js
8664  on2("commit", ({ succeed }) => {
8665    succeed(({ effects }) => {
8666      let download = effects.download;
8667      if (!download)
8668        return;
8669      let urlObject = window.webkitURL || window.URL;
8670      let url = urlObject.createObjectURL(base64toBlob(download.content, download.contentType));
8671      let invisibleLink = document.createElement("a");
8672      invisibleLink.style.display = "none";
8673      invisibleLink.href = url;
8674      invisibleLink.download = download.name;
8675      document.body.appendChild(invisibleLink);
8676      invisibleLink.click();
8677      setTimeout(function() {
8678        urlObject.revokeObjectURL(url);
8679      }, 0);
8680    });
8681  });
8682  function base64toBlob(b64Data, contentType = "", sliceSize = 512) {
8683    const byteCharacters = atob(b64Data);
8684    const byteArrays = [];
8685    if (contentType === null)
8686      contentType = "";
8687    for (let offset2 = 0; offset2 < byteCharacters.length; offset2 += sliceSize) {
8688      let slice = byteCharacters.slice(offset2, offset2 + sliceSize);
8689      let byteNumbers = new Array(slice.length);
8690      for (let i = 0; i < slice.length; i++) {
8691        byteNumbers[i] = slice.charCodeAt(i);
8692      }
8693      let byteArray = new Uint8Array(byteNumbers);
8694      byteArrays.push(byteArray);
8695    }
8696    return new Blob(byteArrays, { type: contentType });
8697  }
8698
8699  
8699// js/features/supportJsEvaluation.js
8700  on2("effect", ({ component, effects }) => {
8701    let js = effects.js;
8702    let xjs = effects.xjs;
8703    if (js) {
8704      Object.entries(js).forEach(([method, body]) => {
8705        overrideMethod(component, method, () => {
8706          module_default.evaluate(component.el, body);
8707        });
8708      });
8709    }
8710    if (xjs) {
8711      xjs.forEach((expression) => {
8712        module_default.evaluate(component.el, expression);
8713      });
8714    }
8715  });
8716
8717  
8717// js/features/supportLazyLoading.js
8718  var componentsThatWantToBeBundled = /* @__PURE__ */ new WeakSet();
8719  var componentsThatAreLazy = /* @__PURE__ */ new WeakSet();
8720  on2("component.init", ({ component }) => {
8721    let memo = component.snapshot.memo;
8722    if (memo.lazyLoaded === void 0)
8723      return;
8724    componentsThatAreLazy.add(component);
8725    if (memo.lazyIsolated !== void 0 && memo.lazyIsolated === false) {
8726      componentsThatWantToBeBundled.add(component);
8727    }
8728  });
8729  on2("commit.pooling", ({ commits }) => {
8730    commits.forEach((commit) => {
8731      if (!componentsThatAreLazy.has(commit.component))
8732        return;
8733      if (componentsThatWantToBeBundled.has(commit.component)) {
8734        commit.isolate = false;
8735        componentsThatWantToBeBundled.delete(commit.component);
8736      } else {
8737        commit.isolate = true;
8738      }
8739      componentsThatAreLazy.delete(commit.component);
8740    });
8741  });
8742
8743  
8743// js/features/supportQueryString.js
8744  on2("effect", ({ component, effects, cleanup: cleanup3 }) => {
8745    let queryString = effects["url"];
8746    if (!queryString)
8747      return;
8748    Object.entries(queryString).forEach(([key, value]) => {
8749      let { name, as, use, alwaysShow, except } = normalizeQueryStringEntry(key, value);
8750      if (!as)
8751        as = name;
8752      let initialValue = [false, null, void 0].includes(except) ? dataGet(component.ephemeral, name) : except;
8753      let { replace: replace2, push: push2, pop } = track2(as, initialValue, alwaysShow);
8754      if (use === "replace") {
8755        let effectReference = module_default.effect(() => {
8756          replace2(dataGet(component.reactive, name));
8757        });
8758        cleanup3(() => module_default.release(effectReference));
8759      } else if (use === "push") {
8760        let forgetCommitHandler = on2("commit", ({ component: commitComponent, succeed }) => {
8761          if (component !== commitComponent)
8762            return;
8763          let beforeValue = dataGet(component.canonical, name);
8764          succeed(() => {
8765            let afterValue = dataGet(component.canonical, name);
8766            if (JSON.stringify(beforeValue) === JSON.stringify(afterValue))
8767              return;
8768            push2(afterValue);
8769          });
8770        });
8771        let forgetPopHandler = pop(async (newValue) => {
8772          await component.$wire.set(name, newValue);
8773          document.querySelectorAll("input").forEach((el) => {
8774            el._x_forceModelUpdate && el._x_forceModelUpdate(el._x_model.get());
8775          });
8776        });
8777        cleanup3(() => {
8778          forgetCommitHandler();
8779          forgetPopHandler();
8780        });
8781      }
8782    });
8783  });
8784  function normalizeQueryStringEntry(key, value) {
8785    let defaults = { use: "replace", alwaysShow: false };
8786    if (typeof value === "string") {
8787      return { ...defaults, name: value, as: value };
8788    } else {
8789      let fullerDefaults = { ...defaults, name: key, as: key };
8790      return { ...fullerDefaults, ...value };
8791    }
8792  }
8793
8794  
8794// js/features/supportLaravelEcho.js
8795  on2("request", ({ options }) => {
8796    if (window.Echo) {
8797      options.headers["X-Socket-ID"] = window.Echo.socketId();
8798    }
8799  });
8800  on2("effect", ({ component, effects }) => {
8801    let listeners2 = effects.listeners || [];
8802    listeners2.forEach((event) => {
8803      if (event.startsWith("echo")) {
8804        if (typeof window.Echo === "undefined") {
8805          console.warn("Laravel Echo cannot be found");
8806          return;
8807        }
8808        let event_parts = event.split(/(echo:|echo-)|:|,/);
8809        if (event_parts[1] == "echo:") {
8810          event_parts.splice(2, 0, "channel", void 0);
8811        }
8812        if (event_parts[2] == "notification") {
8813          event_parts.push(void 0, void 0);
8814        }
8815        let [
8816          s1,
8817          signature,
8818          channel_type,
8819          s2,
8820          channel,
8821          s3,
8822          event_name
8823        ] = event_parts;
8824        if (["channel", "private", "encryptedPrivate"].includes(channel_type)) {
8825          let handler4 = (e) => dispatchSelf(component, event, [e]);
8826          window.Echo[channel_type](channel).listen(event_name, handler4);
8827          component.addCleanup(() => {
8828            window.Echo[channel_type](channel).stopListening(event_name, handler4);
8829          });
8830        } else if (channel_type == "presence") {
8831          if (["here", "joining", "leaving"].includes(event_name)) {
8832            window.Echo.join(channel)[event_name]((e) => {
8833              dispatchSelf(component, event, [e]);
8834            });
8835          } else {
8836            let handler4 = (e) => dispatchSelf(component, event, [e]);
8837            window.Echo.join(channel).listen(event_name, handler4);
8838            component.addCleanup(() => {
8839              window.Echo.leaveChannel(channel);
8840            });
8841          }
8842        } else if (channel_type == "notification") {
8843          window.Echo.private(channel).notification((notification) => {
8844            dispatchSelf(component, event, [notification]);
8845          });
8846        } else {
8847          console.warn("Echo channel type not yet supported");
8848        }
8849      }
8850    });
8851  });
8852
8853  
8853// js/features/supportIsolating.js
8854  var componentsThatAreIsolated = /* @__PURE__ */ new WeakSet();
8855  on2("component.init", ({ component }) => {
8856    let memo = component.snapshot.memo;
8857    if (memo.isolate !== true)
8858      return;
8859    componentsThatAreIsolated.add(component);
8860  });
8861  on2("commit.pooling", ({ commits }) => {
8862    commits.forEach((commit) => {
8863      if (!componentsThatAreIsolated.has(commit.component))
8864        return;
8865      commit.isolate = true;
8866    });
8867  });
8868
8869  
8869// js/features/supportNavigate.js
8870  shouldHideProgressBar() && Alpine.navigate.disableProgressBar();
8871  document.addEventListener("alpine:navigated", (e) => {
8872    document.dispatchEvent(new CustomEvent("livewire:navigated", { bubbles: true }));
8873  });
8874  document.addEventListener("alpine:navigating", (e) => {
8875    document.dispatchEvent(new CustomEvent("livewire:navigating", { bubbles: true }));
8876  });
8877  function shouldRedirectUsingNavigateOr(effects, url, or) {
8878    let forceNavigate = effects.redirectUsingNavigate;
8879    if (forceNavigate) {
8880      Alpine.navigate(url);
8881    } else {
8882      or();
8883    }
8884  }
8885  function shouldHideProgressBar() {
8886    if (!!document.querySelector("[data-no-progress-bar]"))
8887      return true;
8888    if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === false)
8889      return true;
8890    return false;
8891  }
8892
8893  
8893// js/features/supportRedirects.js
8894  on2("effect", ({ effects }) => {
8895    if (!effects["redirect"])
8896      return;
8897    let url = effects["redirect"];
8898    shouldRedirectUsingNavigateOr(effects, url, () => {
8899      window.location.href = url;
8900    });
8901  });
8902
8903  
8903// js/morph.js
8904  function morph2(component, el, html) {
8905    let wrapperTag = el.parentElement ? el.parentElement.tagName.toLowerCase() : "div";
8906    let wrapper = document.createElement(wrapperTag);
8907    wrapper.innerHTML = html;
8908    let parentComponent;
8909    try {
8910      parentComponent = closestComponent(el.parentElement);
8911    } catch (e) {
8912    }
8913    parentComponent && (wrapper.__livewire = parentComponent);
8914    let to = wrapper.firstElementChild;
8915    to.__livewire = component;
8916    trigger2("morph", { el, toEl: to, component });
8917    module_default.morph(el, to, {
8918      updating: (el2, toEl, childrenOnly, skip) => {
8919        if (isntElement(el2))
8920          return;
8921        trigger2("morph.updating", { el: el2, toEl, component, skip, childrenOnly });
8922        if (el2.__livewire_ignore === true)
8923          return skip();
8924        if (el2.__livewire_ignore_self === true)
8925          childrenOnly();
8926        if (isComponentRootEl(el2) && el2.getAttribute("wire:id") !== component.id)
8927          return skip();
8928        if (isComponentRootEl(el2))
8929          toEl.__livewire = component;
8930      },
8931      updated: (el2) => {
8932        if (isntElement(el2))
8933          return;
8934        trigger2("morph.updated", { el: el2, component });
8935      },
8936      removing: (el2, skip) => {
8937        if (isntElement(el2))
8938          return;
8939        trigger2("morph.removing", { el: el2, component, skip });
8940      },
8941      removed: (el2) => {
8942        if (isntElement(el2))
8943          return;
8944        trigger2("morph.removed", { el: el2, component });
8945      },
8946      adding: (el2) => {
8947        trigger2("morph.adding", { el: el2, component });
8948      },
8949      added: (el2) => {
8950        if (isntElement(el2))
8951          return;
8952        const closestComponentId = closestComponent(el2).id;
8953        trigger2("morph.added", { el: el2 });
8954      },
8955      key: (el2) => {
8956        if (isntElement(el2))
8957          return;
8958        return el2.hasAttribute(`wire:key`) ? el2.getAttribute(`wire:key`) : el2.hasAttribute(`wire:id`) ? el2.getAttribute(`wire:id`) : el2.id;
8959      },
8960      lookahead: false
8961    });
8962  }
8963  function isntElement(el) {
8964    return typeof el.hasAttribute !== "function";
8965  }
8966  function isComponentRootEl(el) {
8967    return el.hasAttribute("wire:id");
8968  }
8969
8970  
8970// js/features/supportMorphDom.js
8971  on2("effect", ({ component, effects }) => {
8972    let html = effects.html;
8973    if (!html)
8974      return;
8975    queueMicrotask(() => {
8976      queueMicrotask(() => {
8977        morph2(component, component.el, html);
8978      });
8979    });
8980  });
8981
8982  
8982// js/features/supportEvents.js
8983  on2("effect", ({ component, effects }) => {
8984    registerListeners(component, effects.listeners || []);
8985    dispatchEvents(component, effects.dispatches || []);
8986  });
8987  function registerListeners(component, listeners2) {
8988    listeners2.forEach((name) => {
8989      let handler4 = (e) => {
8990        if (e.__livewire)
8991          e.__livewire.receivedBy.push(component);
8992        component.$wire.call("__dispatch", name, e.detail || {});
8993      };
8994      window.addEventListener(name, handler4);
8995      component.addCleanup(() => window.removeEventListener(name, handler4));
8996      component.el.addEventListener(name, (e) => {
8997        if (!e.__livewire)
8998          return;
8999        if (e.bubbles)
9000          return;
9001        if (e.__livewire)
9002          e.__livewire.receivedBy.push(component.id);
9003        component.$wire.call("__dispatch", name, e.detail || {});
9004      });
9005    });
9006  }
9007  function dispatchEvents(component, dispatches) {
9008    dispatches.forEach(({ name, params = {}, self = false, to }) => {
9009      if (self)
9010        dispatchSelf(component, name, params);
9011      else if (to)
9012        dispatchTo(to, name, params);
9013      else
9014        dispatch3(component, name, params);
9015    });
9016  }
9017
9018  
9018// js/directives/wire-transition.js
9019  on2("morph.added", ({ el }) => {
9020    el.__addedByMorph = true;
9021  });
9022  directive2("transition", ({ el, directive: directive3, component, cleanup: cleanup3 }) => {
9023    let visibility = module_default.reactive({ state: el.__addedByMorph ? false : true });
9024    module_default.bind(el, {
9025      [directive3.rawName.replace("wire:", "x-")]: "",
9026      "x-show"() {
9027        return visibility.state;
9028      }
9029    });
9030    el.__addedByMorph && setTimeout(() => visibility.state = true);
9031    let cleanups = [];
9032    cleanups.push(on2("morph.removing", ({ el: el2, skip }) => {
9033      skip();
9034      el2.addEventListener("transitionend", () => {
9035        el2.remove();
9036      });
9037      visibility.state = false;
9038      cleanups.push(on2("morph", ({ component: morphComponent }) => {
9039        if (morphComponent !== component)
9040          return;
9041        el2.remove();
9042        cleanups.forEach((i) => i());
9043      }));
9044    }));
9045    cleanup3(() => cleanups.forEach((i) => i()));
9046  });
9047
9048  
9048// js/debounce.js
9049  var callbacksByComponent = new WeakBag();
9050  function callAndClearComponentDebounces(component, callback) {
9051    callbacksByComponent.each(component, (callbackRegister) => {
9052      callbackRegister.callback();
9053      callbackRegister.callback = () => {
9054      };
9055    });
9056    callback();
9057  }
9058
9059  
9059// js/directives/wire-wildcard.js
9060  on2("directive.init", ({ el, directive: directive3, cleanup: cleanup3, component }) => {
9061    if (["snapshot", "effects", "model", "init", "loading", "poll", "ignore", "id", "data", "key", "target", "dirty"].includes(directive3.value))
9062      return;
9063    let attribute = directive3.rawName.replace("wire:", "x-on:");
9064    if (directive3.value === "submit" && !directive3.modifiers.includes("prevent")) {
9065      attribute = attribute + ".prevent";
9066    }
9067    let cleanupBinding = module_default.bind(el, {
9068      [attribute](e) {
9069        let execute = () => {
9070          callAndClearComponentDebounces(component, () => {
9071            module_default.evaluate(el, "$wire." + directive3.expression, { scope: { $event: e } });
9072          });
9073        };
9074        if (el.__livewire_confirm) {
9075          el.__livewire_confirm(() => {
9076            execute();
9077          }, () => {
9078            e.stopImmediatePropagation();
9079          });
9080        } else {
9081          execute();
9082        }
9083      }
9084    });
9085    cleanup3(cleanupBinding);
9086  });
9087
9088  
9088// js/directives/wire-navigate.js
9089  module_default.addInitSelector(() => `[wire\\:navigate]`);
9090  module_default.addInitSelector(() => `[wire\\:navigate\\.hover]`);
9091  module_default.interceptInit(module_default.skipDuringClone((el) => {
9092    if (el.hasAttribute("wire:navigate")) {
9093      module_default.bind(el, { ["x-navigate"]: true });
9094    } else if (el.hasAttribute("wire:navigate.hover")) {
9095      module_default.bind(el, { ["x-navigate.hover"]: true });
9096    }
9097  }));
9098  document.addEventListener("alpine:navigating", () => {
9099    Livewire.all().forEach((component) => {
9100      component.inscribeSnapshotAndEffectsOnElement();
9101    });
9102  });
9103
9104  
9104// js/directives/wire-confirm.js
9105  directive2("confirm", ({ el, directive: directive3 }) => {
9106    let message = directive3.expression;
9107    let shouldPrompt = directive3.modifiers.includes("prompt");
9108    message = message.replaceAll("\\n", "\n");
9109    if (message === "")
9110      message = "Are you sure?";
9111    el.__livewire_confirm = (action, instead) => {
9112      if (shouldPrompt) {
9113        let [question, expected] = message.split("|");
9114        if (!expected) {
9115          console.warn("Livewire: Must provide expectation with wire:confirm.prompt");
9116        } else {
9117          let input = prompt(question);
9118          if (input === expected) {
9119            action();
9120          } else {
9121            instead();
9122          }
9123        }
9124      } else {
9125        if (confirm(message))
9126          action();
9127        else
9128          instead();
9129      }
9130    };
9131  });
9132
9133  
9133// js/directives/shared.js
9134  function toggleBooleanStateDirective(el, directive3, isTruthy, cachedDisplay = null) {
9135    isTruthy = directive3.modifiers.includes("remove") ? !isTruthy : isTruthy;
9136    if (directive3.modifiers.includes("class")) {
9137      let classes = directive3.expression.split(" ").filter(String);
9138      if (isTruthy) {
9139        el.classList.add(...classes);
9140      } else {
9141        el.classList.remove(...classes);
9142      }
9143    } else if (directive3.modifiers.includes("attr")) {
9144      if (isTruthy) {
9145        el.setAttribute(directive3.expression, true);
9146      } else {
9147        el.removeAttribute(directive3.expression);
9148      }
9149    } else {
9150      let cache = cachedDisplay ?? window.getComputedStyle(el, null).getPropertyValue("display");
9151      let display = ["inline", "block", "table", "flex", "grid", "inline-flex"].filter((i) => directive3.modifiers.includes(i))[0] || "inline-block";
9152      display = directive3.modifiers.includes("remove") ? cache : display;
9153      el.style.display = isTruthy ? display : "none";
9154    }
9155  }
9156
9157  
9157// js/directives/wire-offline.js
9158  var offlineHandlers = /* @__PURE__ */ new Set();
9159  var onlineHandlers = /* @__PURE__ */ new Set();
9160  window.addEventListener("offline", () => offlineHandlers.forEach((i) => i()));
9161  window.addEventListener("online", () => onlineHandlers.forEach((i) => i()));
9162  directive2("offline", ({ el, directive: directive3, cleanup: cleanup3 }) => {
9163    let setOffline = () => toggleBooleanStateDirective(el, directive3, true);
9164    let setOnline = () => toggleBooleanStateDirective(el, directive3, false);
9165    offlineHandlers.add(setOffline);
9166    onlineHandlers.add(setOnline);
9167    cleanup3(() => {
9168      offlineHandlers.delete(setOffline);
9169      onlineHandlers.delete(setOnline);
9170    });
9171  });
9172
9173  
9173// js/directives/wire-loading.js
9174  directive2("loading", ({ el, directive: directive3, component }) => {
9175    let { targets, inverted } = getTargets(el);
9176    let [delay3, abortDelay] = applyDelay(directive3);
9177    whenTargetsArePartOfRequest(component, targets, inverted, [
9178      () => delay3(() => toggleBooleanStateDirective(el, directive3, true)),
9179      () => abortDelay(() => toggleBooleanStateDirective(el, directive3, false))
9180    ]);
9181    whenTargetsArePartOfFileUpload(component, targets, [
9182      () => delay3(() => toggleBooleanStateDirective(el, directive3, true)),
9183      () => abortDelay(() => toggleBooleanStateDirective(el, directive3, false))
9184    ]);
9185  });
9186  function applyDelay(directive3) {
9187    if (!directive3.modifiers.includes("delay") || directive3.modifiers.includes("none"))
9188      return [(i) => i(), (i) => i()];
9189    let duration = 200;
9190    let delayModifiers = {
9191      "shortest": 50,
9192      "shorter": 100,
9193      "short": 150,
9194      "default": 200,
9195      "long": 300,
9196      "longer": 500,
9197      "longest": 1e3
9198    };
9199    Object.keys(delayModifiers).some((key) => {
9200      if (directive3.modifiers.includes(key)) {
9201        duration = delayModifiers[key];
9202        return true;
9203      }
9204    });
9205    let timeout;
9206    let started2 = false;
9207    return [
9208      (callback) => {
9209        timeout = setTimeout(() => {
9210          callback();
9211          started2 = true;
9212        }, duration);
9213      },
9214      async (callback) => {
9215        if (started2) {
9216          await callback();
9217          started2 = false;
9218        } else {
9219          clearTimeout(timeout);
9220        }
9221      }
9222    ];
9223  }
9224  function whenTargetsArePartOfRequest(component, targets, inverted, [startLoading, endLoading]) {
9225    on2("commit", ({ component: iComponent, commit: payload, respond }) => {
9226      if (iComponent !== component)
9227        return;
9228      if (targets.length > 0 && containsTargets(payload, targets) === inverted)
9229        return;
9230      startLoading();
9231      respond(() => {
9232        endLoading();
9233      });
9234    });
9235  }
9236  function whenTargetsArePartOfFileUpload(component, targets, [startLoading, endLoading]) {
9237    let eventMismatch = (e) => {
9238      let { id, property } = e.detail;
9239      if (id !== component.id)
9240        return true;
9241      if (targets.length > 0 && !targets.map((i) => i.target).includes(property))
9242        return true;
9243      return false;
9244    };
9245    window.addEventListener("livewire-upload-start", (e) => {
9246      if (eventMismatch(e))
9247        return;
9248      startLoading();
9249    });
9250    window.addEventListener("livewire-upload-finish", (e) => {
9251      if (eventMismatch(e))
9252        return;
9253      endLoading();
9254    });
9255    window.addEventListener("livewire-upload-error", (e) => {
9256      if (eventMismatch(e))
9257        return;
9258      endLoading();
9259    });
9260  }
9261  function containsTargets(payload, targets) {
9262    let { updates, calls } = payload;
9263    return targets.some(({ target, params }) => {
9264      if (params) {
9265        return calls.some(({ method, params: methodParams }) => {
9266          return target === method && params === quickHash(JSON.stringify(methodParams));
9267        });
9268      }
9269      let hasMatchingUpdate = Object.keys(updates).some((property) => {
9270        if (property.includes(".")) {
9271          let propertyRoot = property.split(".")[0];
9272          if (propertyRoot === target)
9273            return true;
9274        }
9275        return property === target;
9276      });
9277      if (hasMatchingUpdate)
9278        return true;
9279      if (calls.map((i) => i.method).includes(target))
9280        return true;
9281    });
9282  }
9283  function getTargets(el) {
9284    let directives2 = getDirectives(el);
9285    let targets = [];
9286    let inverted = false;
9287    if (directives2.has("target")) {
9288      let directive3 = directives2.get("target");
9289      let raw2 = directive3.expression;
9290      if (directive3.modifiers.includes("except"))
9291        inverted = true;
9292      if (raw2.includes("(") && raw2.includes(")")) {
9293        targets.push({ target: directive3.method, params: quickHash(JSON.stringify(directive3.params)) });
9294      } else if (raw2.includes(",")) {
9295        raw2.split(",").map((i) => i.trim()).forEach((target) => {
9296          targets.push({ target });
9297        });
9298      } else {
9299        targets.push({ target: raw2 });
9300      }
9301    } else {
9302      let nonActionOrModelLivewireDirectives = ["init", "dirty", "offline", "target", "loading", "poll", "ignore", "key", "id"];
9303      directives2.all().filter((i) => !nonActionOrModelLivewireDirectives.includes(i.value)).map((i) =>
9303 i.expression.split("(")[0]).forEach((target) => targets.push({ target }));
9304    }
9305    return { targets, inverted };
9306  }
9307  function quickHash(subject) {
9308    return btoa(encodeURIComponent(subject));
9309  }
9310
9311  
9311// js/directives/wire-stream.js
9312  directive2("stream", ({ el, directive: directive3, cleanup: cleanup3 }) => {
9313    let { expression, modifiers } = directive3;
9314    let off = on2("stream", ({ name, content, replace: replace2 }) => {
9315      if (name !== expression)
9316        return;
9317      if (modifiers.includes("replace") || replace2) {
9318        el.innerHTML = content;
9319      } else {
9320        el.innerHTML = el.innerHTML + content;
9321      }
9322    });
9323    cleanup3(off);
9324  });
9325  on2("request", ({ respond }) => {
9326    respond((mutableObject) => {
9327      let response = mutableObject.response;
9328      if (!response.headers.has("X-Livewire-Stream"))
9329        return;
9330      mutableObject.response = {
9331        ok: true,
9332        redirected: false,
9333        status: 200,
9334        async text() {
9335          let finalResponse = await interceptStreamAndReturnFinalResponse(response, (streamed) => {
9336            trigger2("stream", streamed);
9337          });
9338          if (contentIsFromDump(finalResponse)) {
9339            this.ok = false;
9340          }
9341          return finalResponse;
9342        }
9343      };
9344    });
9345  });
9346  async function interceptStreamAndReturnFinalResponse(response, callback) {
9347    let reader = response.body.getReader();
9348    let remainingResponse = "";
9349    while (true) {
9350      let { done, value: chunk } = await reader.read();
9351      let decoder = new TextDecoder();
9352      let output = decoder.decode(chunk);
9353      let [streams, remaining] = extractStreamObjects(remainingResponse + output);
9354      streams.forEach((stream) => {
9355        callback(stream);
9356      });
9357      remainingResponse = remaining;
9358      if (done)
9359        return remainingResponse;
9360    }
9361  }
9362  function extractStreamObjects(raw2) {
9363    let regex = /({"stream":true.*?"endStream":true})/g;
9364    let matches2 = raw2.match(regex);
9365    let parsed = [];
9366    if (matches2) {
9367      for (let i = 0; i < matches2.length; i++) {
9368        parsed.push(JSON.parse(matches2[i]).body);
9369      }
9370    }
9371    let remaining = raw2.replace(regex, "");
9372    return [parsed, remaining];
9373  }
9374
9375  
9375// js/directives/wire-ignore.js
9376  directive2("ignore", ({ el, directive: directive3 }) => {
9377    if (directive3.modifiers.includes("self")) {
9378      el.__livewire_ignore_self = true;
9379    } else {
9380      el.__livewire_ignore = true;
9381    }
9382  });
9383
9384  
9384// js/directives/wire-dirty.js
9385  var refreshDirtyStatesByComponent = new WeakBag();
9386  on2("commit", ({ component, respond }) => {
9387    respond(() => {
9388      setTimeout(() => {
9389        refreshDirtyStatesByComponent.each(component, (i) => i(false));
9390      });
9391    });
9392  });
9393  directive2("dirty", ({ el, directive: directive3, component }) => {
9394    let targets = dirtyTargets(el);
9395    let dirty = Alpine.reactive({ state: false });
9396    let oldIsDirty = false;
9397    let initialDisplay = el.style.display;
9398    let refreshDirtyState = (isDirty) => {
9399      toggleBooleanStateDirective(el, directive3, isDirty, initialDisplay);
9400      oldIsDirty = isDirty;
9401    };
9402    refreshDirtyStatesByComponent.add(component, refreshDirtyState);
9403    Alpine.effect(() => {
9404      let isDirty = false;
9405      if (targets.length === 0) {
9406        isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive);
9407      } else {
9408        for (let i = 0; i < targets.length; i++) {
9409          if (isDirty)
9410            break;
9411          let target = targets[i];
9412          isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target));
9413        }
9414      }
9415      if (oldIsDirty !== isDirty) {
9416        refreshDirtyState(isDirty);
9417      }
9418      oldIsDirty = isDirty;
9419    });
9420  });
9421  function dirtyTargets(el) {
9422    let directives2 = getDirectives(el);
9423    let targets = [];
9424    if (directives2.has("model")) {
9425      targets.push(directives2.get("model").expression);
9426    }
9427    if (directives2.has("target")) {
9428      targets = targets.concat(directives2.get("target").expression.split(",").map((s) => s.trim()));
9429    }
9430    return targets;
9431  }
9432
9433  
9433// js/directives/wire-model.js
9434  directive2("model", ({ el, directive: directive3, component, cleanup: cleanup3 }) => {
9435    let { expression, modifiers } = directive3;
9436    if (!expression) {
9437      return console.warn("Livewire: [wire:model] is missing a value.", el);
9438    }
9439    if (componentIsMissingProperty(component, expression)) {
9440      return console.warn('Livewire: [wire:model="' + expression + '"] property does not exist on component: [' + component.name + "]", el);
9441    }
9442    if (el.type && el.type.toLowerCase() === "file") {
9443      return handleFileUpload(el, expression, component, cleanup3);
9444    }
9445    let isLive = modifiers.includes("live");
9446    let isLazy = modifiers.includes("lazy") || modifiers.includes("change");
9447    let onBlur = modifiers.includes("blur");
9448    let isDebounced = modifiers.includes("debounce");
9449    let update = expression.startsWith("$parent") ? () => component.$wire.$parent.$commit() : () => component.$wire.$commit();
9450    let debouncedUpdate = isTextInput(el) && !isDebounced && isLive ? debounce2(update, 150) : update;
9451    module_default.bind(el, {
9452      ["@change"]() {
9453        isLazy && update();
9454      },
9455      ["@blur"]() {
9456        onBlur && update();
9457      },
9458      ["x-model" + getModifierTail(modifiers)]() {
9459        return {
9460          get() {
9461            return dataGet(component.$wire, expression);
9462          },
9463          set(value) {
9464            dataSet(component.$wire, expression, value);
9465            isLive && !isLazy && !onBlur && debouncedUpdate();
9466          }
9467        };
9468      }
9469    });
9470  });
9471  function getModifierTail(modifiers) {
9472    modifiers = modifiers.filter((i) => ![
9473      "lazy",
9474      "defer"
9475    ].includes(i));
9476    if (modifiers.length === 0)
9477      return "";
9478    return "." + modifiers.join(".");
9479  }
9480  function isTextInput(el) {
9481    return ["INPUT", "TEXTAREA"].includes(el.tagName.toUpperCase()) && !["checkbox", "radio"].includes(el.type);
9482  }
9483  function componentIsMissingProperty(component, property) {
9484    if (property.startsWith("$parent")) {
9485      let parent = closestComponent(component.el.parentElement, false);
9486      if (!parent)
9487        return true;
9488      return componentIsMissingProperty(parent, property.split("$parent.")[1]);
9489    }
9490    let baseProperty = property.split(".")[0];
9491    return !Object.keys(component.canonical).includes(baseProperty);
9492  }
9493  function debounce2(func, wait) {
9494    var timeout;
9495    return function() {
9496      var context = this, args = arguments;
9497      var later = function() {
9498        timeout = null;
9499        func.apply(context, args);
9500      };
9501      clearTimeout(timeout);
9502      timeout = setTimeout(later, wait);
9503    };
9504  }
9505
9506  
9506// js/directives/wire-init.js
9507  directive2("init", ({ el, directive: directive3 }) => {
9508    let fullMethod = directive3.expression ?? "$refresh";
9509    module_default.evaluate(el, `$wire.${fullMethod}`);
9510  });
9511
9512  
9512// js/directives/wire-poll.js
9513  directive2("poll", ({ el, directive: directive3 }) => {
9514    let interval = extractDurationFrom(directive3.modifiers, 2e3);
9515    let { start: start3, pauseWhile, throttleWhile, stopWhen } = poll(() => {
9516      triggerComponentRequest(el, directive3);
9517    }, interval);
9518    start3();
9519    throttleWhile(() => theTabIsInTheBackground() && theDirectiveIsMissingKeepAlive(directive3));
9520    pauseWhile(() => theDirectiveHasVisible(directive3) && theElementIsNotInTheViewport(el));
9521    pauseWhile(() => theDirectiveIsOffTheElement(el));
9522    pauseWhile(() => livewireIsOffline());
9523    stopWhen(() => theElementIsDisconnected(el));
9524  });
9525  function triggerComponentRequest(el, directive3) {
9526    module_default.evaluate(el, directive3.expression ? "$wire." + directive3.expression : "$wire.$commit()");
9527  }
9528  function poll(callback, interval = 2e3) {
9529    let pauseConditions = [];
9530    let throttleConditions = [];
9531    let stopConditions = [];
9532    return {
9533      start() {
9534        let clear2 = syncronizedInterval(interval, () => {
9535          if (stopConditions.some((i) => i()))
9536            return clear2();
9537          if (pauseConditions.some((i) => i()))
9538            return;
9539          if (throttleConditions.some((i) => i()) && Math.random() < 0.95)
9540            return;
9541          callback();
9542        });
9543      },
9544      pauseWhile(condition) {
9545        pauseConditions.push(condition);
9546      },
9547      throttleWhile(condition) {
9548        throttleConditions.push(condition);
9549      },
9550      stopWhen(condition) {
9551        stopConditions.push(condition);
9552      }
9553    };
9554  }
9555  var clocks = [];
9556  function syncronizedInterval(ms, callback) {
9557    if (!clocks[ms]) {
9558      let clock = {
9559        timer: setInterval(() => clock.callbacks.forEach((i) => i()), ms),
9560        callbacks: /* @__PURE__ */ new Set()
9561      };
9562      clocks[ms] = clock;
9563    }
9564    clocks[ms].callbacks.add(callback);
9565    return () => {
9566      clocks[ms].callbacks.delete(callback);
9567      if (clocks[ms].callbacks.size === 0) {
9568        clearInterval(clocks[ms].timer);
9569        delete clocks[ms];
9570      }
9571    };
9572  }
9573  var isOffline = false;
9574  window.addEventListener("offline", () => isOffline = true);
9575  window.addEventListener("online", () => isOffline = false);
9576  function livewireIsOffline() {
9577    return isOffline;
9578  }
9579  var inBackground = false;
9580  document.addEventListener("visibilitychange", () => {
9581    inBackground = document.hidden;
9582  }, false);
9583  function theTabIsInTheBackground() {
9584    return inBackground;
9585  }
9586  function theDirectiveIsOffTheElement(el) {
9587    return !getDirectives(el).has("poll");
9588  }
9589  function theDirectiveIsMissingKeepAlive(directive3) {
9590    return !directive3.modifiers.includes("keep-alive");
9591  }
9592  function theDirectiveHasVisible(directive3) {
9593    return directive3.modifiers.includes("visible");
9594  }
9595  function theElementIsNotInTheViewport(el) {
9596    let bounding = el.getBoundingClientRect();
9597    return !(bounding.top < (window.innerHeight || document.documentElement.clientHeight) && bounding.left < (window.innerWidth || document.documentElement.clientWidth) && bounding.bottom > 0 && bounding.right > 0);
9598  }
9599  function theElementIsDisconnected(el) {
9600    return el.isConnected === false;
9601  }
9602  function extractDurationFrom(modifiers, defaultDuration) {
9603    let durationInMilliSeconds;
9604    let durationInMilliSecondsString = modifiers.find((mod) => mod.match(/([0-9]+)ms/));
9605    let durationInSecondsString = modifiers.find((mod) => mod.match(/([0-9]+)s/));
9606    if (durationInMilliSecondsString) {
9607      durationInMilliSeconds = Number(durationInMilliSecondsString.replace("ms", ""));
9608    } else if (durationInSecondsString) {
9609      durationInMilliSeconds = Number(durationInSecondsString.replace("s", "")) * 1e3;
9610    }
9611    return durationInMilliSeconds || defaultDuration;
9612  }
9613
9614  
9614// js/index.js
9615  var Livewire2 = {
9616    directive: directive2,
9617    dispatchTo,
9618    start: start2,
9619    first,
9620    find,
9621    getByName,
9622    all,
9623    hook: on2,
9624    trigger: trigger2,
9625    triggerAsync,
9626    dispatch: dispatchGlobal,
9627    on: on3,
9628    get navigate() {
9629      return module_default.navigate;
9630    }
9631  };
9632  if (window.Livewire)
9633    console.warn("Detected multiple instances of Livewire running");
9634  if (window.Alpine)
9635    console.warn("Detected multiple instances of Alpine running");
9636  window.Livewire = Livewire2;
9637  window.Alpine = module_default;
9638  if (window.livewireScriptConfig === void 0) {
9639    document.addEventListener("DOMContentLoaded", () => {
9640      Livewire2.start();
9641    });
9642  }
9643})();
9644/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
9645 * @license MIT */
9646/*! Bundled license information:
9647
9648tabbable/dist/index.esm.js:
9649  (*!
9650  * tabbable 5.3.3
9651  * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
9652  *)
9653
9654focus-trap/dist/focus-trap.esm.js:
9655  (*!
9656  * focus-trap 6.9.4
9657  * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
9658  *)
9659*/

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.