lookbook 2.3.13 → 2.3.15

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.
@@ -390,7 +390,14 @@ function $caa9439642c6336c$var$tryCatch(el, expression, callback, ...args) {
390
390
  $caa9439642c6336c$var$handleError(e, el, expression);
391
391
  }
392
392
  }
393
- function $caa9439642c6336c$var$handleError(error2, el, expression) {
393
+ function $caa9439642c6336c$var$handleError(...args) {
394
+ return $caa9439642c6336c$var$errorHandler(...args);
395
+ }
396
+ var $caa9439642c6336c$var$errorHandler = $caa9439642c6336c$var$normalErrorHandler;
397
+ function $caa9439642c6336c$var$setErrorHandler(handler4) {
398
+ $caa9439642c6336c$var$errorHandler = handler4;
399
+ }
400
+ function $caa9439642c6336c$var$normalErrorHandler(error2, el, expression) {
394
401
  error2 = Object.assign(error2 ?? {
395
402
  message: "No error message given."
396
403
  }, {
@@ -425,6 +432,10 @@ var $caa9439642c6336c$var$theEvaluatorFunction = $caa9439642c6336c$var$normalEva
425
432
  function $caa9439642c6336c$var$setEvaluator(newEvaluator) {
426
433
  $caa9439642c6336c$var$theEvaluatorFunction = newEvaluator;
427
434
  }
435
+ var $caa9439642c6336c$var$theRawEvaluatorFunction;
436
+ function $caa9439642c6336c$var$setRawEvaluator(newEvaluator) {
437
+ $caa9439642c6336c$var$theRawEvaluatorFunction = newEvaluator;
438
+ }
428
439
  function $caa9439642c6336c$var$normalEvaluator(el, expression) {
429
440
  let overriddenMagics = {};
430
441
  $caa9439642c6336c$var$injectMagics(overriddenMagics, el);
@@ -436,7 +447,14 @@ function $caa9439642c6336c$var$normalEvaluator(el, expression) {
436
447
  return $caa9439642c6336c$var$tryCatch.bind(null, el, expression, evaluator);
437
448
  }
438
449
  function $caa9439642c6336c$var$generateEvaluatorFromFunction(dataStack, func) {
439
- return (receiver = ()=>{}, { scope: scope2 = {}, params: params = [] } = {})=>{
450
+ return (receiver = ()=>{}, { scope: scope2 = {}, params: params = [], context: context } = {})=>{
451
+ if (!$caa9439642c6336c$var$shouldAutoEvaluateFunctions) {
452
+ $caa9439642c6336c$var$runIfTypeOfFunction(receiver, func, $caa9439642c6336c$var$mergeProxies([
453
+ scope2,
454
+ ...dataStack
455
+ ]), params);
456
+ return;
457
+ }
440
458
  let result = func.apply($caa9439642c6336c$var$mergeProxies([
441
459
  scope2,
442
460
  ...dataStack
@@ -470,7 +488,7 @@ function $caa9439642c6336c$var$generateFunctionFromString(expression, el) {
470
488
  }
471
489
  function $caa9439642c6336c$var$generateEvaluatorFromString(dataStack, expression, el) {
472
490
  let func = $caa9439642c6336c$var$generateFunctionFromString(expression, el);
473
- return (receiver = ()=>{}, { scope: scope2 = {}, params: params = [] } = {})=>{
491
+ return (receiver = ()=>{}, { scope: scope2 = {}, params: params = [], context: context } = {})=>{
474
492
  func.result = void 0;
475
493
  func.finished = false;
476
494
  let completeScope = $caa9439642c6336c$var$mergeProxies([
@@ -478,7 +496,7 @@ function $caa9439642c6336c$var$generateEvaluatorFromString(dataStack, expression
478
496
  ...dataStack
479
497
  ]);
480
498
  if (typeof func === "function") {
481
- let promise = func(func, completeScope).catch((error2)=>$caa9439642c6336c$var$handleError(error2, el, expression));
499
+ let promise = func.call(context, func, completeScope).catch((error2)=>$caa9439642c6336c$var$handleError(error2, el, expression));
482
500
  if (func.finished) {
483
501
  $caa9439642c6336c$var$runIfTypeOfFunction(receiver, func.result, completeScope, params, el);
484
502
  func.result = void 0;
@@ -496,6 +514,39 @@ function $caa9439642c6336c$var$runIfTypeOfFunction(receiver, value, scope2, para
496
514
  } else if (typeof value === "object" && value instanceof Promise) value.then((i)=>receiver(i));
497
515
  else receiver(value);
498
516
  }
517
+ function $caa9439642c6336c$var$evaluateRaw(...args) {
518
+ return $caa9439642c6336c$var$theRawEvaluatorFunction(...args);
519
+ }
520
+ function $caa9439642c6336c$var$normalRawEvaluator(el, expression, extras = {}) {
521
+ let overriddenMagics = {};
522
+ $caa9439642c6336c$var$injectMagics(overriddenMagics, el);
523
+ let dataStack = [
524
+ overriddenMagics,
525
+ ...$caa9439642c6336c$var$closestDataStack(el)
526
+ ];
527
+ let scope2 = $caa9439642c6336c$var$mergeProxies([
528
+ extras.scope ?? {},
529
+ ...dataStack
530
+ ]);
531
+ let params = extras.params ?? [];
532
+ if (expression.includes("await")) {
533
+ let AsyncFunction = Object.getPrototypeOf(async function() {}).constructor;
534
+ let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression.trim()) || /^(let|const)\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;
535
+ let func = new AsyncFunction([
536
+ "scope"
537
+ ], `with (scope) { let __result = ${rightSideSafeExpression}; return __result }`);
538
+ let result = func.call(extras.context, scope2);
539
+ return result;
540
+ } else {
541
+ let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression.trim()) || /^(let|const)\s/.test(expression.trim()) ? `(()=>{ ${expression} })()` : expression;
542
+ let func = new Function([
543
+ "scope"
544
+ ], `with (scope) { let __result = ${rightSideSafeExpression}; return __result }`);
545
+ let result = func.call(extras.context, scope2);
546
+ if (typeof result === "function" && $caa9439642c6336c$var$shouldAutoEvaluateFunctions) return result.apply(scope2, params);
547
+ return result;
548
+ }
549
+ }
499
550
  // packages/alpinejs/src/directives.js
500
551
  var $caa9439642c6336c$var$prefixAsString = "x-";
501
552
  function $caa9439642c6336c$var$prefix(subject = "") {
@@ -743,6 +794,7 @@ function $caa9439642c6336c$var$findClosest(el, callback) {
743
794
  if (!el) return;
744
795
  if (callback(el)) return el;
745
796
  if (el._x_teleportBack) el = el._x_teleportBack;
797
+ if (el.parentNode instanceof ShadowRoot) return $caa9439642c6336c$var$findClosest(el.parentNode.host, callback);
746
798
  if (!el.parentElement) return;
747
799
  return $caa9439642c6336c$var$findClosest(el.parentElement, callback);
748
800
  }
@@ -1405,10 +1457,10 @@ function $caa9439642c6336c$var$isRadio(el) {
1405
1457
  }
1406
1458
  // packages/alpinejs/src/utils/debounce.js
1407
1459
  function $caa9439642c6336c$var$debounce(func, wait) {
1408
- var timeout;
1460
+ let timeout;
1409
1461
  return function() {
1410
- var context = this, args = arguments;
1411
- var later = function() {
1462
+ const context = this, args = arguments;
1463
+ const later = function() {
1412
1464
  timeout = null;
1413
1465
  func.apply(context, args);
1414
1466
  };
@@ -1553,7 +1605,7 @@ var $caa9439642c6336c$var$Alpine = {
1553
1605
  get raw () {
1554
1606
  return $caa9439642c6336c$var$raw;
1555
1607
  },
1556
- version: "3.14.9",
1608
+ version: "3.15.3",
1557
1609
  flushAndStopDeferringMutations: $caa9439642c6336c$var$flushAndStopDeferringMutations,
1558
1610
  dontAutoEvaluateFunctions: $caa9439642c6336c$var$dontAutoEvaluateFunctions,
1559
1611
  disableEffectScheduling: $caa9439642c6336c$var$disableEffectScheduling,
@@ -1567,13 +1619,17 @@ var $caa9439642c6336c$var$Alpine = {
1567
1619
  onlyDuringClone: $caa9439642c6336c$var$onlyDuringClone,
1568
1620
  addRootSelector: $caa9439642c6336c$var$addRootSelector,
1569
1621
  addInitSelector: $caa9439642c6336c$var$addInitSelector,
1622
+ setErrorHandler: $caa9439642c6336c$var$setErrorHandler,
1570
1623
  interceptClone: $caa9439642c6336c$var$interceptClone,
1571
1624
  addScopeToNode: $caa9439642c6336c$var$addScopeToNode,
1572
1625
  deferMutations: $caa9439642c6336c$var$deferMutations,
1573
1626
  mapAttributes: $caa9439642c6336c$var$mapAttributes,
1574
1627
  evaluateLater: $caa9439642c6336c$var$evaluateLater,
1575
1628
  interceptInit: $caa9439642c6336c$var$interceptInit,
1629
+ initInterceptors: $caa9439642c6336c$var$initInterceptors,
1630
+ injectMagics: $caa9439642c6336c$var$injectMagics,
1576
1631
  setEvaluator: $caa9439642c6336c$var$setEvaluator,
1632
+ setRawEvaluator: $caa9439642c6336c$var$setRawEvaluator,
1577
1633
  mergeProxies: $caa9439642c6336c$var$mergeProxies,
1578
1634
  extractProp: $caa9439642c6336c$var$extractProp,
1579
1635
  findClosest: $caa9439642c6336c$var$findClosest,
@@ -1592,6 +1648,7 @@ var $caa9439642c6336c$var$Alpine = {
1592
1648
  throttle: $caa9439642c6336c$var$throttle,
1593
1649
  debounce: $caa9439642c6336c$var$debounce,
1594
1650
  evaluate: $caa9439642c6336c$var$evaluate,
1651
+ evaluateRaw: $caa9439642c6336c$var$evaluateRaw,
1595
1652
  initTree: $caa9439642c6336c$var$initTree,
1596
1653
  nextTick: $caa9439642c6336c$var$nextTick,
1597
1654
  prefixed: $caa9439642c6336c$var$prefix,
@@ -2453,7 +2510,8 @@ function $caa9439642c6336c$var$isListeningForASpecificKeyThatHasntBeenPressed(e,
2453
2510
  "self",
2454
2511
  "away",
2455
2512
  "outside",
2456
- "passive"
2513
+ "passive",
2514
+ "preserve-scroll"
2457
2515
  ].includes(i);
2458
2516
  });
2459
2517
  if (keyModifiers.includes("debounce")) {
@@ -2540,7 +2598,7 @@ $caa9439642c6336c$var$directive("model", (el, { modifiers: modifiers, expression
2540
2598
  if (typeof expression === "string" && el.type === "radio") $caa9439642c6336c$var$mutateDom(()=>{
2541
2599
  if (!el.hasAttribute("name")) el.setAttribute("name", expression);
2542
2600
  });
2543
- var event = el.tagName.toLowerCase() === "select" || [
2601
+ let event = el.tagName.toLowerCase() === "select" || [
2544
2602
  "checkbox",
2545
2603
  "radio"
2546
2604
  ].includes(el.type) || modifiers.includes("lazy") ? "change" : "input";
@@ -3031,6 +3089,7 @@ function $caa9439642c6336c$var$warnMissingPluginDirective(name, directiveName, s
3031
3089
  }
3032
3090
  // packages/alpinejs/src/index.js
3033
3091
  $caa9439642c6336c$var$alpine_default.setEvaluator($caa9439642c6336c$var$normalEvaluator);
3092
+ $caa9439642c6336c$var$alpine_default.setRawEvaluator($caa9439642c6336c$var$normalRawEvaluator);
3034
3093
  $caa9439642c6336c$var$alpine_default.setReactivityEngine({
3035
3094
  reactive: $caa9439642c6336c$var$reactive2,
3036
3095
  effect: $caa9439642c6336c$var$effect2,
@@ -3045,90 +3104,132 @@ var $caa9439642c6336c$export$2e2bcd8739ae039 = $caa9439642c6336c$export$b7ee041e
3045
3104
  // packages/morph/src/morph.js
3046
3105
  function $512e3a9270ec7803$var$morph(from, toHtml, options) {
3047
3106
  $512e3a9270ec7803$var$monkeyPatchDomSetAttributeToAllowAtSymbols();
3048
- let fromEl;
3049
- let toEl;
3050
- let key, lookahead, updating, updated, removing, removed, adding, added;
3051
- function assignOptions(options2 = {}) {
3052
- let defaultGetKey = (el)=>el.getAttribute("key");
3053
- let noop = ()=>{};
3054
- updating = options2.updating || noop;
3055
- updated = options2.updated || noop;
3056
- removing = options2.removing || noop;
3057
- removed = options2.removed || noop;
3058
- adding = options2.adding || noop;
3059
- added = options2.added || noop;
3060
- key = options2.key || defaultGetKey;
3061
- lookahead = options2.lookahead || false;
3062
- }
3063
- function patch(from2, to) {
3064
- if (differentElementNamesTypesOrKeys(from2, to)) return swapElements(from2, to);
3107
+ let context = $512e3a9270ec7803$var$createMorphContext(options);
3108
+ let toEl = typeof toHtml === "string" ? $512e3a9270ec7803$var$createElement(toHtml) : toHtml;
3109
+ if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) {
3110
+ toEl._x_dataStack = window.Alpine.closestDataStack(from);
3111
+ toEl._x_dataStack && window.Alpine.cloneNode(from, toEl);
3112
+ }
3113
+ context.patch(from, toEl);
3114
+ return from;
3115
+ }
3116
+ function $512e3a9270ec7803$var$morphBetween(startMarker, endMarker, toHtml, options = {}) {
3117
+ $512e3a9270ec7803$var$monkeyPatchDomSetAttributeToAllowAtSymbols();
3118
+ let context = $512e3a9270ec7803$var$createMorphContext(options);
3119
+ let fromContainer = startMarker.parentNode;
3120
+ let fromBlock = new $512e3a9270ec7803$var$Block(startMarker, endMarker);
3121
+ let toContainer = typeof toHtml === "string" ? (()=>{
3122
+ let container = document.createElement("div");
3123
+ container.insertAdjacentHTML("beforeend", toHtml);
3124
+ return container;
3125
+ })() : toHtml;
3126
+ let toStartMarker = document.createComment("[morph-start]");
3127
+ let toEndMarker = document.createComment("[morph-end]");
3128
+ toContainer.insertBefore(toStartMarker, toContainer.firstChild);
3129
+ toContainer.appendChild(toEndMarker);
3130
+ let toBlock = new $512e3a9270ec7803$var$Block(toStartMarker, toEndMarker);
3131
+ if (window.Alpine && window.Alpine.closestDataStack) {
3132
+ toContainer._x_dataStack = window.Alpine.closestDataStack(fromContainer);
3133
+ toContainer._x_dataStack && window.Alpine.cloneNode(fromContainer, toContainer);
3134
+ }
3135
+ context.patchChildren(fromBlock, toBlock);
3136
+ }
3137
+ function $512e3a9270ec7803$var$createMorphContext(options = {}) {
3138
+ let defaultGetKey = (el)=>el.getAttribute("key");
3139
+ let noop = ()=>{};
3140
+ let context = {
3141
+ key: options.key || defaultGetKey,
3142
+ lookahead: options.lookahead || false,
3143
+ updating: options.updating || noop,
3144
+ updated: options.updated || noop,
3145
+ removing: options.removing || noop,
3146
+ removed: options.removed || noop,
3147
+ adding: options.adding || noop,
3148
+ added: options.added || noop
3149
+ };
3150
+ context.patch = function(from, to) {
3151
+ if (context.differentElementNamesTypesOrKeys(from, to)) return context.swapElements(from, to);
3065
3152
  let updateChildrenOnly = false;
3066
3153
  let skipChildren = false;
3067
- if ($512e3a9270ec7803$var$shouldSkipChildren(updating, ()=>skipChildren = true, from2, to, ()=>updateChildrenOnly = true)) return;
3068
- if (from2.nodeType === 1 && window.Alpine) {
3069
- window.Alpine.cloneNode(from2, to);
3070
- if (from2._x_teleport && to._x_teleport) patch(from2._x_teleport, to._x_teleport);
3154
+ let skipUntil = (predicate)=>context.skipUntilCondition = predicate;
3155
+ if ($512e3a9270ec7803$var$shouldSkipChildren(context.updating, ()=>skipChildren = true, skipUntil, from, to, ()=>updateChildrenOnly = true)) return;
3156
+ if (from.nodeType === 1 && window.Alpine) {
3157
+ window.Alpine.cloneNode(from, to);
3158
+ if (from._x_teleport && to._x_teleport) context.patch(from._x_teleport, to._x_teleport);
3071
3159
  }
3072
3160
  if ($512e3a9270ec7803$var$textOrComment(to)) {
3073
- patchNodeValue(from2, to);
3074
- updated(from2, to);
3161
+ context.patchNodeValue(from, to);
3162
+ context.updated(from, to);
3075
3163
  return;
3076
3164
  }
3077
- if (!updateChildrenOnly) patchAttributes(from2, to);
3078
- updated(from2, to);
3079
- if (!skipChildren) patchChildren(from2, to);
3080
- }
3081
- function differentElementNamesTypesOrKeys(from2, to) {
3082
- return from2.nodeType != to.nodeType || from2.nodeName != to.nodeName || getKey(from2) != getKey(to);
3083
- }
3084
- function swapElements(from2, to) {
3085
- if ($512e3a9270ec7803$var$shouldSkip(removing, from2)) return;
3165
+ if (!updateChildrenOnly) context.patchAttributes(from, to);
3166
+ context.updated(from, to);
3167
+ if (!skipChildren) context.patchChildren(from, to);
3168
+ };
3169
+ context.differentElementNamesTypesOrKeys = function(from, to) {
3170
+ return from.nodeType != to.nodeType || from.nodeName != to.nodeName || context.getKey(from) != context.getKey(to);
3171
+ };
3172
+ context.swapElements = function(from, to) {
3173
+ if ($512e3a9270ec7803$var$shouldSkip(context.removing, from)) return;
3086
3174
  let toCloned = to.cloneNode(true);
3087
- if ($512e3a9270ec7803$var$shouldSkip(adding, toCloned)) return;
3088
- from2.replaceWith(toCloned);
3089
- removed(from2);
3090
- added(toCloned);
3091
- }
3092
- function patchNodeValue(from2, to) {
3175
+ if ($512e3a9270ec7803$var$shouldSkip(context.adding, toCloned)) return;
3176
+ from.replaceWith(toCloned);
3177
+ context.removed(from);
3178
+ context.added(toCloned);
3179
+ };
3180
+ context.patchNodeValue = function(from, to) {
3093
3181
  let value = to.nodeValue;
3094
- if (from2.nodeValue !== value) from2.nodeValue = value;
3095
- }
3096
- function patchAttributes(from2, to) {
3097
- if (from2._x_transitioning) return;
3098
- if (from2._x_isShown && !to._x_isShown) return;
3099
- if (!from2._x_isShown && to._x_isShown) return;
3100
- let domAttributes = Array.from(from2.attributes);
3182
+ if (from.nodeValue !== value) from.nodeValue = value;
3183
+ };
3184
+ context.patchAttributes = function(from, to) {
3185
+ if (from._x_transitioning) return;
3186
+ if (from._x_isShown && !to._x_isShown) return;
3187
+ if (!from._x_isShown && to._x_isShown) return;
3188
+ let domAttributes = Array.from(from.attributes);
3101
3189
  let toAttributes = Array.from(to.attributes);
3102
3190
  for(let i = domAttributes.length - 1; i >= 0; i--){
3103
3191
  let name = domAttributes[i].name;
3104
- if (!to.hasAttribute(name)) from2.removeAttribute(name);
3192
+ if (!to.hasAttribute(name)) {
3193
+ if (name === "open" && from.nodeName === "DIALOG" && from.open) from.close();
3194
+ else from.removeAttribute(name);
3195
+ }
3105
3196
  }
3106
3197
  for(let i = toAttributes.length - 1; i >= 0; i--){
3107
3198
  let name = toAttributes[i].name;
3108
3199
  let value = toAttributes[i].value;
3109
- if (from2.getAttribute(name) !== value) from2.setAttribute(name, value);
3200
+ if (from.getAttribute(name) !== value) from.setAttribute(name, value);
3110
3201
  }
3111
- }
3112
- function patchChildren(from2, to) {
3113
- let fromKeys = keyToMap(from2.children);
3202
+ };
3203
+ context.patchChildren = function(from, to) {
3204
+ let fromKeys = context.keyToMap(from.children);
3114
3205
  let fromKeyHoldovers = {};
3115
3206
  let currentTo = $512e3a9270ec7803$var$getFirstNode(to);
3116
- let currentFrom = $512e3a9270ec7803$var$getFirstNode(from2);
3207
+ let currentFrom = $512e3a9270ec7803$var$getFirstNode(from);
3117
3208
  while(currentTo){
3118
3209
  $512e3a9270ec7803$var$seedingMatchingId(currentTo, currentFrom);
3119
- let toKey = getKey(currentTo);
3120
- let fromKey = getKey(currentFrom);
3210
+ let toKey = context.getKey(currentTo);
3211
+ let fromKey = context.getKey(currentFrom);
3212
+ if (context.skipUntilCondition) {
3213
+ let fromDone = !currentFrom || context.skipUntilCondition(currentFrom);
3214
+ let toDone = !currentTo || context.skipUntilCondition(currentTo);
3215
+ if (fromDone && toDone) context.skipUntilCondition = null;
3216
+ else {
3217
+ if (!fromDone) currentFrom = currentFrom && $512e3a9270ec7803$var$getNextSibling(from, currentFrom);
3218
+ if (!toDone) currentTo = currentTo && $512e3a9270ec7803$var$getNextSibling(to, currentTo);
3219
+ continue;
3220
+ }
3221
+ }
3121
3222
  if (!currentFrom) {
3122
3223
  if (toKey && fromKeyHoldovers[toKey]) {
3123
3224
  let holdover = fromKeyHoldovers[toKey];
3124
- from2.appendChild(holdover);
3225
+ from.appendChild(holdover);
3125
3226
  currentFrom = holdover;
3126
- fromKey = getKey(currentFrom);
3227
+ fromKey = context.getKey(currentFrom);
3127
3228
  } else {
3128
- if (!$512e3a9270ec7803$var$shouldSkip(adding, currentTo)) {
3229
+ if (!$512e3a9270ec7803$var$shouldSkip(context.adding, currentTo)) {
3129
3230
  let clone = currentTo.cloneNode(true);
3130
- from2.appendChild(clone);
3131
- added(clone);
3231
+ from.appendChild(clone);
3232
+ context.added(clone);
3132
3233
  }
3133
3234
  currentTo = $512e3a9270ec7803$var$getNextSibling(to, currentTo);
3134
3235
  continue;
@@ -3140,7 +3241,7 @@ function $512e3a9270ec7803$var$morph(from, toHtml, options) {
3140
3241
  let nestedIfCount = 0;
3141
3242
  let fromBlockStart = currentFrom;
3142
3243
  while(currentFrom){
3143
- let next = $512e3a9270ec7803$var$getNextSibling(from2, currentFrom);
3244
+ let next = $512e3a9270ec7803$var$getNextSibling(from, currentFrom);
3144
3245
  if (isIf(next)) nestedIfCount++;
3145
3246
  else if (isEnd(next) && nestedIfCount > 0) nestedIfCount--;
3146
3247
  else if (isEnd(next) && nestedIfCount === 0) {
@@ -3165,17 +3266,17 @@ function $512e3a9270ec7803$var$morph(from, toHtml, options) {
3165
3266
  let toBlockEnd = currentTo;
3166
3267
  let fromBlock = new $512e3a9270ec7803$var$Block(fromBlockStart, fromBlockEnd);
3167
3268
  let toBlock = new $512e3a9270ec7803$var$Block(toBlockStart, toBlockEnd);
3168
- patchChildren(fromBlock, toBlock);
3269
+ context.patchChildren(fromBlock, toBlock);
3169
3270
  continue;
3170
3271
  }
3171
- if (currentFrom.nodeType === 1 && lookahead && !currentFrom.isEqualNode(currentTo)) {
3272
+ if (currentFrom.nodeType === 1 && context.lookahead && !currentFrom.isEqualNode(currentTo)) {
3172
3273
  let nextToElementSibling = $512e3a9270ec7803$var$getNextSibling(to, currentTo);
3173
3274
  let found = false;
3174
3275
  while(!found && nextToElementSibling){
3175
3276
  if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) {
3176
3277
  found = true;
3177
- currentFrom = addNodeBefore(from2, currentTo, currentFrom);
3178
- fromKey = getKey(currentFrom);
3278
+ currentFrom = context.addNodeBefore(from, currentTo, currentFrom);
3279
+ fromKey = context.getKey(currentFrom);
3179
3280
  }
3180
3281
  nextToElementSibling = $512e3a9270ec7803$var$getNextSibling(to, nextToElementSibling);
3181
3282
  }
@@ -3183,9 +3284,9 @@ function $512e3a9270ec7803$var$morph(from, toHtml, options) {
3183
3284
  if (toKey !== fromKey) {
3184
3285
  if (!toKey && fromKey) {
3185
3286
  fromKeyHoldovers[fromKey] = currentFrom;
3186
- currentFrom = addNodeBefore(from2, currentTo, currentFrom);
3287
+ currentFrom = context.addNodeBefore(from, currentTo, currentFrom);
3187
3288
  fromKeyHoldovers[fromKey].remove();
3188
- currentFrom = $512e3a9270ec7803$var$getNextSibling(from2, currentFrom);
3289
+ currentFrom = $512e3a9270ec7803$var$getNextSibling(from, currentFrom);
3189
3290
  currentTo = $512e3a9270ec7803$var$getNextSibling(to, currentTo);
3190
3291
  continue;
3191
3292
  }
@@ -3193,7 +3294,7 @@ function $512e3a9270ec7803$var$morph(from, toHtml, options) {
3193
3294
  if (fromKeys[toKey]) {
3194
3295
  currentFrom.replaceWith(fromKeys[toKey]);
3195
3296
  currentFrom = fromKeys[toKey];
3196
- fromKey = getKey(currentFrom);
3297
+ fromKey = context.getKey(currentFrom);
3197
3298
  }
3198
3299
  }
3199
3300
  if (toKey && fromKey) {
@@ -3202,64 +3303,55 @@ function $512e3a9270ec7803$var$morph(from, toHtml, options) {
3202
3303
  fromKeyHoldovers[fromKey] = currentFrom;
3203
3304
  currentFrom.replaceWith(fromKeyNode);
3204
3305
  currentFrom = fromKeyNode;
3205
- fromKey = getKey(currentFrom);
3306
+ fromKey = context.getKey(currentFrom);
3206
3307
  } else {
3207
3308
  fromKeyHoldovers[fromKey] = currentFrom;
3208
- currentFrom = addNodeBefore(from2, currentTo, currentFrom);
3309
+ currentFrom = context.addNodeBefore(from, currentTo, currentFrom);
3209
3310
  fromKeyHoldovers[fromKey].remove();
3210
- currentFrom = $512e3a9270ec7803$var$getNextSibling(from2, currentFrom);
3311
+ currentFrom = $512e3a9270ec7803$var$getNextSibling(from, currentFrom);
3211
3312
  currentTo = $512e3a9270ec7803$var$getNextSibling(to, currentTo);
3212
3313
  continue;
3213
3314
  }
3214
3315
  }
3215
3316
  }
3216
- let currentFromNext = currentFrom && $512e3a9270ec7803$var$getNextSibling(from2, currentFrom);
3217
- patch(currentFrom, currentTo);
3317
+ let currentFromNext = currentFrom && $512e3a9270ec7803$var$getNextSibling(from, currentFrom);
3318
+ context.patch(currentFrom, currentTo);
3319
+ if (currentFrom._x_lastRenderedEl) currentFromNext = $512e3a9270ec7803$var$getNextSibling(from, currentFrom._x_lastRenderedEl);
3218
3320
  currentTo = currentTo && $512e3a9270ec7803$var$getNextSibling(to, currentTo);
3219
3321
  currentFrom = currentFromNext;
3220
3322
  }
3221
3323
  let removals = [];
3222
3324
  while(currentFrom){
3223
- if (!$512e3a9270ec7803$var$shouldSkip(removing, currentFrom)) removals.push(currentFrom);
3224
- currentFrom = $512e3a9270ec7803$var$getNextSibling(from2, currentFrom);
3325
+ if (!$512e3a9270ec7803$var$shouldSkip(context.removing, currentFrom)) removals.push(currentFrom);
3326
+ currentFrom = $512e3a9270ec7803$var$getNextSibling(from, currentFrom);
3225
3327
  }
3226
3328
  while(removals.length){
3227
3329
  let domForRemoval = removals.shift();
3228
3330
  domForRemoval.remove();
3229
- removed(domForRemoval);
3331
+ context.removed(domForRemoval);
3230
3332
  }
3231
- }
3232
- function getKey(el) {
3233
- return el && el.nodeType === 1 && key(el);
3234
- }
3235
- function keyToMap(els) {
3333
+ };
3334
+ context.getKey = function(el) {
3335
+ return el && el.nodeType === 1 && context.key(el);
3336
+ };
3337
+ context.keyToMap = function(els) {
3236
3338
  let map = {};
3237
3339
  for (let el of els){
3238
- let theKey = getKey(el);
3340
+ let theKey = context.getKey(el);
3239
3341
  if (theKey) map[theKey] = el;
3240
3342
  }
3241
3343
  return map;
3242
- }
3243
- function addNodeBefore(parent, node, beforeMe) {
3244
- if (!$512e3a9270ec7803$var$shouldSkip(adding, node)) {
3344
+ };
3345
+ context.addNodeBefore = function(parent, node, beforeMe) {
3346
+ if (!$512e3a9270ec7803$var$shouldSkip(context.adding, node)) {
3245
3347
  let clone = node.cloneNode(true);
3246
3348
  parent.insertBefore(clone, beforeMe);
3247
- added(clone);
3349
+ context.added(clone);
3248
3350
  return clone;
3249
3351
  }
3250
3352
  return node;
3251
- }
3252
- assignOptions(options);
3253
- fromEl = from;
3254
- toEl = typeof toHtml === "string" ? $512e3a9270ec7803$var$createElement(toHtml) : toHtml;
3255
- if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) {
3256
- toEl._x_dataStack = window.Alpine.closestDataStack(from);
3257
- toEl._x_dataStack && window.Alpine.cloneNode(from, toEl);
3258
- }
3259
- patch(from, toEl);
3260
- fromEl = void 0;
3261
- toEl = void 0;
3262
- return from;
3353
+ };
3354
+ return context;
3263
3355
  }
3264
3356
  $512e3a9270ec7803$var$morph.step = ()=>{};
3265
3357
  $512e3a9270ec7803$var$morph.log = ()=>{};
@@ -3268,9 +3360,9 @@ function $512e3a9270ec7803$var$shouldSkip(hook, ...args) {
3268
3360
  hook(...args, ()=>skip = true);
3269
3361
  return skip;
3270
3362
  }
3271
- function $512e3a9270ec7803$var$shouldSkipChildren(hook, skipChildren, ...args) {
3363
+ function $512e3a9270ec7803$var$shouldSkipChildren(hook, skipChildren, skipUntil, ...args) {
3272
3364
  let skip = false;
3273
- hook(...args, ()=>skip = true, skipChildren);
3365
+ hook(...args, ()=>skip = true, skipChildren, skipUntil);
3274
3366
  return skip;
3275
3367
  }
3276
3368
  var $512e3a9270ec7803$var$patched = false;
@@ -3330,7 +3422,8 @@ function $512e3a9270ec7803$var$monkeyPatchDomSetAttributeToAllowAtSymbols() {
3330
3422
  let hostDiv = document.createElement("div");
3331
3423
  Element.prototype.setAttribute = function newSetAttribute(name, value) {
3332
3424
  if (!name.includes("@")) return original.call(this, name, value);
3333
- hostDiv.innerHTML = `<span ${name}="${value}"></span>`;
3425
+ let escapedValue = value.replace(/&/g, "&amp;").replace(/"/g, "&quot;");
3426
+ hostDiv.innerHTML = `<span ${name}="${escapedValue}"></span>`;
3334
3427
  let attr = hostDiv.firstElementChild.getAttributeNode(name);
3335
3428
  hostDiv.firstElementChild.removeAttributeNode(attr);
3336
3429
  this.setAttributeNode(attr);
@@ -3346,6 +3439,7 @@ function $512e3a9270ec7803$var$seedingMatchingId(to, from) {
3346
3439
  // packages/morph/src/index.js
3347
3440
  function $512e3a9270ec7803$export$2e5e8c41f5d4e7c7(Alpine) {
3348
3441
  Alpine.morph = $512e3a9270ec7803$var$morph;
3442
+ Alpine.morphBetween = $512e3a9270ec7803$var$morphBetween;
3349
3443
  }
3350
3444
  // packages/morph/builds/module.js
3351
3445
  var $512e3a9270ec7803$export$2e2bcd8739ae039 = $512e3a9270ec7803$export$2e5e8c41f5d4e7c7;
@@ -3405,7 +3499,7 @@ function $a5acee56471cec18$var$storageHas(key, storage) {
3405
3499
  return storage.getItem(key) !== null;
3406
3500
  }
3407
3501
  function $a5acee56471cec18$var$storageGet(key, storage) {
3408
- let value = storage.getItem(key, storage);
3502
+ let value = storage.getItem(key);
3409
3503
  if (value === void 0) return;
3410
3504
  return JSON.parse(value);
3411
3505
  }
@@ -8159,17 +8253,7 @@ function $12b7aa006b8a97e1$var$toCamel(s) {
8159
8253
  }
8160
8254
 
8161
8255
 
8162
- var $88dfd91701b4cd8b$exports = {};
8163
- var $99486586f6691564$exports = {};
8164
-
8165
- $parcel$defineInteropFlag($99486586f6691564$exports);
8166
-
8167
- $parcel$export($99486586f6691564$exports, "default", () => $99486586f6691564$export$2e2bcd8739ae039);
8168
- function $99486586f6691564$export$2e2bcd8739ae039() {
8169
- return {};
8170
- }
8171
-
8172
-
8256
+ var $c9dfaeb25bf110ce$exports = {};
8173
8257
  var $cbd28b10fa9798c7$exports = {};
8174
8258
 
8175
8259
  $parcel$defineInteropFlag($cbd28b10fa9798c7$exports);
@@ -11683,36 +11767,13 @@ function $cbd28b10fa9798c7$export$2e2bcd8739ae039() {
11683
11767
  }
11684
11768
 
11685
11769
 
11686
- var $e398acaded942bbe$exports = {};
11687
-
11688
- $parcel$defineInteropFlag($e398acaded942bbe$exports);
11770
+ var $99486586f6691564$exports = {};
11689
11771
 
11690
- $parcel$export($e398acaded942bbe$exports, "default", () => $e398acaded942bbe$export$2e2bcd8739ae039);
11772
+ $parcel$defineInteropFlag($99486586f6691564$exports);
11691
11773
 
11692
- function $e398acaded942bbe$export$2e2bcd8739ae039(targetSelector) {
11693
- return {
11694
- width: 0,
11695
- height: 0,
11696
- resizing: false,
11697
- target: null,
11698
- init () {
11699
- this.target = document.querySelector(targetSelector);
11700
- if (this.target) {
11701
- this.width = Math.round(this.target.clientWidth);
11702
- this.height = Math.round(this.target.clientHeight);
11703
- this.createObserver();
11704
- }
11705
- },
11706
- createObserver () {
11707
- if (this.target) this.observer = (0, $7ecd1fc3a6b35e5c$export$a2214cc2adb2dc44)(this.target, ({ width: width, height: height })=>{
11708
- this.width = width;
11709
- this.height = height;
11710
- });
11711
- },
11712
- tearDown () {
11713
- if (this.observer) this.observer.disconnect();
11714
- }
11715
- };
11774
+ $parcel$export($99486586f6691564$exports, "default", () => $99486586f6691564$export$2e2bcd8739ae039);
11775
+ function $99486586f6691564$export$2e2bcd8739ae039() {
11776
+ return {};
11716
11777
  }
11717
11778
 
11718
11779
 
@@ -11772,6 +11833,39 @@ function $47a1c62621be0c54$export$2e2bcd8739ae039() {
11772
11833
  }
11773
11834
 
11774
11835
 
11836
+ var $e398acaded942bbe$exports = {};
11837
+
11838
+ $parcel$defineInteropFlag($e398acaded942bbe$exports);
11839
+
11840
+ $parcel$export($e398acaded942bbe$exports, "default", () => $e398acaded942bbe$export$2e2bcd8739ae039);
11841
+
11842
+ function $e398acaded942bbe$export$2e2bcd8739ae039(targetSelector) {
11843
+ return {
11844
+ width: 0,
11845
+ height: 0,
11846
+ resizing: false,
11847
+ target: null,
11848
+ init () {
11849
+ this.target = document.querySelector(targetSelector);
11850
+ if (this.target) {
11851
+ this.width = Math.round(this.target.clientWidth);
11852
+ this.height = Math.round(this.target.clientHeight);
11853
+ this.createObserver();
11854
+ }
11855
+ },
11856
+ createObserver () {
11857
+ if (this.target) this.observer = (0, $7ecd1fc3a6b35e5c$export$a2214cc2adb2dc44)(this.target, ({ width: width, height: height })=>{
11858
+ this.width = width;
11859
+ this.height = height;
11860
+ });
11861
+ },
11862
+ tearDown () {
11863
+ if (this.observer) this.observer.disconnect();
11864
+ }
11865
+ };
11866
+ }
11867
+
11868
+
11775
11869
  var $216ef7001f59f21d$exports = {};
11776
11870
 
11777
11871
  $parcel$defineInteropFlag($216ef7001f59f21d$exports);
@@ -12648,11 +12742,11 @@ function $6d64716f0b34fdf4$export$2e2bcd8739ae039(store) {
12648
12742
  }
12649
12743
 
12650
12744
 
12651
- $88dfd91701b4cd8b$exports = {
12652
- "code": $99486586f6691564$exports,
12745
+ $c9dfaeb25bf110ce$exports = {
12653
12746
  "button": $cbd28b10fa9798c7$exports,
12654
- "dimensions_display": $e398acaded942bbe$exports,
12747
+ "code": $99486586f6691564$exports,
12655
12748
  "copy_button": $47a1c62621be0c54$exports,
12749
+ "dimensions_display": $e398acaded942bbe$exports,
12656
12750
  "embed_code_dropdown": $216ef7001f59f21d$exports,
12657
12751
  "filter": $e9904a14dabf652d$exports,
12658
12752
  "nav": $d92d9d5253f84566$exports,
@@ -12663,7 +12757,7 @@ $88dfd91701b4cd8b$exports = {
12663
12757
  };
12664
12758
 
12665
12759
 
12666
- var $5d1c9207cb730903$exports = {};
12760
+ var $6178ee12f80cbf68$exports = {};
12667
12761
  var $6a9b69d9cc7f810f$exports = {};
12668
12762
 
12669
12763
  $parcel$defineInteropFlag($6a9b69d9cc7f810f$exports);
@@ -13692,38 +13786,6 @@ function $c299e36fa9e271bc$export$2e2bcd8739ae039(id, embedStore) {
13692
13786
  }
13693
13787
 
13694
13788
 
13695
- var $1a7a7298eec5b755$exports = {};
13696
-
13697
- $parcel$defineInteropFlag($1a7a7298eec5b755$exports);
13698
-
13699
- $parcel$export($1a7a7298eec5b755$exports, "default", () => $1a7a7298eec5b755$export$2e2bcd8739ae039);
13700
-
13701
- function $1a7a7298eec5b755$export$2e2bcd8739ae039() {
13702
- return {
13703
- narrow: false,
13704
- init () {
13705
- (0, $7ecd1fc3a6b35e5c$export$a2214cc2adb2dc44)(this.$el, ({ width: width })=>{
13706
- this.narrow = width < 500;
13707
- });
13708
- }
13709
- };
13710
- }
13711
-
13712
-
13713
- var $e773f8ef556b41ff$exports = {};
13714
-
13715
- $parcel$defineInteropFlag($e773f8ef556b41ff$exports);
13716
-
13717
- $parcel$export($e773f8ef556b41ff$exports, "default", () => $e773f8ef556b41ff$export$2e2bcd8739ae039);
13718
- function $e773f8ef556b41ff$export$2e2bcd8739ae039() {
13719
- return {
13720
- get isNarrowLayout () {
13721
- return this.narrow || false;
13722
- }
13723
- };
13724
- }
13725
-
13726
-
13727
13789
  var $9b24cbeb3a465447$exports = {};
13728
13790
 
13729
13791
  $parcel$defineInteropFlag($9b24cbeb3a465447$exports);
@@ -13781,19 +13843,51 @@ function $9b24cbeb3a465447$export$2e2bcd8739ae039({ id: id, matchers: matchers }
13781
13843
  }
13782
13844
 
13783
13845
 
13784
- $5d1c9207cb730903$exports = {
13846
+ var $1a7a7298eec5b755$exports = {};
13847
+
13848
+ $parcel$defineInteropFlag($1a7a7298eec5b755$exports);
13849
+
13850
+ $parcel$export($1a7a7298eec5b755$exports, "default", () => $1a7a7298eec5b755$export$2e2bcd8739ae039);
13851
+
13852
+ function $1a7a7298eec5b755$export$2e2bcd8739ae039() {
13853
+ return {
13854
+ narrow: false,
13855
+ init () {
13856
+ (0, $7ecd1fc3a6b35e5c$export$a2214cc2adb2dc44)(this.$el, ({ width: width })=>{
13857
+ this.narrow = width < 500;
13858
+ });
13859
+ }
13860
+ };
13861
+ }
13862
+
13863
+
13864
+ var $e773f8ef556b41ff$exports = {};
13865
+
13866
+ $parcel$defineInteropFlag($e773f8ef556b41ff$exports);
13867
+
13868
+ $parcel$export($e773f8ef556b41ff$exports, "default", () => $e773f8ef556b41ff$export$2e2bcd8739ae039);
13869
+ function $e773f8ef556b41ff$export$2e2bcd8739ae039() {
13870
+ return {
13871
+ get isNarrowLayout () {
13872
+ return this.narrow || false;
13873
+ }
13874
+ };
13875
+ }
13876
+
13877
+
13878
+ $6178ee12f80cbf68$exports = {
13785
13879
  "display_options": {
13786
13880
  "field": $6a9b69d9cc7f810f$exports
13787
13881
  },
13788
13882
  "embed": {
13789
13883
  "inspector": $c299e36fa9e271bc$exports
13790
13884
  },
13885
+ "nav": {
13886
+ "item": $9b24cbeb3a465447$exports
13887
+ },
13791
13888
  "params": {
13792
13889
  "editor": $1a7a7298eec5b755$exports,
13793
13890
  "field": $e773f8ef556b41ff$exports
13794
- },
13795
- "nav": {
13796
- "item": $9b24cbeb3a465447$exports
13797
13891
  }
13798
13892
  };
13799
13893
 
@@ -13861,8 +13955,8 @@ const $22969b543678f572$var$prefix = window.APP_NAME;
13861
13955
  // Components
13862
13956
  (0, $caa9439642c6336c$export$2e2bcd8739ae039).data("app", (0, $5792afa4170ed552$export$2e2bcd8739ae039));
13863
13957
  [
13864
- $88dfd91701b4cd8b$exports,
13865
- $5d1c9207cb730903$exports,
13958
+ $c9dfaeb25bf110ce$exports,
13959
+ $6178ee12f80cbf68$exports,
13866
13960
  $d56e5cced44001d2$exports
13867
13961
  ].forEach((scripts)=>{
13868
13962
  const components = (0, $12b7aa006b8a97e1$export$4e811121b221213b)(scripts);