lookbook 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -220,14 +220,14 @@ function $caa9439642c6336c$var$onMutate(mutations) {
220
220
  node._x_ignoreSelf = true;
221
221
  node._x_ignore = true;
222
222
  });
223
- for (let node1 of addedNodes){
224
- if (removedNodes.includes(node1)) continue;
225
- if (!node1.isConnected) continue;
226
- delete node1._x_ignoreSelf;
227
- delete node1._x_ignore;
228
- $caa9439642c6336c$var$onElAddeds.forEach((i)=>i(node1));
229
- node1._x_ignore = true;
230
- node1._x_ignoreSelf = true;
223
+ for (let node of addedNodes){
224
+ if (removedNodes.includes(node)) continue;
225
+ if (!node.isConnected) continue;
226
+ delete node._x_ignoreSelf;
227
+ delete node._x_ignore;
228
+ $caa9439642c6336c$var$onElAddeds.forEach((i)=>i(node));
229
+ node._x_ignore = true;
230
+ node._x_ignoreSelf = true;
231
231
  }
232
232
  addedNodes.forEach((node)=>{
233
233
  delete node._x_ignoreSelf;
@@ -439,7 +439,7 @@ var $caa9439642c6336c$var$evaluatorMemo = {};
439
439
  function $caa9439642c6336c$var$generateFunctionFromString(expression, el) {
440
440
  if ($caa9439642c6336c$var$evaluatorMemo[expression]) return $caa9439642c6336c$var$evaluatorMemo[expression];
441
441
  let AsyncFunction = Object.getPrototypeOf(async function() {}).constructor;
442
- let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression) || /^(let|const)\s/.test(expression) ? `(() => { ${expression} })()` : expression;
442
+ let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression) || /^(let|const)\s/.test(expression) ? `(async()=>{ ${expression} })()` : expression;
443
443
  const safeAsyncFunction = ()=>{
444
444
  try {
445
445
  return new AsyncFunction([
@@ -480,7 +480,8 @@ function $caa9439642c6336c$var$runIfTypeOfFunction(receiver, value, scope2, para
480
480
  let result = value.apply(scope2, params);
481
481
  if (result instanceof Promise) result.then((i)=>$caa9439642c6336c$var$runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2)=>$caa9439642c6336c$var$handleError(error2, el, value));
482
482
  else receiver(result);
483
- } else receiver(value);
483
+ } else if (typeof value === "object" && value instanceof Promise) value.then((i)=>receiver(i));
484
+ else receiver(value);
484
485
  }
485
486
  // packages/alpinejs/src/directives.js
486
487
  var $caa9439642c6336c$var$prefixAsString = "x-";
@@ -493,6 +494,16 @@ function $caa9439642c6336c$var$setPrefix(newPrefix) {
493
494
  var $caa9439642c6336c$var$directiveHandlers = {};
494
495
  function $caa9439642c6336c$var$directive(name, callback) {
495
496
  $caa9439642c6336c$var$directiveHandlers[name] = callback;
497
+ return {
498
+ before (directive2) {
499
+ if (!$caa9439642c6336c$var$directiveHandlers[directive2]) {
500
+ console.warn("Cannot find directive `${directive}`. `${name}` will use the default order of execution");
501
+ return;
502
+ }
503
+ const pos = $caa9439642c6336c$var$directiveOrder.indexOf(directive2) ?? $caa9439642c6336c$var$directiveOrder.indexOf("DEFAULT");
504
+ if (pos >= 0) $caa9439642c6336c$var$directiveOrder.splice(pos, 0, name);
505
+ }
506
+ };
496
507
  }
497
508
  function $caa9439642c6336c$var$directives(el, attributes, originalAttributeOverride) {
498
509
  attributes = Array.from(attributes);
@@ -629,8 +640,6 @@ var $caa9439642c6336c$var$directiveOrder = [
629
640
  "disclosure",
630
641
  "menu",
631
642
  "listbox",
632
- "list",
633
- "item",
634
643
  "combobox",
635
644
  "bind",
636
645
  "init",
@@ -658,29 +667,6 @@ function $caa9439642c6336c$var$dispatch(el, name, detail = {}) {
658
667
  cancelable: true
659
668
  }));
660
669
  }
661
- // packages/alpinejs/src/nextTick.js
662
- var $caa9439642c6336c$var$tickStack = [];
663
- var $caa9439642c6336c$var$isHolding = false;
664
- function $caa9439642c6336c$var$nextTick(callback = ()=>{}) {
665
- queueMicrotask(()=>{
666
- $caa9439642c6336c$var$isHolding || setTimeout(()=>{
667
- $caa9439642c6336c$var$releaseNextTicks();
668
- });
669
- });
670
- return new Promise((res)=>{
671
- $caa9439642c6336c$var$tickStack.push(()=>{
672
- callback();
673
- res();
674
- });
675
- });
676
- }
677
- function $caa9439642c6336c$var$releaseNextTicks() {
678
- $caa9439642c6336c$var$isHolding = false;
679
- while($caa9439642c6336c$var$tickStack.length)$caa9439642c6336c$var$tickStack.shift()();
680
- }
681
- function $caa9439642c6336c$var$holdNextTicks() {
682
- $caa9439642c6336c$var$isHolding = true;
683
- }
684
670
  // packages/alpinejs/src/utils/walk.js
685
671
  function $caa9439642c6336c$var$walk(el, callback) {
686
672
  if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) {
@@ -747,9 +733,15 @@ function $caa9439642c6336c$var$findClosest(el, callback) {
747
733
  function $caa9439642c6336c$var$isRoot(el) {
748
734
  return $caa9439642c6336c$var$rootSelectors().some((selector)=>el.matches(selector));
749
735
  }
750
- function $caa9439642c6336c$var$initTree(el, walker = $caa9439642c6336c$var$walk) {
736
+ var $caa9439642c6336c$var$initInterceptors2 = [];
737
+ function $caa9439642c6336c$var$interceptInit(callback) {
738
+ $caa9439642c6336c$var$initInterceptors2.push(callback);
739
+ }
740
+ function $caa9439642c6336c$var$initTree(el, walker = $caa9439642c6336c$var$walk, intercept = ()=>{}) {
751
741
  $caa9439642c6336c$var$deferHandlingDirectives(()=>{
752
742
  walker(el, (el2, skip)=>{
743
+ intercept(el2, skip);
744
+ $caa9439642c6336c$var$initInterceptors2.forEach((i)=>i(el2, skip));
753
745
  $caa9439642c6336c$var$directives(el2, el2.attributes).forEach((handle)=>handle());
754
746
  el2._x_ignore && skip();
755
747
  });
@@ -758,6 +750,29 @@ function $caa9439642c6336c$var$initTree(el, walker = $caa9439642c6336c$var$walk)
758
750
  function $caa9439642c6336c$var$destroyTree(root) {
759
751
  $caa9439642c6336c$var$walk(root, (el)=>$caa9439642c6336c$var$cleanupAttributes(el));
760
752
  }
753
+ // packages/alpinejs/src/nextTick.js
754
+ var $caa9439642c6336c$var$tickStack = [];
755
+ var $caa9439642c6336c$var$isHolding = false;
756
+ function $caa9439642c6336c$var$nextTick(callback = ()=>{}) {
757
+ queueMicrotask(()=>{
758
+ $caa9439642c6336c$var$isHolding || setTimeout(()=>{
759
+ $caa9439642c6336c$var$releaseNextTicks();
760
+ });
761
+ });
762
+ return new Promise((res)=>{
763
+ $caa9439642c6336c$var$tickStack.push(()=>{
764
+ callback();
765
+ res();
766
+ });
767
+ });
768
+ }
769
+ function $caa9439642c6336c$var$releaseNextTicks() {
770
+ $caa9439642c6336c$var$isHolding = false;
771
+ while($caa9439642c6336c$var$tickStack.length)$caa9439642c6336c$var$tickStack.shift()();
772
+ }
773
+ function $caa9439642c6336c$var$holdNextTicks() {
774
+ $caa9439642c6336c$var$isHolding = true;
775
+ }
761
776
  // packages/alpinejs/src/utils/classes.js
762
777
  function $caa9439642c6336c$var$setClasses(el, value) {
763
778
  if (Array.isArray(value)) return $caa9439642c6336c$var$setClassesFromString(el, value.join(" "));
@@ -1102,6 +1117,9 @@ var $caa9439642c6336c$var$isCloning = false;
1102
1117
  function $caa9439642c6336c$var$skipDuringClone(callback, fallback = ()=>{}) {
1103
1118
  return (...args)=>$caa9439642c6336c$var$isCloning ? fallback(...args) : callback(...args);
1104
1119
  }
1120
+ function $caa9439642c6336c$var$onlyDuringClone(callback) {
1121
+ return (...args)=>$caa9439642c6336c$var$isCloning && callback(...args);
1122
+ }
1105
1123
  function $caa9439642c6336c$var$clone(oldEl, newEl) {
1106
1124
  if (!newEl._x_dataStack) newEl._x_dataStack = oldEl._x_dataStack;
1107
1125
  $caa9439642c6336c$var$isCloning = true;
@@ -1370,23 +1388,28 @@ var $caa9439642c6336c$var$Alpine = {
1370
1388
  get raw () {
1371
1389
  return $caa9439642c6336c$var$raw;
1372
1390
  },
1373
- version: "3.10.5",
1391
+ version: "3.11.1",
1374
1392
  flushAndStopDeferringMutations: $caa9439642c6336c$var$flushAndStopDeferringMutations,
1375
1393
  dontAutoEvaluateFunctions: $caa9439642c6336c$var$dontAutoEvaluateFunctions,
1376
1394
  disableEffectScheduling: $caa9439642c6336c$var$disableEffectScheduling,
1395
+ startObservingMutations: $caa9439642c6336c$var$startObservingMutations,
1396
+ stopObservingMutations: $caa9439642c6336c$var$stopObservingMutations,
1377
1397
  setReactivityEngine: $caa9439642c6336c$var$setReactivityEngine,
1378
1398
  closestDataStack: $caa9439642c6336c$var$closestDataStack,
1379
1399
  skipDuringClone: $caa9439642c6336c$var$skipDuringClone,
1400
+ onlyDuringClone: $caa9439642c6336c$var$onlyDuringClone,
1380
1401
  addRootSelector: $caa9439642c6336c$var$addRootSelector,
1381
1402
  addInitSelector: $caa9439642c6336c$var$addInitSelector,
1382
1403
  addScopeToNode: $caa9439642c6336c$var$addScopeToNode,
1383
1404
  deferMutations: $caa9439642c6336c$var$deferMutations,
1384
1405
  mapAttributes: $caa9439642c6336c$var$mapAttributes,
1385
1406
  evaluateLater: $caa9439642c6336c$var$evaluateLater,
1407
+ interceptInit: $caa9439642c6336c$var$interceptInit,
1386
1408
  setEvaluator: $caa9439642c6336c$var$setEvaluator,
1387
1409
  mergeProxies: $caa9439642c6336c$var$mergeProxies,
1388
1410
  findClosest: $caa9439642c6336c$var$findClosest,
1389
1411
  closestRoot: $caa9439642c6336c$var$closestRoot,
1412
+ destroyTree: $caa9439642c6336c$var$destroyTree,
1390
1413
  interceptor: $caa9439642c6336c$var$interceptor,
1391
1414
  transition: $caa9439642c6336c$var$transition,
1392
1415
  setStyles: $caa9439642c6336c$var$setStyles,
@@ -1406,6 +1429,7 @@ var $caa9439642c6336c$var$Alpine = {
1406
1429
  clone: $caa9439642c6336c$var$clone,
1407
1430
  bound: $caa9439642c6336c$var$getBinding,
1408
1431
  $data: $caa9439642c6336c$var$scope,
1432
+ walk: $caa9439642c6336c$var$walk,
1409
1433
  data: $caa9439642c6336c$var$data,
1410
1434
  bind: $caa9439642c6336c$var$bind2
1411
1435
  };
@@ -2070,8 +2094,40 @@ $caa9439642c6336c$var$warnMissingPluginMagic("Persist", "persist", "persist");
2070
2094
  function $caa9439642c6336c$var$warnMissingPluginMagic(name, magicName, slug) {
2071
2095
  $caa9439642c6336c$var$magic(magicName, (el)=>$caa9439642c6336c$var$warn(`You can't use [$${directiveName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el));
2072
2096
  }
2097
+ // packages/alpinejs/src/entangle.js
2098
+ function $caa9439642c6336c$var$entangle({ get: outerGet , set: outerSet }, { get: innerGet , set: innerSet }) {
2099
+ let firstRun = true;
2100
+ let outerHash, innerHash, outerHashLatest, innerHashLatest;
2101
+ let reference = $caa9439642c6336c$var$effect(()=>{
2102
+ let outer, inner;
2103
+ if (firstRun) {
2104
+ outer = outerGet();
2105
+ innerSet(outer);
2106
+ inner = innerGet();
2107
+ firstRun = false;
2108
+ } else {
2109
+ outer = outerGet();
2110
+ inner = innerGet();
2111
+ outerHashLatest = JSON.stringify(outer);
2112
+ innerHashLatest = JSON.stringify(inner);
2113
+ if (outerHashLatest !== outerHash) {
2114
+ inner = innerGet();
2115
+ innerSet(outer);
2116
+ inner = outer;
2117
+ } else {
2118
+ outerSet(inner);
2119
+ outer = inner;
2120
+ }
2121
+ }
2122
+ outerHash = JSON.stringify(outer);
2123
+ innerHash = JSON.stringify(inner);
2124
+ });
2125
+ return ()=>{
2126
+ $caa9439642c6336c$var$release(reference);
2127
+ };
2128
+ }
2073
2129
  // packages/alpinejs/src/directives/x-modelable.js
2074
- $caa9439642c6336c$var$directive("modelable", (el, { expression: expression }, { effect: effect3 , evaluateLater: evaluateLater2 })=>{
2130
+ $caa9439642c6336c$var$directive("modelable", (el, { expression: expression }, { effect: effect3 , evaluateLater: evaluateLater2 , cleanup: cleanup2 })=>{
2075
2131
  let func = evaluateLater2(expression);
2076
2132
  let innerGet = ()=>{
2077
2133
  let result;
@@ -2091,14 +2147,33 @@ $caa9439642c6336c$var$directive("modelable", (el, { expression: expression }, {
2091
2147
  el._x_removeModelListeners["default"]();
2092
2148
  let outerGet = el._x_model.get;
2093
2149
  let outerSet = el._x_model.set;
2094
- effect3(()=>innerSet(outerGet()));
2095
- effect3(()=>outerSet(innerGet()));
2150
+ let releaseEntanglement = $caa9439642c6336c$var$entangle({
2151
+ get () {
2152
+ return outerGet();
2153
+ },
2154
+ set (value) {
2155
+ outerSet(value);
2156
+ }
2157
+ }, {
2158
+ get () {
2159
+ return innerGet();
2160
+ },
2161
+ set (value) {
2162
+ innerSet(value);
2163
+ }
2164
+ });
2165
+ cleanup2(releaseEntanglement);
2096
2166
  });
2097
2167
  });
2098
2168
  // packages/alpinejs/src/directives/x-teleport.js
2099
- $caa9439642c6336c$var$directive("teleport", (el, { expression: expression }, { cleanup: cleanup2 })=>{
2169
+ var $caa9439642c6336c$var$teleportContainerDuringClone = document.createElement("div");
2170
+ $caa9439642c6336c$var$directive("teleport", (el, { modifiers: modifiers , expression: expression }, { cleanup: cleanup2 })=>{
2100
2171
  if (el.tagName.toLowerCase() !== "template") $caa9439642c6336c$var$warn("x-teleport can only be used on a <template> tag", el);
2101
- let target = document.querySelector(expression);
2172
+ let target = $caa9439642c6336c$var$skipDuringClone(()=>{
2173
+ return document.querySelector(expression);
2174
+ }, ()=>{
2175
+ return $caa9439642c6336c$var$teleportContainerDuringClone;
2176
+ })();
2102
2177
  if (!target) $caa9439642c6336c$var$warn(`Cannot find x-teleport element for selector: "${expression}"`);
2103
2178
  let clone2 = el.content.cloneNode(true).firstElementChild;
2104
2179
  el._x_teleport = clone2;
@@ -2111,7 +2186,9 @@ $caa9439642c6336c$var$directive("teleport", (el, { expression: expression }, {
2111
2186
  });
2112
2187
  $caa9439642c6336c$var$addScopeToNode(clone2, {}, el);
2113
2188
  $caa9439642c6336c$var$mutateDom(()=>{
2114
- target.appendChild(clone2);
2189
+ if (modifiers.includes("prepend")) target.parentNode.insertBefore(clone2, target);
2190
+ else if (modifiers.includes("append")) target.parentNode.insertBefore(clone2, target.nextSibling);
2191
+ else target.appendChild(clone2);
2115
2192
  $caa9439642c6336c$var$initTree(clone2);
2116
2193
  clone2._x_ignore = true;
2117
2194
  });
@@ -2177,9 +2254,9 @@ function $caa9439642c6336c$var$on(el, event, modifiers, callback) {
2177
2254
  handler3 = $caa9439642c6336c$var$debounce(handler3, wait);
2178
2255
  }
2179
2256
  if (modifiers.includes("throttle")) {
2180
- let nextModifier1 = modifiers[modifiers.indexOf("throttle") + 1] || "invalid-wait";
2181
- let wait1 = $caa9439642c6336c$var$isNumeric(nextModifier1.split("ms")[0]) ? Number(nextModifier1.split("ms")[0]) : 250;
2182
- handler3 = $caa9439642c6336c$var$throttle(handler3, wait1);
2257
+ let nextModifier = modifiers[modifiers.indexOf("throttle") + 1] || "invalid-wait";
2258
+ let wait = $caa9439642c6336c$var$isNumeric(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250;
2259
+ handler3 = $caa9439642c6336c$var$throttle(handler3, wait);
2183
2260
  }
2184
2261
  listenerTarget.addEventListener(event, handler3, options);
2185
2262
  return ()=>{
@@ -2196,6 +2273,10 @@ function $caa9439642c6336c$var$isNumeric(subject) {
2196
2273
  return !Array.isArray(subject) && !isNaN(subject);
2197
2274
  }
2198
2275
  function $caa9439642c6336c$var$kebabCase2(subject) {
2276
+ if ([
2277
+ " ",
2278
+ "_"
2279
+ ].includes(subject)) return subject;
2199
2280
  return subject.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[_\s]/, "-").toLowerCase();
2200
2281
  }
2201
2282
  function $caa9439642c6336c$var$isKeyEvent(event) {
@@ -2218,6 +2299,10 @@ function $caa9439642c6336c$var$isListeningForASpecificKeyThatHasntBeenPressed(e,
2218
2299
  let debounceIndex = keyModifiers.indexOf("debounce");
2219
2300
  keyModifiers.splice(debounceIndex, $caa9439642c6336c$var$isNumeric((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1);
2220
2301
  }
2302
+ if (keyModifiers.includes("throttle")) {
2303
+ let debounceIndex = keyModifiers.indexOf("throttle");
2304
+ keyModifiers.splice(debounceIndex, $caa9439642c6336c$var$isNumeric((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1);
2305
+ }
2221
2306
  if (keyModifiers.length === 0) return false;
2222
2307
  if (keyModifiers.length === 1 && $caa9439642c6336c$var$keyToModifiers(e.key).includes(keyModifiers[0])) return false;
2223
2308
  const systemKeyModifiers = [
@@ -2247,8 +2332,8 @@ function $caa9439642c6336c$var$keyToModifiers(key) {
2247
2332
  let modifierToKeyMap = {
2248
2333
  ctrl: "control",
2249
2334
  slash: "/",
2250
- space: "-",
2251
- spacebar: "-",
2335
+ space: " ",
2336
+ spacebar: " ",
2252
2337
  cmd: "meta",
2253
2338
  esc: "escape",
2254
2339
  up: "arrow-up",
@@ -2256,7 +2341,9 @@ function $caa9439642c6336c$var$keyToModifiers(key) {
2256
2341
  left: "arrow-left",
2257
2342
  right: "arrow-right",
2258
2343
  period: ".",
2259
- equal: "="
2344
+ equal: "=",
2345
+ minus: "-",
2346
+ underscore: "_"
2260
2347
  };
2261
2348
  modifierToKeyMap[key] = key;
2262
2349
  return Object.keys(modifierToKeyMap).map((modifier)=>{
@@ -2265,79 +2352,89 @@ function $caa9439642c6336c$var$keyToModifiers(key) {
2265
2352
  }
2266
2353
  // packages/alpinejs/src/directives/x-model.js
2267
2354
  $caa9439642c6336c$var$directive("model", (el, { modifiers: modifiers , expression: expression }, { effect: effect3 , cleanup: cleanup2 })=>{
2268
- let evaluate2 = $caa9439642c6336c$var$evaluateLater(el, expression);
2269
- let assignmentExpression = `${expression} = rightSideOfExpression($event, ${expression})`;
2270
- let evaluateAssignment = $caa9439642c6336c$var$evaluateLater(el, assignmentExpression);
2355
+ let scopeTarget = el;
2356
+ if (modifiers.includes("parent")) scopeTarget = el.parentNode;
2357
+ let evaluateGet = $caa9439642c6336c$var$evaluateLater(scopeTarget, expression);
2358
+ let evaluateSet;
2359
+ if (typeof expression === "string") evaluateSet = $caa9439642c6336c$var$evaluateLater(scopeTarget, `${expression} = __placeholder`);
2360
+ else if (typeof expression === "function" && typeof expression() === "string") evaluateSet = $caa9439642c6336c$var$evaluateLater(scopeTarget, `${expression()} = __placeholder`);
2361
+ else evaluateSet = ()=>{};
2362
+ let getValue = ()=>{
2363
+ let result;
2364
+ evaluateGet((value)=>result = value);
2365
+ return $caa9439642c6336c$var$isGetterSetter(result) ? result.get() : result;
2366
+ };
2367
+ let setValue = (value)=>{
2368
+ let result;
2369
+ evaluateGet((value2)=>result = value2);
2370
+ if ($caa9439642c6336c$var$isGetterSetter(result)) result.set(value);
2371
+ else evaluateSet(()=>{}, {
2372
+ scope: {
2373
+ __placeholder: value
2374
+ }
2375
+ });
2376
+ };
2377
+ if (typeof expression === "string" && el.type === "radio") $caa9439642c6336c$var$mutateDom(()=>{
2378
+ if (!el.hasAttribute("name")) el.setAttribute("name", expression);
2379
+ });
2271
2380
  var event = el.tagName.toLowerCase() === "select" || [
2272
2381
  "checkbox",
2273
2382
  "radio"
2274
2383
  ].includes(el.type) || modifiers.includes("lazy") ? "change" : "input";
2275
- let assigmentFunction = $caa9439642c6336c$var$generateAssignmentFunction(el, modifiers, expression);
2276
2384
  let removeListener = $caa9439642c6336c$var$on(el, event, modifiers, (e)=>{
2277
- evaluateAssignment(()=>{}, {
2278
- scope: {
2279
- $event: e,
2280
- rightSideOfExpression: assigmentFunction
2281
- }
2282
- });
2385
+ setValue($caa9439642c6336c$var$getInputValue(el, modifiers, e, getValue()));
2283
2386
  });
2284
2387
  if (!el._x_removeModelListeners) el._x_removeModelListeners = {};
2285
2388
  el._x_removeModelListeners["default"] = removeListener;
2286
2389
  cleanup2(()=>el._x_removeModelListeners["default"]());
2287
- let evaluateSetModel = $caa9439642c6336c$var$evaluateLater(el, `${expression} = __placeholder`);
2390
+ if (el.form) {
2391
+ let removeResetListener = $caa9439642c6336c$var$on(el.form, "reset", [], (e)=>{
2392
+ $caa9439642c6336c$var$nextTick(()=>el._x_model && el._x_model.set(el.value));
2393
+ });
2394
+ cleanup2(()=>removeResetListener());
2395
+ }
2288
2396
  el._x_model = {
2289
2397
  get () {
2290
- let result;
2291
- evaluate2((value)=>result = value);
2292
- return result;
2398
+ return getValue();
2293
2399
  },
2294
2400
  set (value) {
2295
- evaluateSetModel(()=>{}, {
2296
- scope: {
2297
- __placeholder: value
2298
- }
2299
- });
2401
+ setValue(value);
2300
2402
  }
2301
2403
  };
2302
- el._x_forceModelUpdate = ()=>{
2303
- evaluate2((value)=>{
2304
- if (value === void 0 && expression.match(/\./)) value = "";
2305
- window.fromModel = true;
2306
- $caa9439642c6336c$var$mutateDom(()=>$caa9439642c6336c$var$bind(el, "value", value));
2307
- delete window.fromModel;
2308
- });
2404
+ el._x_forceModelUpdate = (value)=>{
2405
+ value = value === void 0 ? getValue() : value;
2406
+ if (value === void 0 && typeof expression === "string" && expression.match(/\./)) value = "";
2407
+ window.fromModel = true;
2408
+ $caa9439642c6336c$var$mutateDom(()=>$caa9439642c6336c$var$bind(el, "value", value));
2409
+ delete window.fromModel;
2309
2410
  };
2310
2411
  effect3(()=>{
2412
+ let value = getValue();
2311
2413
  if (modifiers.includes("unintrusive") && document.activeElement.isSameNode(el)) return;
2312
- el._x_forceModelUpdate();
2414
+ el._x_forceModelUpdate(value);
2313
2415
  });
2314
2416
  });
2315
- function $caa9439642c6336c$var$generateAssignmentFunction(el, modifiers, expression) {
2316
- if (el.type === "radio") $caa9439642c6336c$var$mutateDom(()=>{
2317
- if (!el.hasAttribute("name")) el.setAttribute("name", expression);
2318
- });
2319
- return (event, currentValue)=>{
2320
- return $caa9439642c6336c$var$mutateDom(()=>{
2321
- if (event instanceof CustomEvent && event.detail !== void 0) return event.detail || event.target.value;
2322
- else if (el.type === "checkbox") {
2323
- if (Array.isArray(currentValue)) {
2324
- let newValue = modifiers.includes("number") ? $caa9439642c6336c$var$safeParseNumber(event.target.value) : event.target.value;
2325
- return event.target.checked ? currentValue.concat([
2326
- newValue
2327
- ]) : currentValue.filter((el2)=>!$caa9439642c6336c$var$checkedAttrLooseCompare2(el2, newValue));
2328
- } else return event.target.checked;
2329
- } else if (el.tagName.toLowerCase() === "select" && el.multiple) return modifiers.includes("number") ? Array.from(event.target.selectedOptions).map((option)=>{
2330
- let rawValue = option.value || option.text;
2331
- return $caa9439642c6336c$var$safeParseNumber(rawValue);
2332
- }) : Array.from(event.target.selectedOptions).map((option)=>{
2333
- return option.value || option.text;
2334
- });
2335
- else {
2336
- let rawValue = event.target.value;
2337
- return modifiers.includes("number") ? $caa9439642c6336c$var$safeParseNumber(rawValue) : modifiers.includes("trim") ? rawValue.trim() : rawValue;
2338
- }
2417
+ function $caa9439642c6336c$var$getInputValue(el, modifiers, event, currentValue) {
2418
+ return $caa9439642c6336c$var$mutateDom(()=>{
2419
+ if (event instanceof CustomEvent && event.detail !== void 0) return typeof event.detail != "undefined" ? event.detail : event.target.value;
2420
+ else if (el.type === "checkbox") {
2421
+ if (Array.isArray(currentValue)) {
2422
+ let newValue = modifiers.includes("number") ? $caa9439642c6336c$var$safeParseNumber(event.target.value) : event.target.value;
2423
+ return event.target.checked ? currentValue.concat([
2424
+ newValue
2425
+ ]) : currentValue.filter((el2)=>!$caa9439642c6336c$var$checkedAttrLooseCompare2(el2, newValue));
2426
+ } else return event.target.checked;
2427
+ } else if (el.tagName.toLowerCase() === "select" && el.multiple) return modifiers.includes("number") ? Array.from(event.target.selectedOptions).map((option)=>{
2428
+ let rawValue = option.value || option.text;
2429
+ return $caa9439642c6336c$var$safeParseNumber(rawValue);
2430
+ }) : Array.from(event.target.selectedOptions).map((option)=>{
2431
+ return option.value || option.text;
2339
2432
  });
2340
- };
2433
+ else {
2434
+ let rawValue = event.target.value;
2435
+ return modifiers.includes("number") ? $caa9439642c6336c$var$safeParseNumber(rawValue) : modifiers.includes("trim") ? rawValue.trim() : rawValue;
2436
+ }
2437
+ });
2341
2438
  }
2342
2439
  function $caa9439642c6336c$var$safeParseNumber(rawValue) {
2343
2440
  let number = rawValue ? parseFloat(rawValue) : null;
@@ -2349,6 +2446,9 @@ function $caa9439642c6336c$var$checkedAttrLooseCompare2(valueA, valueB) {
2349
2446
  function $caa9439642c6336c$var$isNumeric2(subject) {
2350
2447
  return !Array.isArray(subject) && !isNaN(subject);
2351
2448
  }
2449
+ function $caa9439642c6336c$var$isGetterSetter(value) {
2450
+ return value !== null && typeof value === "object" && typeof value.get === "function" && typeof value.set === "function";
2451
+ }
2352
2452
  // packages/alpinejs/src/directives/x-cloak.js
2353
2453
  $caa9439642c6336c$var$directive("cloak", (el)=>queueMicrotask(()=>$caa9439642c6336c$var$mutateDom(()=>el.removeAttribute($caa9439642c6336c$var$prefix("cloak")))));
2354
2454
  // packages/alpinejs/src/directives/x-init.js
@@ -2513,44 +2613,44 @@ function $caa9439642c6336c$var$loop(el, iteratorNames, evaluateItems, evaluateKe
2513
2613
  let moves = [];
2514
2614
  let removes = [];
2515
2615
  let sames = [];
2516
- for(let i1 = 0; i1 < prevKeys.length; i1++){
2517
- let key = prevKeys[i1];
2616
+ for(let i = 0; i < prevKeys.length; i++){
2617
+ let key = prevKeys[i];
2518
2618
  if (keys.indexOf(key) === -1) removes.push(key);
2519
2619
  }
2520
2620
  prevKeys = prevKeys.filter((key)=>!removes.includes(key));
2521
2621
  let lastKey = "template";
2522
- for(let i2 = 0; i2 < keys.length; i2++){
2523
- let key1 = keys[i2];
2524
- let prevIndex = prevKeys.indexOf(key1);
2622
+ for(let i = 0; i < keys.length; i++){
2623
+ let key = keys[i];
2624
+ let prevIndex = prevKeys.indexOf(key);
2525
2625
  if (prevIndex === -1) {
2526
- prevKeys.splice(i2, 0, key1);
2626
+ prevKeys.splice(i, 0, key);
2527
2627
  adds.push([
2528
2628
  lastKey,
2529
- i2
2629
+ i
2530
2630
  ]);
2531
- } else if (prevIndex !== i2) {
2532
- let keyInSpot = prevKeys.splice(i2, 1)[0];
2631
+ } else if (prevIndex !== i) {
2632
+ let keyInSpot = prevKeys.splice(i, 1)[0];
2533
2633
  let keyForSpot = prevKeys.splice(prevIndex - 1, 1)[0];
2534
- prevKeys.splice(i2, 0, keyForSpot);
2634
+ prevKeys.splice(i, 0, keyForSpot);
2535
2635
  prevKeys.splice(prevIndex, 0, keyInSpot);
2536
2636
  moves.push([
2537
2637
  keyInSpot,
2538
2638
  keyForSpot
2539
2639
  ]);
2540
- } else sames.push(key1);
2541
- lastKey = key1;
2542
- }
2543
- for(let i3 = 0; i3 < removes.length; i3++){
2544
- let key2 = removes[i3];
2545
- if (!!lookup[key2]._x_effects) lookup[key2]._x_effects.forEach($caa9439642c6336c$var$dequeueJob);
2546
- lookup[key2].remove();
2547
- lookup[key2] = null;
2548
- delete lookup[key2];
2549
- }
2550
- for(let i4 = 0; i4 < moves.length; i4++){
2551
- let [keyInSpot1, keyForSpot1] = moves[i4];
2552
- let elInSpot = lookup[keyInSpot1];
2553
- let elForSpot = lookup[keyForSpot1];
2640
+ } else sames.push(key);
2641
+ lastKey = key;
2642
+ }
2643
+ for(let i = 0; i < removes.length; i++){
2644
+ let key = removes[i];
2645
+ if (!!lookup[key]._x_effects) lookup[key]._x_effects.forEach($caa9439642c6336c$var$dequeueJob);
2646
+ lookup[key].remove();
2647
+ lookup[key] = null;
2648
+ delete lookup[key];
2649
+ }
2650
+ for(let i = 0; i < moves.length; i++){
2651
+ let [keyInSpot, keyForSpot] = moves[i];
2652
+ let elInSpot = lookup[keyInSpot];
2653
+ let elForSpot = lookup[keyForSpot];
2554
2654
  let marker = document.createElement("div");
2555
2655
  $caa9439642c6336c$var$mutateDom(()=>{
2556
2656
  elForSpot.after(marker);
@@ -2560,24 +2660,24 @@ function $caa9439642c6336c$var$loop(el, iteratorNames, evaluateItems, evaluateKe
2560
2660
  elInSpot._x_currentIfEl && elInSpot.after(elInSpot._x_currentIfEl);
2561
2661
  marker.remove();
2562
2662
  });
2563
- $caa9439642c6336c$var$refreshScope(elForSpot, scopes[keys.indexOf(keyForSpot1)]);
2663
+ $caa9439642c6336c$var$refreshScope(elForSpot, scopes[keys.indexOf(keyForSpot)]);
2564
2664
  }
2565
- for(let i5 = 0; i5 < adds.length; i5++){
2566
- let [lastKey2, index] = adds[i5];
2665
+ for(let i = 0; i < adds.length; i++){
2666
+ let [lastKey2, index] = adds[i];
2567
2667
  let lastEl = lastKey2 === "template" ? templateEl : lookup[lastKey2];
2568
2668
  if (lastEl._x_currentIfEl) lastEl = lastEl._x_currentIfEl;
2569
- let scope21 = scopes[index];
2570
- let key3 = keys[index];
2669
+ let scope2 = scopes[index];
2670
+ let key = keys[index];
2571
2671
  let clone2 = document.importNode(templateEl.content, true).firstElementChild;
2572
- $caa9439642c6336c$var$addScopeToNode(clone2, $caa9439642c6336c$var$reactive(scope21), templateEl);
2672
+ $caa9439642c6336c$var$addScopeToNode(clone2, $caa9439642c6336c$var$reactive(scope2), templateEl);
2573
2673
  $caa9439642c6336c$var$mutateDom(()=>{
2574
2674
  lastEl.after(clone2);
2575
2675
  $caa9439642c6336c$var$initTree(clone2);
2576
2676
  });
2577
- if (typeof key3 === "object") $caa9439642c6336c$var$warn("x-for key cannot be an object, it must be a string or an integer", templateEl);
2578
- lookup[key3] = clone2;
2677
+ if (typeof key === "object") $caa9439642c6336c$var$warn("x-for key cannot be an object, it must be a string or an integer", templateEl);
2678
+ lookup[key] = clone2;
2579
2679
  }
2580
- for(let i6 = 0; i6 < sames.length; i6++)$caa9439642c6336c$var$refreshScope(lookup[sames[i6]], scopes[keys.indexOf(sames[i6])]);
2680
+ for(let i = 0; i < sames.length; i++)$caa9439642c6336c$var$refreshScope(lookup[sames[i]], scopes[keys.indexOf(sames[i])]);
2581
2681
  templateEl._x_prevKeys = keys;
2582
2682
  });
2583
2683
  }
@@ -2606,8 +2706,8 @@ function $caa9439642c6336c$var$getIterationScopeVariables(iteratorNames, item, i
2606
2706
  scopeVariables[name] = item[i];
2607
2707
  });
2608
2708
  } else if (/^\{.*\}$/.test(iteratorNames.item) && !Array.isArray(item) && typeof item === "object") {
2609
- let names1 = iteratorNames.item.replace("{", "").replace("}", "").split(",").map((i)=>i.trim());
2610
- names1.forEach((name)=>{
2709
+ let names = iteratorNames.item.replace("{", "").replace("}", "").split(",").map((i)=>i.trim());
2710
+ names.forEach((name)=>{
2611
2711
  scopeVariables[name] = item[name];
2612
2712
  });
2613
2713
  } else scopeVariables[iteratorNames.item] = item;
@@ -2705,56 +2805,6 @@ var $caa9439642c6336c$export$2e2bcd8739ae039 = $caa9439642c6336c$var$src_default
2705
2805
 
2706
2806
 
2707
2807
  // packages/morph/src/dom.js
2708
- var $512e3a9270ec7803$var$DomManager = class {
2709
- el = void 0;
2710
- constructor(el){
2711
- this.el = el;
2712
- }
2713
- traversals = {
2714
- first: "firstElementChild",
2715
- next: "nextElementSibling",
2716
- parent: "parentElement"
2717
- };
2718
- nodes() {
2719
- this.traversals = {
2720
- first: "firstChild",
2721
- next: "nextSibling",
2722
- parent: "parentNode"
2723
- };
2724
- return this;
2725
- }
2726
- first() {
2727
- return this.teleportTo(this.el[this.traversals["first"]]);
2728
- }
2729
- next() {
2730
- return this.teleportTo(this.teleportBack(this.el[this.traversals["next"]]));
2731
- }
2732
- before(insertee) {
2733
- this.el[this.traversals["parent"]].insertBefore(insertee, this.el);
2734
- return insertee;
2735
- }
2736
- replace(replacement) {
2737
- this.el[this.traversals["parent"]].replaceChild(replacement, this.el);
2738
- return replacement;
2739
- }
2740
- append(appendee) {
2741
- this.el.appendChild(appendee);
2742
- return appendee;
2743
- }
2744
- teleportTo(el) {
2745
- if (!el) return el;
2746
- if (el._x_teleport) return el._x_teleport;
2747
- return el;
2748
- }
2749
- teleportBack(el) {
2750
- if (!el) return el;
2751
- if (el._x_teleportBack) return el._x_teleportBack;
2752
- return el;
2753
- }
2754
- };
2755
- function $512e3a9270ec7803$var$dom(el) {
2756
- return new $512e3a9270ec7803$var$DomManager(el);
2757
- }
2758
2808
  function $512e3a9270ec7803$var$createElement(html) {
2759
2809
  const template = document.createElement("template");
2760
2810
  template.innerHTML = html;
@@ -2763,18 +2813,59 @@ function $512e3a9270ec7803$var$createElement(html) {
2763
2813
  function $512e3a9270ec7803$var$textOrComment(el) {
2764
2814
  return el.nodeType === 3 || el.nodeType === 8;
2765
2815
  }
2816
+ var $512e3a9270ec7803$var$dom = {
2817
+ replace (children, old, replacement) {
2818
+ let index = children.indexOf(old);
2819
+ if (index === -1) throw "Cant find element in children";
2820
+ old.replaceWith(replacement);
2821
+ children[index] = replacement;
2822
+ return children;
2823
+ },
2824
+ before (children, reference, subject) {
2825
+ let index = children.indexOf(reference);
2826
+ if (index === -1) throw "Cant find element in children";
2827
+ reference.before(subject);
2828
+ children.splice(index, 0, subject);
2829
+ return children;
2830
+ },
2831
+ append (children, subject, appendFn) {
2832
+ let last = children[children.length - 1];
2833
+ appendFn(subject);
2834
+ children.push(subject);
2835
+ return children;
2836
+ },
2837
+ remove (children, subject) {
2838
+ let index = children.indexOf(subject);
2839
+ if (index === -1) throw "Cant find element in children";
2840
+ subject.remove();
2841
+ return children.filter((i)=>i !== subject);
2842
+ },
2843
+ first (children) {
2844
+ return this.teleportTo(children[0]);
2845
+ },
2846
+ next (children, reference) {
2847
+ let index = children.indexOf(reference);
2848
+ if (index === -1) return;
2849
+ return this.teleportTo(this.teleportBack(children[index + 1]));
2850
+ },
2851
+ teleportTo (el) {
2852
+ if (!el) return el;
2853
+ if (el._x_teleport) return el._x_teleport;
2854
+ return el;
2855
+ },
2856
+ teleportBack (el) {
2857
+ if (!el) return el;
2858
+ if (el._x_teleportBack) return el._x_teleportBack;
2859
+ return el;
2860
+ }
2861
+ };
2766
2862
  // packages/morph/src/morph.js
2767
2863
  var $512e3a9270ec7803$var$resolveStep = ()=>{};
2768
2864
  var $512e3a9270ec7803$var$logger = ()=>{};
2769
- async function $512e3a9270ec7803$export$2e5e8c41f5d4e7c7(from, toHtml, options) {
2865
+ function $512e3a9270ec7803$export$2e5e8c41f5d4e7c7(from, toHtml, options) {
2770
2866
  let fromEl;
2771
2867
  let toEl;
2772
- let key, lookahead, updating, updated, removing, removed, adding, added, debug;
2773
- function breakpoint(message) {
2774
- if (!debug) return;
2775
- $512e3a9270ec7803$var$logger((message || "").replace("\n", "\\n"), fromEl, toEl);
2776
- return new Promise((resolve)=>$512e3a9270ec7803$var$resolveStep = ()=>resolve());
2777
- }
2868
+ let key, lookahead, updating, updated, removing, removed, adding, added;
2778
2869
  function assignOptions(options2 = {}) {
2779
2870
  let defaultGetKey = (el)=>el.getAttribute("key");
2780
2871
  let noop = ()=>{};
@@ -2786,25 +2877,22 @@ async function $512e3a9270ec7803$export$2e5e8c41f5d4e7c7(from, toHtml, options)
2786
2877
  added = options2.added || noop;
2787
2878
  key = options2.key || defaultGetKey;
2788
2879
  lookahead = options2.lookahead || false;
2789
- debug = options2.debug || false;
2790
2880
  }
2791
- async function patch(from2, to) {
2792
- if (differentElementNamesTypesOrKeys(from2, to)) {
2793
- let result = patchElement(from2, to);
2794
- await breakpoint("Swap elements");
2795
- return result;
2796
- }
2881
+ function patch(from2, to) {
2882
+ if (differentElementNamesTypesOrKeys(from2, to)) return patchElement(from2, to);
2797
2883
  let updateChildrenOnly = false;
2798
2884
  if ($512e3a9270ec7803$var$shouldSkip(updating, from2, to, ()=>updateChildrenOnly = true)) return;
2799
2885
  window.Alpine && $512e3a9270ec7803$var$initializeAlpineOnTo(from2, to, ()=>updateChildrenOnly = true);
2800
2886
  if ($512e3a9270ec7803$var$textOrComment(to)) {
2801
- await patchNodeValue(from2, to);
2887
+ patchNodeValue(from2, to);
2802
2888
  updated(from2, to);
2803
2889
  return;
2804
2890
  }
2805
- if (!updateChildrenOnly) await patchAttributes(from2, to);
2891
+ if (!updateChildrenOnly) patchAttributes(from2, to);
2806
2892
  updated(from2, to);
2807
- await patchChildren(from2, to);
2893
+ patchChildren(Array.from(from2.childNodes), Array.from(to.childNodes), (toAppend)=>{
2894
+ from2.appendChild(toAppend);
2895
+ });
2808
2896
  }
2809
2897
  function differentElementNamesTypesOrKeys(from2, to) {
2810
2898
  return from2.nodeType != to.nodeType || from2.nodeName != to.nodeName || getKey(from2) != getKey(to);
@@ -2813,122 +2901,144 @@ async function $512e3a9270ec7803$export$2e5e8c41f5d4e7c7(from, toHtml, options)
2813
2901
  if ($512e3a9270ec7803$var$shouldSkip(removing, from2)) return;
2814
2902
  let toCloned = to.cloneNode(true);
2815
2903
  if ($512e3a9270ec7803$var$shouldSkip(adding, toCloned)) return;
2816
- $512e3a9270ec7803$var$dom(from2).replace(toCloned);
2904
+ $512e3a9270ec7803$var$dom.replace([
2905
+ from2
2906
+ ], from2, toCloned);
2817
2907
  removed(from2);
2818
2908
  added(toCloned);
2819
2909
  }
2820
- async function patchNodeValue(from2, to) {
2910
+ function patchNodeValue(from2, to) {
2821
2911
  let value = to.nodeValue;
2822
- if (from2.nodeValue !== value) {
2823
- from2.nodeValue = value;
2824
- await breakpoint("Change text node to: " + value);
2825
- }
2912
+ if (from2.nodeValue !== value) from2.nodeValue = value;
2826
2913
  }
2827
- async function patchAttributes(from2, to) {
2914
+ function patchAttributes(from2, to) {
2828
2915
  if (from2._x_isShown && !to._x_isShown) return;
2829
2916
  if (!from2._x_isShown && to._x_isShown) return;
2830
2917
  let domAttributes = Array.from(from2.attributes);
2831
2918
  let toAttributes = Array.from(to.attributes);
2832
2919
  for(let i = domAttributes.length - 1; i >= 0; i--){
2833
2920
  let name = domAttributes[i].name;
2834
- if (!to.hasAttribute(name)) {
2835
- from2.removeAttribute(name);
2836
- await breakpoint("Remove attribute");
2837
- }
2921
+ if (!to.hasAttribute(name)) from2.removeAttribute(name);
2838
2922
  }
2839
- for(let i1 = toAttributes.length - 1; i1 >= 0; i1--){
2840
- let name1 = toAttributes[i1].name;
2841
- let value = toAttributes[i1].value;
2842
- if (from2.getAttribute(name1) !== value) {
2843
- from2.setAttribute(name1, value);
2844
- await breakpoint(`Set [${name1}] attribute to: "${value}"`);
2845
- }
2923
+ for(let i = toAttributes.length - 1; i >= 0; i--){
2924
+ let name = toAttributes[i].name;
2925
+ let value = toAttributes[i].value;
2926
+ if (from2.getAttribute(name) !== value) from2.setAttribute(name, value);
2846
2927
  }
2847
2928
  }
2848
- async function patchChildren(from2, to) {
2849
- let domChildren = from2.childNodes;
2850
- let toChildren = to.childNodes;
2851
- let toKeyToNodeMap = keyToMap(toChildren);
2852
- let domKeyDomNodeMap = keyToMap(domChildren);
2853
- let currentTo = $512e3a9270ec7803$var$dom(to).nodes().first();
2854
- let currentFrom = $512e3a9270ec7803$var$dom(from2).nodes().first();
2855
- let domKeyHoldovers = {};
2929
+ function patchChildren(fromChildren, toChildren, appendFn) {
2930
+ let fromKeyDomNodeMap = {};
2931
+ let fromKeyHoldovers = {};
2932
+ let currentTo = $512e3a9270ec7803$var$dom.first(toChildren);
2933
+ let currentFrom = $512e3a9270ec7803$var$dom.first(fromChildren);
2856
2934
  while(currentTo){
2857
2935
  let toKey = getKey(currentTo);
2858
- let domKey = getKey(currentFrom);
2936
+ let fromKey = getKey(currentFrom);
2859
2937
  if (!currentFrom) {
2860
- if (toKey && domKeyHoldovers[toKey]) {
2861
- let holdover = domKeyHoldovers[toKey];
2862
- $512e3a9270ec7803$var$dom(from2).append(holdover);
2938
+ if (toKey && fromKeyHoldovers[toKey]) {
2939
+ let holdover = fromKeyHoldovers[toKey];
2940
+ fromChildren = $512e3a9270ec7803$var$dom.append(fromChildren, holdover, appendFn);
2863
2941
  currentFrom = holdover;
2864
- await breakpoint("Add element (from key)");
2865
2942
  } else {
2866
- let added2 = addNodeTo(currentTo, from2) || {};
2867
- await breakpoint("Add element: " + (added2.outerHTML || added2.nodeValue));
2868
- currentTo = $512e3a9270ec7803$var$dom(currentTo).nodes().next();
2943
+ if (!$512e3a9270ec7803$var$shouldSkip(adding, currentTo)) {
2944
+ let clone = currentTo.cloneNode(true);
2945
+ fromChildren = $512e3a9270ec7803$var$dom.append(fromChildren, clone, appendFn);
2946
+ added(clone);
2947
+ }
2948
+ currentTo = $512e3a9270ec7803$var$dom.next(toChildren, currentTo);
2869
2949
  continue;
2870
2950
  }
2871
2951
  }
2872
- if (lookahead) {
2873
- let nextToElementSibling = $512e3a9270ec7803$var$dom(currentTo).next();
2952
+ let isIf = (node)=>node.nodeType === 8 && node.textContent === " __BLOCK__ ";
2953
+ let isEnd = (node)=>node.nodeType === 8 && node.textContent === " __ENDBLOCK__ ";
2954
+ if (isIf(currentTo) && isIf(currentFrom)) {
2955
+ let newFromChildren = [];
2956
+ let appendPoint;
2957
+ let nestedIfCount = 0;
2958
+ while(currentFrom){
2959
+ let next = $512e3a9270ec7803$var$dom.next(fromChildren, currentFrom);
2960
+ if (isIf(next)) nestedIfCount++;
2961
+ else if (isEnd(next) && nestedIfCount > 0) nestedIfCount--;
2962
+ else if (isEnd(next) && nestedIfCount === 0) {
2963
+ currentFrom = $512e3a9270ec7803$var$dom.next(fromChildren, next);
2964
+ appendPoint = next;
2965
+ break;
2966
+ }
2967
+ newFromChildren.push(next);
2968
+ currentFrom = next;
2969
+ }
2970
+ let newToChildren = [];
2971
+ nestedIfCount = 0;
2972
+ while(currentTo){
2973
+ let next = $512e3a9270ec7803$var$dom.next(toChildren, currentTo);
2974
+ if (isIf(next)) nestedIfCount++;
2975
+ else if (isEnd(next) && nestedIfCount > 0) nestedIfCount--;
2976
+ else if (isEnd(next) && nestedIfCount === 0) {
2977
+ currentTo = $512e3a9270ec7803$var$dom.next(toChildren, next);
2978
+ break;
2979
+ }
2980
+ newToChildren.push(next);
2981
+ currentTo = next;
2982
+ }
2983
+ patchChildren(newFromChildren, newToChildren, (node)=>appendPoint.before(node));
2984
+ continue;
2985
+ }
2986
+ if (currentFrom.nodeType === 1 && lookahead) {
2987
+ let nextToElementSibling = $512e3a9270ec7803$var$dom.next(toChildren, currentTo);
2874
2988
  let found = false;
2875
2989
  while(!found && nextToElementSibling){
2876
2990
  if (currentFrom.isEqualNode(nextToElementSibling)) {
2877
2991
  found = true;
2878
- currentFrom = addNodeBefore(currentTo, currentFrom);
2879
- domKey = getKey(currentFrom);
2880
- await breakpoint("Move element (lookahead)");
2992
+ [fromChildren, currentFrom] = addNodeBefore(fromChildren, currentTo, currentFrom);
2993
+ fromKey = getKey(currentFrom);
2881
2994
  }
2882
- nextToElementSibling = $512e3a9270ec7803$var$dom(nextToElementSibling).next();
2995
+ nextToElementSibling = $512e3a9270ec7803$var$dom.next(toChildren, nextToElementSibling);
2883
2996
  }
2884
2997
  }
2885
- if (toKey !== domKey) {
2886
- if (!toKey && domKey) {
2887
- domKeyHoldovers[domKey] = currentFrom;
2888
- currentFrom = addNodeBefore(currentTo, currentFrom);
2889
- domKeyHoldovers[domKey].remove();
2890
- currentFrom = $512e3a9270ec7803$var$dom(currentFrom).nodes().next();
2891
- currentTo = $512e3a9270ec7803$var$dom(currentTo).nodes().next();
2892
- await breakpoint('No "to" key');
2998
+ if (toKey !== fromKey) {
2999
+ if (!toKey && fromKey) {
3000
+ fromKeyHoldovers[fromKey] = currentFrom;
3001
+ [fromChildren, currentFrom] = addNodeBefore(fromChildren, currentTo, currentFrom);
3002
+ fromChildren = $512e3a9270ec7803$var$dom.remove(fromChildren, fromKeyHoldovers[fromKey]);
3003
+ currentFrom = $512e3a9270ec7803$var$dom.next(fromChildren, currentFrom);
3004
+ currentTo = $512e3a9270ec7803$var$dom.next(toChildren, currentTo);
2893
3005
  continue;
2894
3006
  }
2895
- if (toKey && !domKey) {
2896
- if (domKeyDomNodeMap[toKey]) {
2897
- currentFrom = $512e3a9270ec7803$var$dom(currentFrom).replace(domKeyDomNodeMap[toKey]);
2898
- await breakpoint('No "from" key');
3007
+ if (toKey && !fromKey) {
3008
+ if (fromKeyDomNodeMap[toKey]) {
3009
+ fromChildren = $512e3a9270ec7803$var$dom.replace(fromChildren, currentFrom, fromKeyDomNodeMap[toKey]);
3010
+ currentFrom = fromKeyDomNodeMap[toKey];
2899
3011
  }
2900
3012
  }
2901
- if (toKey && domKey) {
2902
- domKeyHoldovers[domKey] = currentFrom;
2903
- let domKeyNode = domKeyDomNodeMap[toKey];
2904
- if (domKeyNode) {
2905
- currentFrom = $512e3a9270ec7803$var$dom(currentFrom).replace(domKeyNode);
2906
- await breakpoint('Move "from" key');
3013
+ if (toKey && fromKey) {
3014
+ let fromKeyNode = fromKeyDomNodeMap[toKey];
3015
+ if (fromKeyNode) {
3016
+ fromKeyHoldovers[fromKey] = currentFrom;
3017
+ fromChildren = $512e3a9270ec7803$var$dom.replace(fromChildren, currentFrom, fromKeyNode);
3018
+ currentFrom = fromKeyNode;
2907
3019
  } else {
2908
- domKeyHoldovers[domKey] = currentFrom;
2909
- currentFrom = addNodeBefore(currentTo, currentFrom);
2910
- domKeyHoldovers[domKey].remove();
2911
- currentFrom = $512e3a9270ec7803$var$dom(currentFrom).next();
2912
- currentTo = $512e3a9270ec7803$var$dom(currentTo).next();
2913
- await breakpoint("Swap elements with keys");
3020
+ fromKeyHoldovers[fromKey] = currentFrom;
3021
+ [fromChildren, currentFrom] = addNodeBefore(fromChildren, currentTo, currentFrom);
3022
+ fromChildren = $512e3a9270ec7803$var$dom.remove(fromChildren, fromKeyHoldovers[fromKey]);
3023
+ currentFrom = $512e3a9270ec7803$var$dom.next(fromChildren, currentFrom);
3024
+ currentTo = $512e3a9270ec7803$var$dom.next(toChildren, currentTo);
2914
3025
  continue;
2915
3026
  }
2916
3027
  }
2917
3028
  }
2918
- let currentFromNext = currentFrom && $512e3a9270ec7803$var$dom(currentFrom).nodes().next();
2919
- await patch(currentFrom, currentTo);
2920
- currentTo = currentTo && $512e3a9270ec7803$var$dom(currentTo).nodes().next();
3029
+ let currentFromNext = currentFrom && $512e3a9270ec7803$var$dom.next(fromChildren, currentFrom);
3030
+ patch(currentFrom, currentTo);
3031
+ currentTo = currentTo && $512e3a9270ec7803$var$dom.next(toChildren, currentTo);
2921
3032
  currentFrom = currentFromNext;
2922
3033
  }
2923
3034
  let removals = [];
2924
3035
  while(currentFrom){
2925
3036
  if (!$512e3a9270ec7803$var$shouldSkip(removing, currentFrom)) removals.push(currentFrom);
2926
- currentFrom = $512e3a9270ec7803$var$dom(currentFrom).nodes().next();
3037
+ currentFrom = $512e3a9270ec7803$var$dom.next(fromChildren, currentFrom);
2927
3038
  }
2928
3039
  while(removals.length){
2929
3040
  let domForRemoval = removals.shift();
2930
3041
  domForRemoval.remove();
2931
- await breakpoint("remove el");
2932
3042
  removed(domForRemoval);
2933
3043
  }
2934
3044
  }
@@ -2943,33 +3053,29 @@ async function $512e3a9270ec7803$export$2e5e8c41f5d4e7c7(from, toHtml, options)
2943
3053
  });
2944
3054
  return map;
2945
3055
  }
2946
- function addNodeTo(node, parent) {
3056
+ function addNodeBefore(children, node, beforeMe) {
2947
3057
  if (!$512e3a9270ec7803$var$shouldSkip(adding, node)) {
2948
3058
  let clone = node.cloneNode(true);
2949
- $512e3a9270ec7803$var$dom(parent).append(clone);
3059
+ children = $512e3a9270ec7803$var$dom.before(children, beforeMe, clone);
2950
3060
  added(clone);
2951
- return clone;
2952
- }
2953
- return null;
2954
- }
2955
- function addNodeBefore(node, beforeMe) {
2956
- if (!$512e3a9270ec7803$var$shouldSkip(adding, node)) {
2957
- let clone = node.cloneNode(true);
2958
- $512e3a9270ec7803$var$dom(beforeMe).before(clone);
2959
- added(clone);
2960
- return clone;
3061
+ return [
3062
+ children,
3063
+ clone
3064
+ ];
2961
3065
  }
2962
- return beforeMe;
3066
+ return [
3067
+ children,
3068
+ node
3069
+ ];
2963
3070
  }
2964
3071
  assignOptions(options);
2965
3072
  fromEl = from;
2966
- toEl = $512e3a9270ec7803$var$createElement(toHtml);
3073
+ toEl = typeof toHtml === "string" ? $512e3a9270ec7803$var$createElement(toHtml) : toHtml;
2967
3074
  if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) {
2968
3075
  toEl._x_dataStack = window.Alpine.closestDataStack(from);
2969
3076
  toEl._x_dataStack && window.Alpine.clone(from, toEl);
2970
3077
  }
2971
- await breakpoint();
2972
- await patch(from, toEl);
3078
+ patch(from, toEl);
2973
3079
  fromEl = void 0;
2974
3080
  toEl = void 0;
2975
3081
  return from;
@@ -3024,6 +3130,15 @@ function $a5acee56471cec18$var$src_default(Alpine) {
3024
3130
  get: ()=>persist()
3025
3131
  });
3026
3132
  Alpine.magic("persist", persist);
3133
+ Alpine.persist = (key, { get: get , set: set }, storage = localStorage)=>{
3134
+ let initial = $a5acee56471cec18$var$storageHas(key, storage) ? $a5acee56471cec18$var$storageGet(key, storage) : get();
3135
+ set(initial);
3136
+ Alpine.effect(()=>{
3137
+ let value = get();
3138
+ $a5acee56471cec18$var$storageSet(key, value, storage);
3139
+ set(value);
3140
+ });
3141
+ };
3027
3142
  }
3028
3143
  function $a5acee56471cec18$var$storageHas(key, storage) {
3029
3144
  return storage.getItem(key) !== null;
@@ -6422,7 +6537,7 @@ var $5267f0d63de538ba$exports = {};
6422
6537
  // Use session cookie as fallback
6423
6538
  try {
6424
6539
  window.document.cookie = encodeURIComponent(storageKey) + "=" + levelName + ";";
6425
- } catch (ignore1) {}
6540
+ } catch (ignore) {}
6426
6541
  }
6427
6542
  function getPersistedLevel() {
6428
6543
  var storedLevel;
@@ -6435,7 +6550,7 @@ var $5267f0d63de538ba$exports = {};
6435
6550
  var cookie = window.document.cookie;
6436
6551
  var location = cookie.indexOf(encodeURIComponent(storageKey) + "=");
6437
6552
  if (location !== -1) storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];
6438
- } catch (ignore1) {}
6553
+ } catch (ignore) {}
6439
6554
  // If the stored level is not valid, treat it as if nothing was stored.
6440
6555
  if (self.levels[storedLevel] === undefined) storedLevel = undefined;
6441
6556
  return storedLevel;
@@ -6450,7 +6565,7 @@ var $5267f0d63de538ba$exports = {};
6450
6565
  // Use session cookie as fallback
6451
6566
  try {
6452
6567
  window.document.cookie = encodeURIComponent(storageKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
6453
- } catch (ignore1) {}
6568
+ } catch (ignore) {}
6454
6569
  }
6455
6570
  /*
6456
6571
  *
@@ -7705,7 +7820,7 @@ function $5439cede634b2921$var$toCamel(s) {
7705
7820
  }
7706
7821
 
7707
7822
 
7708
- var $1f889267678ff167$exports = {};
7823
+ var $507914d7ec48451d$exports = {};
7709
7824
  var $cbd28b10fa9798c7$exports = {};
7710
7825
 
7711
7826
  $parcel$defineInteropFlag($cbd28b10fa9798c7$exports);
@@ -8256,7 +8371,7 @@ function $8e357be334f3fad9$export$ed5e13716264f202(generatorOptions) {
8256
8371
  state.orderedModifiers = orderedModifiers.filter(function(m) {
8257
8372
  return m.enabled;
8258
8373
  }); // Validate the provided modifiers so that the consumer will get warned
8259
- var modifiers, _ref, name, flipModifier, _ref2, name1, _getComputedStyle, marginTop, marginRight, marginBottom, marginLeft, margin;
8374
+ var modifiers, flipModifier, _getComputedStyle, marginTop, marginRight, marginBottom, marginLeft;
8260
8375
  runModifierEffects();
8261
8376
  return instance.update();
8262
8377
  },
@@ -8567,7 +8682,7 @@ function $03e421bdaa8eda14$export$378fa78a8fea596f(_ref2) {
8567
8682
  function $03e421bdaa8eda14$var$computeStyles(_ref5) {
8568
8683
  var state = _ref5.state, options = _ref5.options;
8569
8684
  var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
8570
- var transitionProperty, property;
8685
+ var transitionProperty;
8571
8686
  var commonStyles = {
8572
8687
  placement: (0, $923eec132c8d334b$export$2e2bcd8739ae039)(state.placement),
8573
8688
  variation: (0, $6572b8fb6297a772$export$2e2bcd8739ae039)(state.placement),
@@ -11294,39 +11409,6 @@ function $47a1c62621be0c54$export$2e2bcd8739ae039() {
11294
11409
  }
11295
11410
 
11296
11411
 
11297
- var $e398acaded942bbe$exports = {};
11298
-
11299
- $parcel$defineInteropFlag($e398acaded942bbe$exports);
11300
-
11301
- $parcel$export($e398acaded942bbe$exports, "default", () => $e398acaded942bbe$export$2e2bcd8739ae039);
11302
-
11303
- function $e398acaded942bbe$export$2e2bcd8739ae039(targetSelector) {
11304
- return {
11305
- width: 0,
11306
- height: 0,
11307
- resizing: false,
11308
- target: null,
11309
- init () {
11310
- this.target = document.querySelector(targetSelector);
11311
- if (this.target) {
11312
- this.width = Math.round(this.target.clientWidth);
11313
- this.height = Math.round(this.target.clientHeight);
11314
- this.createObserver();
11315
- }
11316
- },
11317
- createObserver () {
11318
- if (this.target) this.observer = (0, $9930d46698775b42$export$a2214cc2adb2dc44)(document.querySelector(targetSelector), ({ width: width , height: height })=>{
11319
- this.width = width;
11320
- this.height = height;
11321
- });
11322
- },
11323
- tearDown () {
11324
- if (this.observer) this.observer.disconnect();
11325
- }
11326
- };
11327
- }
11328
-
11329
-
11330
11412
  var $e1f51f020443edd4$exports = {};
11331
11413
 
11332
11414
  $parcel$defineInteropFlag($e1f51f020443edd4$exports);
@@ -12201,6 +12283,39 @@ function $e1f51f020443edd4$export$2e2bcd8739ae039(id, embedStore) {
12201
12283
  }
12202
12284
 
12203
12285
 
12286
+ var $e398acaded942bbe$exports = {};
12287
+
12288
+ $parcel$defineInteropFlag($e398acaded942bbe$exports);
12289
+
12290
+ $parcel$export($e398acaded942bbe$exports, "default", () => $e398acaded942bbe$export$2e2bcd8739ae039);
12291
+
12292
+ function $e398acaded942bbe$export$2e2bcd8739ae039(targetSelector) {
12293
+ return {
12294
+ width: 0,
12295
+ height: 0,
12296
+ resizing: false,
12297
+ target: null,
12298
+ init () {
12299
+ this.target = document.querySelector(targetSelector);
12300
+ if (this.target) {
12301
+ this.width = Math.round(this.target.clientWidth);
12302
+ this.height = Math.round(this.target.clientHeight);
12303
+ this.createObserver();
12304
+ }
12305
+ },
12306
+ createObserver () {
12307
+ if (this.target) this.observer = (0, $9930d46698775b42$export$a2214cc2adb2dc44)(document.querySelector(targetSelector), ({ width: width , height: height })=>{
12308
+ this.width = width;
12309
+ this.height = height;
12310
+ });
12311
+ },
12312
+ tearDown () {
12313
+ if (this.observer) this.observer.disconnect();
12314
+ }
12315
+ };
12316
+ }
12317
+
12318
+
12204
12319
  var $e9904a14dabf652d$exports = {};
12205
12320
 
12206
12321
  $parcel$defineInteropFlag($e9904a14dabf652d$exports);
@@ -12282,6 +12397,33 @@ function $d92d9d5253f84566$export$2e2bcd8739ae039(store) {
12282
12397
  }
12283
12398
 
12284
12399
 
12400
+ var $a87dacf5139b5e2f$exports = {};
12401
+
12402
+ $parcel$defineInteropFlag($a87dacf5139b5e2f$exports);
12403
+
12404
+ $parcel$export($a87dacf5139b5e2f$exports, "default", () => $a87dacf5139b5e2f$export$2e2bcd8739ae039);
12405
+ function $a87dacf5139b5e2f$export$2e2bcd8739ae039(store) {
12406
+ return {
12407
+ get store () {
12408
+ return store || this;
12409
+ },
12410
+ get id () {
12411
+ return this.$root.id;
12412
+ },
12413
+ get panels () {
12414
+ return Array.from(this.$refs.panels.children);
12415
+ },
12416
+ isActive (el) {
12417
+ return this.store.activeTab === this._getRef(el);
12418
+ },
12419
+ // protected
12420
+ _getRef (el) {
12421
+ return el.getAttribute("x-ref");
12422
+ }
12423
+ };
12424
+ }
12425
+
12426
+
12285
12427
  var $506dabb2bf255b38$exports = {};
12286
12428
 
12287
12429
  $parcel$defineInteropFlag($506dabb2bf255b38$exports);
@@ -12832,33 +12974,6 @@ function $506dabb2bf255b38$var$sizeSplits(sizes) {
12832
12974
  }
12833
12975
 
12834
12976
 
12835
- var $a87dacf5139b5e2f$exports = {};
12836
-
12837
- $parcel$defineInteropFlag($a87dacf5139b5e2f$exports);
12838
-
12839
- $parcel$export($a87dacf5139b5e2f$exports, "default", () => $a87dacf5139b5e2f$export$2e2bcd8739ae039);
12840
- function $a87dacf5139b5e2f$export$2e2bcd8739ae039(store) {
12841
- return {
12842
- get store () {
12843
- return store || this;
12844
- },
12845
- get id () {
12846
- return this.$root.id;
12847
- },
12848
- get panels () {
12849
- return Array.from(this.$refs.panels.children);
12850
- },
12851
- isActive (el) {
12852
- return this.store.activeTab === this._getRef(el);
12853
- },
12854
- // protected
12855
- _getRef (el) {
12856
- return el.getAttribute("x-ref");
12857
- }
12858
- };
12859
- }
12860
-
12861
-
12862
12977
  var $0db07828cadc68e0$exports = {};
12863
12978
 
12864
12979
  $parcel$defineInteropFlag($0db07828cadc68e0$exports);
@@ -13079,17 +13194,17 @@ function $6d64716f0b34fdf4$export$2e2bcd8739ae039(store) {
13079
13194
  }
13080
13195
 
13081
13196
 
13082
- $1f889267678ff167$exports = {
13197
+ $507914d7ec48451d$exports = {
13083
13198
  "button": $cbd28b10fa9798c7$exports,
13084
13199
  "code": $99486586f6691564$exports,
13085
13200
  "copy_button": $47a1c62621be0c54$exports,
13086
- "dimensions_display": $e398acaded942bbe$exports,
13087
13201
  "embed": $e1f51f020443edd4$exports,
13202
+ "dimensions_display": $e398acaded942bbe$exports,
13088
13203
  "filter": $e9904a14dabf652d$exports,
13089
13204
  "icon": $36506012e0c6e9e3$exports,
13090
13205
  "nav": $d92d9d5253f84566$exports,
13091
- "split_layout": $506dabb2bf255b38$exports,
13092
13206
  "tab_panels": $a87dacf5139b5e2f$exports,
13207
+ "split_layout": $506dabb2bf255b38$exports,
13093
13208
  "tabs": $0db07828cadc68e0$exports,
13094
13209
  "viewport": $6d64716f0b34fdf4$exports
13095
13210
  };
@@ -13380,7 +13495,7 @@ const $d73574cc5e9b9e72$var$prefix = window.APP_NAME;
13380
13495
  // Components
13381
13496
  (0, $caa9439642c6336c$export$2e2bcd8739ae039).data("app", (0, $d709d0f4027033b2$export$2e2bcd8739ae039));
13382
13497
  [
13383
- $1f889267678ff167$exports,
13498
+ $507914d7ec48451d$exports,
13384
13499
  $fe98e3f2bf49b28f$exports,
13385
13500
  $6c10158820e535ef$exports
13386
13501
  ].forEach((scripts)=>{