lookbook 1.4.5 → 1.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -4
  3. data/app/components/lookbook/display_options/editor/component.html.erb +1 -1
  4. data/app/components/lookbook/embed/component.html.erb +4 -4
  5. data/app/components/lookbook/header/component.html.erb +6 -6
  6. data/app/components/lookbook/tabs/component.rb +1 -1
  7. data/app/components/lookbook/viewport/component.html.erb +2 -1
  8. data/app/controllers/concerns/lookbook/targetable_concern.rb +3 -2
  9. data/app/controllers/lookbook/application_controller.rb +1 -0
  10. data/app/controllers/lookbook/previews_controller.rb +38 -0
  11. data/app/helpers/lookbook/page_helper.rb +0 -2
  12. data/app/views/layouts/lookbook/application.html.erb +14 -14
  13. data/app/views/layouts/lookbook/shell.html.erb +1 -1
  14. data/app/views/lookbook/inspector/panels/_params.html.erb +1 -1
  15. data/app/views/lookbook/inspector/show.html.erb +23 -23
  16. data/app/views/lookbook/pages/show.html.erb +1 -1
  17. data/app/views/lookbook/preview.html.erb +1 -1
  18. data/config/routes.rb +1 -0
  19. data/lib/lookbook/engine.rb +10 -0
  20. data/lib/lookbook/entities/preview_example.rb +4 -0
  21. data/lib/lookbook/entities/preview_group.rb +4 -0
  22. data/lib/lookbook/error.rb +1 -1
  23. data/lib/lookbook/services/markdown_renderer.rb +1 -5
  24. data/lib/lookbook/version.rb +1 -1
  25. data/public/lookbook-assets/css/lookbook.css +357 -355
  26. data/public/lookbook-assets/css/lookbook.css.map +1 -1
  27. data/public/lookbook-assets/js/embed.js +32 -31
  28. data/public/lookbook-assets/js/embed.js.map +1 -1
  29. data/public/lookbook-assets/js/lookbook.js +519 -403
  30. data/public/lookbook-assets/js/lookbook.js.map +1 -1
  31. metadata +11 -5
@@ -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 $0c54d9c6f64a406e$exports = {};
7823
+ var $1f889267678ff167$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),
@@ -11238,39 +11353,6 @@ function $99486586f6691564$export$2e2bcd8739ae039() {
11238
11353
  }
11239
11354
 
11240
11355
 
11241
- var $e398acaded942bbe$exports = {};
11242
-
11243
- $parcel$defineInteropFlag($e398acaded942bbe$exports);
11244
-
11245
- $parcel$export($e398acaded942bbe$exports, "default", () => $e398acaded942bbe$export$2e2bcd8739ae039);
11246
-
11247
- function $e398acaded942bbe$export$2e2bcd8739ae039(targetSelector) {
11248
- return {
11249
- width: 0,
11250
- height: 0,
11251
- resizing: false,
11252
- target: null,
11253
- init () {
11254
- this.target = document.querySelector(targetSelector);
11255
- if (this.target) {
11256
- this.width = Math.round(this.target.clientWidth);
11257
- this.height = Math.round(this.target.clientHeight);
11258
- this.createObserver();
11259
- }
11260
- },
11261
- createObserver () {
11262
- if (this.target) this.observer = (0, $9930d46698775b42$export$a2214cc2adb2dc44)(document.querySelector(targetSelector), ({ width: width , height: height })=>{
11263
- this.width = width;
11264
- this.height = height;
11265
- });
11266
- },
11267
- tearDown () {
11268
- if (this.observer) this.observer.disconnect();
11269
- }
11270
- };
11271
- }
11272
-
11273
-
11274
11356
  var $47a1c62621be0c54$exports = {};
11275
11357
 
11276
11358
  $parcel$defineInteropFlag($47a1c62621be0c54$exports);
@@ -11327,26 +11409,34 @@ function $47a1c62621be0c54$export$2e2bcd8739ae039() {
11327
11409
  }
11328
11410
 
11329
11411
 
11330
- var $e9904a14dabf652d$exports = {};
11412
+ var $e398acaded942bbe$exports = {};
11331
11413
 
11332
- $parcel$defineInteropFlag($e9904a14dabf652d$exports);
11414
+ $parcel$defineInteropFlag($e398acaded942bbe$exports);
11333
11415
 
11334
- $parcel$export($e9904a14dabf652d$exports, "default", () => $e9904a14dabf652d$export$2e2bcd8739ae039);
11335
- function $e9904a14dabf652d$export$2e2bcd8739ae039(store) {
11416
+ $parcel$export($e398acaded942bbe$exports, "default", () => $e398acaded942bbe$export$2e2bcd8739ae039);
11417
+
11418
+ function $e398acaded942bbe$export$2e2bcd8739ae039(targetSelector) {
11336
11419
  return {
11337
- focussed: false,
11338
- get active () {
11339
- return store.active;
11340
- },
11341
- get text () {
11342
- return store.text;
11420
+ width: 0,
11421
+ height: 0,
11422
+ resizing: false,
11423
+ target: null,
11424
+ init () {
11425
+ this.target = document.querySelector(targetSelector);
11426
+ if (this.target) {
11427
+ this.width = Math.round(this.target.clientWidth);
11428
+ this.height = Math.round(this.target.clientHeight);
11429
+ this.createObserver();
11430
+ }
11343
11431
  },
11344
- clear () {
11345
- if (store.raw === "") this.$refs.input.blur();
11346
- else store.raw = "";
11432
+ createObserver () {
11433
+ if (this.target) this.observer = (0, $9930d46698775b42$export$a2214cc2adb2dc44)(document.querySelector(targetSelector), ({ width: width , height: height })=>{
11434
+ this.width = width;
11435
+ this.height = height;
11436
+ });
11347
11437
  },
11348
- focus () {
11349
- this.$refs.input.focus();
11438
+ tearDown () {
11439
+ if (this.observer) this.observer.disconnect();
11350
11440
  }
11351
11441
  };
11352
11442
  }
@@ -11433,11 +11523,11 @@ var $ef5e88eaa61efd95$exports = {};
11433
11523
  var x;
11434
11524
  // Remove vendor prefixing if prefixed and break early if not
11435
11525
  for(x = 0; x < vendors.length && !requestAnimationFrame; x += 1)requestAnimationFrame = window[vendors[x] + "RequestAnimationFrame"];
11436
- if (!requestAnimationFrame) log("setup", "RequestAnimationFrame not supported");
11437
- else // Firefox extension content-scripts have a globalThis object that is not the same as window.
11526
+ if (requestAnimationFrame) // Firefox extension content-scripts have a globalThis object that is not the same as window.
11438
11527
  // Binding `requestAnimationFrame` to window allows the function to work and prevents errors
11439
11528
  // being thrown when run in that context, and should be a no-op in every other context.
11440
11529
  requestAnimationFrame = requestAnimationFrame.bind(window);
11530
+ else log("setup", "RequestAnimationFrame not supported");
11441
11531
  }
11442
11532
  function getMyID(iframeId) {
11443
11533
  var retStr = "Host page: " + iframeId;
@@ -11475,7 +11565,7 @@ var $ef5e88eaa61efd95$exports = {};
11475
11565
  syncResize(resize, messageData, "init");
11476
11566
  }
11477
11567
  function processMsg() {
11478
- var data = msg.substr(msgIdLen).split(":");
11568
+ var data = msg.slice(msgIdLen).split(":");
11479
11569
  var height = data[1] ? parseInt(data[1], 10) : 0;
11480
11570
  var iframe = settings[data[0]] && settings[data[0]].iframe;
11481
11571
  var compStyle = getComputedStyle(iframe);
@@ -11535,12 +11625,12 @@ var $ef5e88eaa61efd95$exports = {};
11535
11625
  return true;
11536
11626
  }
11537
11627
  function isMessageForUs() {
11538
- return msgId === ("" + msg).substr(0, msgIdLen) && msg.substr(msgIdLen).split(":")[0] in settings // ''+Protects against non-string msg
11628
+ return msgId === ("" + msg).slice(0, msgIdLen) && msg.slice(msgIdLen).split(":")[0] in settings // ''+Protects against non-string msg
11539
11629
  ;
11540
11630
  }
11541
11631
  function isMessageFromMetaParent() {
11542
11632
  // Test if this message is from a parent above us. This is an ugly test, however, updating
11543
- // the message format would break backwards compatibity.
11633
+ // the message format would break backwards compatibility.
11544
11634
  var retCode = messageData.type in {
11545
11635
  true: 1,
11546
11636
  false: 1,
@@ -11550,7 +11640,7 @@ var $ef5e88eaa61efd95$exports = {};
11550
11640
  return retCode;
11551
11641
  }
11552
11642
  function getMsgBody(offset) {
11553
- return msg.substr(msg.indexOf(":") + msgHeaderLen + offset);
11643
+ return msg.slice(msg.indexOf(":") + msgHeaderLen + offset);
11554
11644
  }
11555
11645
  function forwardMsgFromIFrame(msgBody) {
11556
11646
  log(iframeId, "onMessage passed: {iframe: " + messageData.iframe.id + ", message: " + msgBody + "}");
@@ -11652,12 +11742,12 @@ var $ef5e88eaa61efd95$exports = {};
11652
11742
  y: 0
11653
11743
  }, newPosition = calcOffset();
11654
11744
  log(iframeId, "Reposition requested from iFrame (offset x:" + offset.x + " y:" + offset.y + ")");
11655
- if (window.top !== window.self) scrollParent();
11656
- else reposition();
11745
+ if (window.top === window.self) reposition();
11746
+ else scrollParent();
11657
11747
  }
11658
11748
  function scrollTo() {
11659
- if (false !== on("onScroll", pagePosition)) setPagePosition(iframeId);
11660
- else unsetPagePosition();
11749
+ if (false === on("onScroll", pagePosition)) unsetPagePosition();
11750
+ else setPagePosition(iframeId);
11661
11751
  }
11662
11752
  function findTarget(location) {
11663
11753
  function jumpToTarget() {
@@ -11676,8 +11766,8 @@ var $ef5e88eaa61efd95$exports = {};
11676
11766
  }
11677
11767
  var hash = location.split("#")[1] || "", hashData = decodeURIComponent(hash), target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];
11678
11768
  if (target) jumpToTarget();
11679
- else if (window.top !== window.self) jumpToParent();
11680
- else log(iframeId, "In page link #" + hash + " not found");
11769
+ else if (window.top === window.self) log(iframeId, "In page link #" + hash + " not found");
11770
+ else jumpToParent();
11681
11771
  }
11682
11772
  function onMouse(event) {
11683
11773
  var mousePos = {};
@@ -11807,8 +11897,8 @@ var $ef5e88eaa61efd95$exports = {};
11807
11897
  function getPagePosition(iframeId) {
11808
11898
  if (null === pagePosition) {
11809
11899
  pagePosition = {
11810
- x: window.pageXOffset !== undefined ? window.pageXOffset : document.documentElement.scrollLeft,
11811
- y: window.pageYOffset !== undefined ? window.pageYOffset : document.documentElement.scrollTop
11900
+ x: window.pageXOffset === undefined ? document.documentElement.scrollLeft : window.pageXOffset,
11901
+ y: window.pageYOffset === undefined ? document.documentElement.scrollTop : window.pageYOffset
11812
11902
  };
11813
11903
  log(iframeId, "Get page position: " + pagePosition.x + "," + pagePosition.y);
11814
11904
  }
@@ -12053,14 +12143,15 @@ var $ef5e88eaa61efd95$exports = {};
12053
12143
  return iframeId in settings && "iFrameResizer" in iframe;
12054
12144
  }
12055
12145
  var iframeId = ensureHasId(iframe.id);
12056
- if (!beenHere()) {
12146
+ if (beenHere()) warn(iframeId, "Ignored iFrame, already setup.");
12147
+ else {
12057
12148
  processOptions(options);
12058
12149
  setScrolling();
12059
12150
  setLimits();
12060
12151
  setupBodyMarginValues();
12061
12152
  init(createOutgoingMsg(iframeId));
12062
12153
  setupIFrameObject();
12063
- } else warn(iframeId, "Ignored iFrame, already setup.");
12154
+ }
12064
12155
  }
12065
12156
  function debouce(fn, time) {
12066
12157
  if (null === timer) timer = setTimeout(function() {
@@ -12119,10 +12210,10 @@ var $ef5e88eaa61efd95$exports = {};
12119
12210
  // Not testable in PhantomJS
12120
12211
  /* istanbul ignore next */ function tabVisible() {
12121
12212
  function resize() {
12122
- sendTriggerMsg("Tab Visable", "resize");
12213
+ sendTriggerMsg("Tab Visible", "resize");
12123
12214
  }
12124
12215
  if ("hidden" !== document.visibilityState) {
12125
- log("document", "Trigger event: Visiblity change");
12216
+ log("document", "Trigger event: Visibility change");
12126
12217
  debouce(resize, 16);
12127
12218
  }
12128
12219
  }
@@ -12187,7 +12278,7 @@ var $ef5e88eaa61efd95$exports = {};
12187
12278
  return this.filter("iframe").each(init).end();
12188
12279
  };
12189
12280
  }
12190
- if (window.jQuery) createJQueryPublicMethod(window.jQuery);
12281
+ if (window.jQuery !== undefined) createJQueryPublicMethod(window.jQuery);
12191
12282
  if (typeof define === "function" && define.amd) define([], factory);
12192
12283
  else if (typeof $ef5e88eaa61efd95$exports === "object") // Node for browserfy
12193
12284
  $ef5e88eaa61efd95$exports = factory();
@@ -12226,6 +12317,31 @@ function $e1f51f020443edd4$export$2e2bcd8739ae039(id, embedStore) {
12226
12317
  }
12227
12318
 
12228
12319
 
12320
+ var $e9904a14dabf652d$exports = {};
12321
+
12322
+ $parcel$defineInteropFlag($e9904a14dabf652d$exports);
12323
+
12324
+ $parcel$export($e9904a14dabf652d$exports, "default", () => $e9904a14dabf652d$export$2e2bcd8739ae039);
12325
+ function $e9904a14dabf652d$export$2e2bcd8739ae039(store) {
12326
+ return {
12327
+ focussed: false,
12328
+ get active () {
12329
+ return store.active;
12330
+ },
12331
+ get text () {
12332
+ return store.text;
12333
+ },
12334
+ clear () {
12335
+ if (store.raw === "") this.$refs.input.blur();
12336
+ else store.raw = "";
12337
+ },
12338
+ focus () {
12339
+ this.$refs.input.focus();
12340
+ }
12341
+ };
12342
+ }
12343
+
12344
+
12229
12345
  var $36506012e0c6e9e3$exports = {};
12230
12346
 
12231
12347
  $parcel$defineInteropFlag($36506012e0c6e9e3$exports);
@@ -13079,13 +13195,13 @@ function $6d64716f0b34fdf4$export$2e2bcd8739ae039(store) {
13079
13195
  }
13080
13196
 
13081
13197
 
13082
- $0c54d9c6f64a406e$exports = {
13198
+ $1f889267678ff167$exports = {
13083
13199
  "button": $cbd28b10fa9798c7$exports,
13084
13200
  "code": $99486586f6691564$exports,
13085
- "dimensions_display": $e398acaded942bbe$exports,
13086
13201
  "copy_button": $47a1c62621be0c54$exports,
13087
- "filter": $e9904a14dabf652d$exports,
13202
+ "dimensions_display": $e398acaded942bbe$exports,
13088
13203
  "embed": $e1f51f020443edd4$exports,
13204
+ "filter": $e9904a14dabf652d$exports,
13089
13205
  "icon": $36506012e0c6e9e3$exports,
13090
13206
  "nav": $d92d9d5253f84566$exports,
13091
13207
  "split_layout": $506dabb2bf255b38$exports,
@@ -13095,7 +13211,7 @@ $0c54d9c6f64a406e$exports = {
13095
13211
  };
13096
13212
 
13097
13213
 
13098
- var $8d334f4a3d8b76bc$exports = {};
13214
+ var $fe98e3f2bf49b28f$exports = {};
13099
13215
  var $6a9b69d9cc7f810f$exports = {};
13100
13216
 
13101
13217
  $parcel$defineInteropFlag($6a9b69d9cc7f810f$exports);
@@ -13214,38 +13330,6 @@ function $6a9b69d9cc7f810f$export$2e2bcd8739ae039({ name: name , value: value }
13214
13330
  }
13215
13331
 
13216
13332
 
13217
- var $1a7a7298eec5b755$exports = {};
13218
-
13219
- $parcel$defineInteropFlag($1a7a7298eec5b755$exports);
13220
-
13221
- $parcel$export($1a7a7298eec5b755$exports, "default", () => $1a7a7298eec5b755$export$2e2bcd8739ae039);
13222
-
13223
- function $1a7a7298eec5b755$export$2e2bcd8739ae039() {
13224
- return {
13225
- narrow: false,
13226
- init () {
13227
- (0, $9930d46698775b42$export$a2214cc2adb2dc44)(this.$el, ({ width: width })=>{
13228
- this.narrow = width < 500;
13229
- });
13230
- }
13231
- };
13232
- }
13233
-
13234
-
13235
- var $e773f8ef556b41ff$exports = {};
13236
-
13237
- $parcel$defineInteropFlag($e773f8ef556b41ff$exports);
13238
-
13239
- $parcel$export($e773f8ef556b41ff$exports, "default", () => $e773f8ef556b41ff$export$2e2bcd8739ae039);
13240
- function $e773f8ef556b41ff$export$2e2bcd8739ae039() {
13241
- return {
13242
- get isNarrowLayout () {
13243
- return this.narrow || false;
13244
- }
13245
- };
13246
- }
13247
-
13248
-
13249
13333
  var $9b24cbeb3a465447$exports = {};
13250
13334
 
13251
13335
  $parcel$defineInteropFlag($9b24cbeb3a465447$exports);
@@ -13303,16 +13387,48 @@ function $9b24cbeb3a465447$export$2e2bcd8739ae039({ id: id , matchers: matchers
13303
13387
  }
13304
13388
 
13305
13389
 
13306
- $8d334f4a3d8b76bc$exports = {
13390
+ var $1a7a7298eec5b755$exports = {};
13391
+
13392
+ $parcel$defineInteropFlag($1a7a7298eec5b755$exports);
13393
+
13394
+ $parcel$export($1a7a7298eec5b755$exports, "default", () => $1a7a7298eec5b755$export$2e2bcd8739ae039);
13395
+
13396
+ function $1a7a7298eec5b755$export$2e2bcd8739ae039() {
13397
+ return {
13398
+ narrow: false,
13399
+ init () {
13400
+ (0, $9930d46698775b42$export$a2214cc2adb2dc44)(this.$el, ({ width: width })=>{
13401
+ this.narrow = width < 500;
13402
+ });
13403
+ }
13404
+ };
13405
+ }
13406
+
13407
+
13408
+ var $e773f8ef556b41ff$exports = {};
13409
+
13410
+ $parcel$defineInteropFlag($e773f8ef556b41ff$exports);
13411
+
13412
+ $parcel$export($e773f8ef556b41ff$exports, "default", () => $e773f8ef556b41ff$export$2e2bcd8739ae039);
13413
+ function $e773f8ef556b41ff$export$2e2bcd8739ae039() {
13414
+ return {
13415
+ get isNarrowLayout () {
13416
+ return this.narrow || false;
13417
+ }
13418
+ };
13419
+ }
13420
+
13421
+
13422
+ $fe98e3f2bf49b28f$exports = {
13307
13423
  "display_options": {
13308
13424
  "field": $6a9b69d9cc7f810f$exports
13309
13425
  },
13426
+ "nav": {
13427
+ "item": $9b24cbeb3a465447$exports
13428
+ },
13310
13429
  "params": {
13311
13430
  "editor": $1a7a7298eec5b755$exports,
13312
13431
  "field": $e773f8ef556b41ff$exports
13313
- },
13314
- "nav": {
13315
- "item": $9b24cbeb3a465447$exports
13316
13432
  }
13317
13433
  };
13318
13434
 
@@ -13380,8 +13496,8 @@ const $d73574cc5e9b9e72$var$prefix = window.APP_NAME;
13380
13496
  // Components
13381
13497
  (0, $caa9439642c6336c$export$2e2bcd8739ae039).data("app", (0, $d709d0f4027033b2$export$2e2bcd8739ae039));
13382
13498
  [
13383
- $0c54d9c6f64a406e$exports,
13384
- $8d334f4a3d8b76bc$exports,
13499
+ $1f889267678ff167$exports,
13500
+ $fe98e3f2bf49b28f$exports,
13385
13501
  $6c10158820e535ef$exports
13386
13502
  ].forEach((scripts)=>{
13387
13503
  const components = (0, $5439cede634b2921$export$4e811121b221213b)(scripts);