app/assets/build/coco/app.js in coveragebook_components-0.8.5 vs app/assets/build/coco/app.js in coveragebook_components-0.8.6
- old
+ new
@@ -3846,14 +3846,14 @@
func = undefined2;
}
return result2;
};
}
- var bind4 = baseRest(function(func, thisArg, partials) {
+ var bind3 = baseRest(function(func, thisArg, partials) {
var bitmask = WRAP_BIND_FLAG;
if (partials.length) {
- var holders = replaceHolders(partials, getHolder(bind4));
+ var holders = replaceHolders(partials, getHolder(bind3));
bitmask |= WRAP_PARTIAL_FLAG;
}
return createWrap(func, bitmask, thisArg, partials, holders);
});
var bindKey = baseRest(function(object, key, partials) {
@@ -4856,11 +4856,11 @@
}
});
var bindAll = flatRest(function(object, methodNames) {
arrayEach(methodNames, function(key) {
key = toKey(key);
- baseAssignValue(object, key, bind4(object[key], object));
+ baseAssignValue(object, key, bind3(object[key], object));
});
return object;
});
function cond(pairs) {
var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee();
@@ -5053,11 +5053,11 @@
lodash.assignIn = assignIn;
lodash.assignInWith = assignInWith;
lodash.assignWith = assignWith;
lodash.at = at2;
lodash.before = before;
- lodash.bind = bind4;
+ lodash.bind = bind3;
lodash.bindAll = bindAll;
lodash.bindKey = bindKey;
lodash.castArray = castArray;
lodash.chain = chain;
lodash.chunk = chunk;
@@ -14042,34 +14042,34 @@
// ../../../package.json
var package_default = {
name: "coveragebook-components",
type: "module",
- version: "0.8.5",
+ version: "0.8.6",
main: "index.js",
repository: "git@github.com:coveragebook/coco.git",
author: "Mark Perkins <mark@coveragebook.com>",
license: "NO LICENSE",
browserslist: [
"defaults"
],
dependencies: {
- "@alpinejs/collapse": "3.12.1",
- "@alpinejs/focus": "3.12.1",
- "@alpinejs/intersect": "3.12.1",
- "@alpinejs/mask": "3.12.1",
- "@alpinejs/morph": "3.12.1",
+ "@alpinejs/collapse": "^3.13.2",
+ "@alpinejs/focus": "^3.13.2",
+ "@alpinejs/intersect": "^3.13.2",
+ "@alpinejs/mask": "^3.13.2",
+ "@alpinejs/morph": "^3.13.2",
"@jaames/iro": "^5.5.2",
"@tailwindcss/container-queries": "^0.1.0",
"@tailwindcss/forms": "^0.5.6",
- alpinejs: "3.12.2",
+ alpinejs: "^3.13.2",
"container-query-polyfill": "^1.0.2",
del: "^7.1.0",
html2canvas: "^1.4.1",
"js-cookie": "^3.0.5",
lodash: "^4.17.21",
- "lucide-static": "^0.290.0",
+ "lucide-static": "^0.292.0",
tailwindcss: "^3.3.5",
"tippy.js": "^6.3.7"
},
devDependencies: {
"@percy/cli": "^1.27.3",
@@ -15718,10 +15718,116 @@
};
return [wrappedEffect, () => {
cleanup2();
}];
}
+ function dispatch(el, name, detail = {}) {
+ el.dispatchEvent(
+ new CustomEvent(name, {
+ detail,
+ bubbles: true,
+ // Allows events to pass the shadow DOM barrier.
+ composed: true,
+ cancelable: true
+ })
+ );
+ }
+ function walk(el, callback) {
+ if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) {
+ Array.from(el.children).forEach((el2) => walk(el2, callback));
+ return;
+ }
+ let skip = false;
+ callback(el, () => skip = true);
+ if (skip)
+ return;
+ let node = el.firstElementChild;
+ while (node) {
+ walk(node, callback, false);
+ node = node.nextElementSibling;
+ }
+ }
+ function warn(message2, ...args) {
+ console.warn(`Alpine Warning: ${message2}`, ...args);
+ }
+ var started = false;
+ function start() {
+ if (started)
+ warn("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.");
+ started = true;
+ if (!document.body)
+ warn("Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?");
+ dispatch(document, "alpine:init");
+ dispatch(document, "alpine:initializing");
+ startObservingMutations();
+ onElAdded((el) => initTree(el, walk));
+ onElRemoved((el) => destroyTree(el));
+ onAttributesAdded((el, attrs) => {
+ directives(el, attrs).forEach((handle) => handle());
+ });
+ let outNestedComponents = (el) => !closestRoot(el.parentElement, true);
+ Array.from(document.querySelectorAll(allSelectors())).filter(outNestedComponents).forEach((el) => {
+ initTree(el);
+ });
+ dispatch(document, "alpine:initialized");
+ }
+ var rootSelectorCallbacks = [];
+ var initSelectorCallbacks = [];
+ function rootSelectors() {
+ return rootSelectorCallbacks.map((fn3) => fn3());
+ }
+ function allSelectors() {
+ return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn3) => fn3());
+ }
+ function addRootSelector(selectorCallback) {
+ rootSelectorCallbacks.push(selectorCallback);
+ }
+ function addInitSelector(selectorCallback) {
+ initSelectorCallbacks.push(selectorCallback);
+ }
+ function closestRoot(el, includeInitSelectors = false) {
+ return findClosest(el, (element) => {
+ const selectors = includeInitSelectors ? allSelectors() : rootSelectors();
+ if (selectors.some((selector) => element.matches(selector)))
+ return true;
+ });
+ }
+ function findClosest(el, callback) {
+ if (!el)
+ return;
+ if (callback(el))
+ return el;
+ if (el._x_teleportBack)
+ el = el._x_teleportBack;
+ if (!el.parentElement)
+ return;
+ return findClosest(el.parentElement, callback);
+ }
+ function isRoot(el) {
+ return rootSelectors().some((selector) => el.matches(selector));
+ }
+ var initInterceptors = [];
+ function interceptInit(callback) {
+ initInterceptors.push(callback);
+ }
+ function initTree(el, walker = walk, intercept = () => {
+ }) {
+ deferHandlingDirectives(() => {
+ walker(el, (el2, skip) => {
+ intercept(el2, skip);
+ initInterceptors.forEach((i3) => i3(el2, skip));
+ directives(el2, el2.attributes).forEach((handle) => handle());
+ el2._x_ignore && skip();
+ });
+ });
+ }
+ function destroyTree(root) {
+ walk(root, (el) => {
+ cleanupAttributes(el);
+ cleanupElement(el);
+ });
+ }
var onAttributeAddeds = [];
var onElRemoveds = [];
var onElAddeds = [];
function onElAdded(callback) {
onElAddeds.push(callback);
@@ -15754,10 +15860,16 @@
value.forEach((i3) => i3());
delete el._x_attributeCleanups[name];
}
});
}
+ function cleanupElement(el) {
+ if (el._x_cleanups) {
+ while (el._x_cleanups.length)
+ el._x_cleanups.pop()();
+ }
+ }
var observer = new MutationObserver(onMutate);
var currentlyObserving = false;
function startObservingMutations() {
observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true });
currentlyObserving = true;
@@ -15849,14 +15961,11 @@
});
for (let node of removedNodes) {
if (addedNodes.includes(node))
continue;
onElRemoveds.forEach((i3) => i3(node));
- if (node._x_cleanups) {
- while (node._x_cleanups.length)
- node._x_cleanups.pop()();
- }
+ destroyTree(node);
}
addedNodes.forEach((node) => {
node._x_ignoreSelf = true;
node._x_ignore = true;
});
@@ -15899,57 +16008,54 @@
return [];
}
return closestDataStack(node.parentNode);
}
function mergeProxies(objects) {
- let thisProxy = new Proxy({}, {
- ownKeys: () => {
- return Array.from(new Set(objects.flatMap((i3) => Object.keys(i3))));
- },
- has: (target, name) => {
- return objects.some((obj) => obj.hasOwnProperty(name));
- },
- get: (target, name) => {
- return (objects.find((obj) => {
- if (obj.hasOwnProperty(name)) {
- let descriptor = Object.getOwnPropertyDescriptor(obj, name);
- if (descriptor.get && descriptor.get._x_alreadyBound || descriptor.set && descriptor.set._x_alreadyBound) {
- return true;
- }
- if ((descriptor.get || descriptor.set) && descriptor.enumerable) {
- let getter = descriptor.get;
- let setter = descriptor.set;
- let property = descriptor;
- getter = getter && getter.bind(thisProxy);
- setter = setter && setter.bind(thisProxy);
- if (getter)
- getter._x_alreadyBound = true;
- if (setter)
- setter._x_alreadyBound = true;
- Object.defineProperty(obj, name, __spreadProps(__spreadValues({}, property), {
- get: getter,
- set: setter
- }));
- }
- return true;
- }
- return false;
- }) || {})[name];
- },
- set: (target, name, value) => {
- let closestObjectWithKey = objects.find((obj) => obj.hasOwnProperty(name));
- if (closestObjectWithKey) {
- closestObjectWithKey[name] = value;
- } else {
- objects[objects.length - 1][name] = value;
- }
- return true;
- }
- });
- return thisProxy;
+ return new Proxy({ objects }, mergeProxyTrap);
}
- function initInterceptors(data2) {
+ var mergeProxyTrap = {
+ ownKeys({ objects }) {
+ return Array.from(
+ new Set(objects.flatMap((i3) => Object.keys(i3)))
+ );
+ },
+ has({ objects }, name) {
+ if (name == Symbol.unscopables)
+ return false;
+ return objects.some(
+ (obj) => Object.prototype.hasOwnProperty.call(obj, name)
+ );
+ },
+ get({ objects }, name, thisProxy) {
+ if (name == "toJSON")
+ return collapseProxies;
+ return Reflect.get(
+ objects.find(
+ (obj) => Object.prototype.hasOwnProperty.call(obj, name)
+ ) || {},
+ name,
+ thisProxy
+ );
+ },
+ set({ objects }, name, value, thisProxy) {
+ const target = objects.find(
+ (obj) => Object.prototype.hasOwnProperty.call(obj, name)
+ ) || objects[objects.length - 1];
+ const descriptor = Object.getOwnPropertyDescriptor(target, name);
+ if ((descriptor == null ? void 0 : descriptor.set) && (descriptor == null ? void 0 : descriptor.get))
+ return Reflect.set(target, name, value, thisProxy);
+ return Reflect.set(target, name, value);
+ }
+ };
+ function collapseProxies() {
+ let keys = Reflect.ownKeys(this);
+ return keys.reduce((acc, key) => {
+ acc[key] = Reflect.get(this, key);
+ return acc;
+ }, {});
+ }
+ function initInterceptors2(data2) {
let isObject22 = (val) => typeof val === "object" && !Array.isArray(val) && val !== null;
let recurse = (obj, basePath = "") => {
Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => {
if (enumerable === false || value === void 0)
return;
@@ -16052,12 +16158,13 @@
}
var shouldAutoEvaluateFunctions = true;
function dontAutoEvaluateFunctions(callback) {
let cache = shouldAutoEvaluateFunctions;
shouldAutoEvaluateFunctions = false;
- callback();
+ let result = callback();
shouldAutoEvaluateFunctions = cache;
+ return result;
}
function evaluate(el, expression, extras = {}) {
let result;
evaluateLater(el, expression)((value) => result = value, extras);
return result;
@@ -16088,14 +16195,21 @@
if (evaluatorMemo[expression]) {
return evaluatorMemo[expression];
}
let AsyncFunction = Object.getPrototypeOf(async function() {
}).constructor;
- let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression) || /^(let|const)\s/.test(expression) ? `(async()=>{ ${expression} })()` : expression;
+ let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression.trim()) || /^(let|const)\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;
const safeAsyncFunction = () => {
try {
- return new AsyncFunction(["__self", "scope"], `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`);
+ let func2 = new AsyncFunction(
+ ["__self", "scope"],
+ `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`
+ );
+ Object.defineProperty(func2, "name", {
+ value: `[Alpine] ${expression}`
+ });
+ return func2;
} catch (error2) {
handleError(error2, el, expression);
return Promise.resolve();
}
};
@@ -16148,11 +16262,13 @@
function directive(name, callback) {
directiveHandlers[name] = callback;
return {
before(directive2) {
if (!directiveHandlers[directive2]) {
- console.warn("Cannot find directive `${directive}`. `${name}` will use the default order of execution");
+ console.warn(
+ "Cannot find directive `${directive}`. `${name}` will use the default order of execution"
+ );
return;
}
const pos = directiveOrder.indexOf(directive2);
directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf("DEFAULT"), 0, name);
}
@@ -16219,19 +16335,19 @@
return [utilities, doCleanup];
}
function getDirectiveHandler(el, directive2) {
let noop = () => {
};
- let handler3 = directiveHandlers[directive2.type] || noop;
+ let handler4 = directiveHandlers[directive2.type] || noop;
let [utilities, cleanup2] = getElementBoundUtilities(el);
onAttributeRemoved(el, directive2.original, cleanup2);
let fullHandler = () => {
if (el._x_ignore || el._x_ignoreSelf)
return;
- handler3.inline && handler3.inline(el, directive2, utilities);
- handler3 = handler3.bind(handler3, el, directive2, utilities);
- isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler3) : handler3();
+ handler4.inline && handler4.inline(el, directive2, utilities);
+ handler4 = handler4.bind(handler4, el, directive2, utilities);
+ isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4();
};
fullHandler.runCleanups = cleanup2;
return fullHandler;
}
var startingWith = (subject, replacement) => ({ name, value }) => {
@@ -16260,11 +16376,11 @@
}
var alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\b`);
function toParsedDirectives(transformedAttributeMap, originalAttributeOverride) {
return ({ name, value }) => {
let typeMatch = name.match(alpineAttributeRegex());
- let valueMatch = name.match(/:([a-zA-Z0-9\-:]+)/);
+ let valueMatch = name.match(/:([a-zA-Z0-9\-_:]+)/);
let modifiers = name.match(/\.[^.\]]+(?=[^\]]*$)/g) || [];
let original = originalAttributeOverride || transformedAttributeMap[name] || name;
return {
type: typeMatch ? typeMatch[1] : null,
value: valueMatch ? valueMatch[1] : null,
@@ -16294,110 +16410,10 @@
function byPriority(a3, b3) {
let typeA = directiveOrder.indexOf(a3.type) === -1 ? DEFAULT : a3.type;
let typeB = directiveOrder.indexOf(b3.type) === -1 ? DEFAULT : b3.type;
return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB);
}
- function dispatch(el, name, detail = {}) {
- el.dispatchEvent(new CustomEvent(name, {
- detail,
- bubbles: true,
- composed: true,
- cancelable: true
- }));
- }
- function walk(el, callback) {
- if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) {
- Array.from(el.children).forEach((el2) => walk(el2, callback));
- return;
- }
- let skip = false;
- callback(el, () => skip = true);
- if (skip)
- return;
- let node = el.firstElementChild;
- while (node) {
- walk(node, callback, false);
- node = node.nextElementSibling;
- }
- }
- function warn(message2, ...args) {
- console.warn(`Alpine Warning: ${message2}`, ...args);
- }
- var started = false;
- function start() {
- if (started)
- warn("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.");
- started = true;
- if (!document.body)
- warn("Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?");
- dispatch(document, "alpine:init");
- dispatch(document, "alpine:initializing");
- startObservingMutations();
- onElAdded((el) => initTree(el, walk));
- onElRemoved((el) => destroyTree(el));
- onAttributesAdded((el, attrs) => {
- directives(el, attrs).forEach((handle) => handle());
- });
- let outNestedComponents = (el) => !closestRoot(el.parentElement, true);
- Array.from(document.querySelectorAll(allSelectors())).filter(outNestedComponents).forEach((el) => {
- initTree(el);
- });
- dispatch(document, "alpine:initialized");
- }
- var rootSelectorCallbacks = [];
- var initSelectorCallbacks = [];
- function rootSelectors() {
- return rootSelectorCallbacks.map((fn3) => fn3());
- }
- function allSelectors() {
- return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn3) => fn3());
- }
- function addRootSelector(selectorCallback) {
- rootSelectorCallbacks.push(selectorCallback);
- }
- function addInitSelector(selectorCallback) {
- initSelectorCallbacks.push(selectorCallback);
- }
- function closestRoot(el, includeInitSelectors = false) {
- return findClosest(el, (element) => {
- const selectors = includeInitSelectors ? allSelectors() : rootSelectors();
- if (selectors.some((selector) => element.matches(selector)))
- return true;
- });
- }
- function findClosest(el, callback) {
- if (!el)
- return;
- if (callback(el))
- return el;
- if (el._x_teleportBack)
- el = el._x_teleportBack;
- if (!el.parentElement)
- return;
- return findClosest(el.parentElement, callback);
- }
- function isRoot(el) {
- return rootSelectors().some((selector) => el.matches(selector));
- }
- var initInterceptors2 = [];
- function interceptInit(callback) {
- initInterceptors2.push(callback);
- }
- function initTree(el, walker = walk, intercept = () => {
- }) {
- deferHandlingDirectives(() => {
- walker(el, (el2, skip) => {
- intercept(el2, skip);
- initInterceptors2.forEach((i3) => i3(el2, skip));
- directives(el2, el2.attributes).forEach((handle) => handle());
- el2._x_ignore && skip();
- });
- });
- }
- function destroyTree(root) {
- walk(root, (el) => cleanupAttributes(el));
- }
var tickStack = [];
var isHolding = false;
function nextTick(callback = () => {
}) {
queueMicrotask(() => {
@@ -16523,20 +16539,20 @@
}
});
function registerTransitionsFromClassString(el, classString, stage) {
registerTransitionObject(el, setClasses, "");
let directiveStorageMap = {
- enter: (classes) => {
+ "enter": (classes) => {
el._x_transition.enter.during = classes;
},
"enter-start": (classes) => {
el._x_transition.enter.start = classes;
},
"enter-end": (classes) => {
el._x_transition.enter.end = classes;
},
- leave: (classes) => {
+ "leave": (classes) => {
el._x_transition.leave.during = classes;
},
"leave-start": (classes) => {
el._x_transition.leave.start = classes;
},
@@ -16792,18 +16808,35 @@
return (...args) => isCloning ? fallback(...args) : callback(...args);
}
function onlyDuringClone(callback) {
return (...args) => isCloning && callback(...args);
}
+ function cloneNode(from, to) {
+ if (from._x_dataStack) {
+ to._x_dataStack = from._x_dataStack;
+ to.setAttribute("data-has-alpine-state", true);
+ }
+ isCloning = true;
+ dontRegisterReactiveSideEffects(() => {
+ initTree(to, (el, callback) => {
+ callback(el, () => {
+ });
+ });
+ });
+ isCloning = false;
+ }
+ var isCloningLegacy = false;
function clone(oldEl, newEl) {
if (!newEl._x_dataStack)
newEl._x_dataStack = oldEl._x_dataStack;
isCloning = true;
+ isCloningLegacy = true;
dontRegisterReactiveSideEffects(() => {
cloneTree(newEl);
});
isCloning = false;
+ isCloningLegacy = false;
}
function cloneTree(el) {
let hasRunThroughFirstEl = false;
let shallowWalker = (el2, callback) => {
walk(el2, (el3, skip) => {
@@ -16824,10 +16857,17 @@
};
});
callback();
overrideEffect(cache);
}
+ function shouldSkipRegisteringDataDuringClone(el) {
+ if (!isCloning)
+ return false;
+ if (isCloningLegacy)
+ return true;
+ return el.hasAttribute("data-has-alpine-state");
+ }
function bind(el, name, value, modifiers = []) {
if (!el._x_bindings)
el._x_bindings = reactive({});
el._x_bindings[name] = value;
name = modifiers.includes("camel") ? camelCase(name) : name;
@@ -16859,11 +16899,11 @@
el.checked = checkedAttrLooseCompare(el.value, value);
}
} else if (el.type === "checkbox") {
if (Number.isInteger(value)) {
el.value = value;
- } else if (!Number.isInteger(value) && !Array.isArray(value) && typeof value !== "boolean" && ![null, void 0].includes(value)) {
+ } else if (!Array.isArray(value) && typeof value !== "boolean" && ![null, void 0].includes(value)) {
el.value = String(value);
} else {
if (Array.isArray(value)) {
el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value));
} else {
@@ -16873,11 +16913,11 @@
} else if (el.tagName === "SELECT") {
updateSelect(el, value);
} else {
if (el.value === value)
return;
- el.value = value;
+ el.value = value === void 0 ? "" : value;
}
}
function bindClasses(el, value) {
if (el._x_undoAddedClasses)
el._x_undoAddedClasses();
@@ -16959,10 +16999,25 @@
return !["aria-pressed", "aria-checked", "aria-expanded", "aria-selected"].includes(name);
}
function getBinding(el, name, fallback) {
if (el._x_bindings && el._x_bindings[name] !== void 0)
return el._x_bindings[name];
+ return getAttributeBinding(el, name, fallback);
+ }
+ function extractProp(el, name, fallback, extract = true) {
+ if (el._x_bindings && el._x_bindings[name] !== void 0)
+ return el._x_bindings[name];
+ if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) {
+ let binding = el._x_inlineBindings[name];
+ binding.extract = extract;
+ return dontAutoEvaluateFunctions(() => {
+ return evaluate(el, binding.expression);
+ });
+ }
+ return getAttributeBinding(el, name, fallback);
+ }
+ function getAttributeBinding(el, name, fallback) {
let attr = el.getAttribute(name);
if (attr === null)
return typeof fallback === "function" ? fallback() : fallback;
if (attr === "")
return true;
@@ -16992,10 +17047,40 @@
inThrottle = true;
setTimeout(() => inThrottle = false, limit);
}
};
}
+ function entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) {
+ let firstRun = true;
+ let outerHash;
+ let reference2 = effect(() => {
+ const outer = outerGet();
+ const inner = innerGet();
+ if (firstRun) {
+ innerSet(cloneIfObject(outer));
+ firstRun = false;
+ outerHash = JSON.stringify(outer);
+ } else {
+ const outerHashLatest = JSON.stringify(outer);
+ if (outerHashLatest !== outerHash) {
+ innerSet(cloneIfObject(outer));
+ outerHash = outerHashLatest;
+ } else {
+ outerSet(cloneIfObject(inner));
+ outerHash = JSON.stringify(inner);
+ }
+ }
+ JSON.stringify(innerGet());
+ JSON.stringify(outerGet());
+ });
+ return () => {
+ release(reference2);
+ };
+ }
+ function cloneIfObject(value) {
+ return typeof value === "object" ? JSON.parse(JSON.stringify(value)) : value;
+ }
function plugin(callback) {
let callbacks = Array.isArray(callback) ? callback : [callback];
callbacks.forEach((i3) => i3(alpine_default));
}
var stores = {};
@@ -17010,23 +17095,25 @@
}
stores[name] = value;
if (typeof value === "object" && value !== null && value.hasOwnProperty("init") && typeof value.init === "function") {
stores[name].init();
}
- initInterceptors(stores[name]);
+ initInterceptors2(stores[name]);
}
function getStores() {
return stores;
}
var binds = {};
function bind2(name, bindings) {
let getBindings = typeof bindings !== "function" ? () => bindings : bindings;
if (name instanceof Element) {
- applyBindingsObject(name, getBindings());
+ return applyBindingsObject(name, getBindings());
} else {
binds[name] = getBindings;
}
+ return () => {
+ };
}
function injectBindingProviders(obj) {
Object.entries(binds).forEach(([name, callback]) => {
Object.defineProperty(obj, name, {
get() {
@@ -17055,10 +17142,14 @@
});
directives(el, attributes, original).map((handle) => {
cleanupRunners.push(handle.runCleanups);
handle();
});
+ return () => {
+ while (cleanupRunners.length)
+ cleanupRunners.pop()();
+ };
}
var datas = {};
function data(name, callback) {
datas[name] = callback;
}
@@ -17086,17 +17177,19 @@
return effect;
},
get raw() {
return raw;
},
- version: "3.12.2",
+ version: "3.13.2",
flushAndStopDeferringMutations,
dontAutoEvaluateFunctions,
disableEffectScheduling,
startObservingMutations,
stopObservingMutations,
setReactivityEngine,
+ onAttributeRemoved,
+ onAttributesAdded,
closestDataStack,
skipDuringClone,
onlyDuringClone,
addRootSelector,
addInitSelector,
@@ -17105,18 +17198,24 @@
mapAttributes,
evaluateLater,
interceptInit,
setEvaluator,
mergeProxies,
+ extractProp,
findClosest,
+ onElRemoved,
closestRoot,
destroyTree,
interceptor,
+ // INTERNAL: not public API and is subject to change without major release.
transition,
+ // INTERNAL
setStyles,
+ // INTERNAL
mutateDom,
directive,
+ entangle,
throttle,
debounce,
evaluate,
initTree,
nextTick,
@@ -17125,10 +17224,13 @@
plugin,
magic,
store,
start,
clone,
+ // INTERNAL
+ cloneNode,
+ // INTERNAL
bound: getBinding,
$data: scope,
walk,
data,
bind: bind2
@@ -17144,11 +17246,10 @@
}
var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
var isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`);
var EMPTY_OBJ = true ? Object.freeze({}) : {};
var EMPTY_ARR = true ? Object.freeze([]) : [];
- var extend = Object.assign;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var hasOwn = (val, key) => hasOwnProperty.call(val, key);
var isArray = Array.isArray;
var isMap = (val) => toTypeString(val) === "[object Map]";
var isString = (val) => typeof val === "string";
@@ -17354,38 +17455,38 @@
effects.forEach(run);
}
var isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
var builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(isSymbol));
var get2 = /* @__PURE__ */ createGetter();
- var shallowGet = /* @__PURE__ */ createGetter(false, true);
var readonlyGet = /* @__PURE__ */ createGetter(true);
- var shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);
- var arrayInstrumentations = {};
- ["includes", "indexOf", "lastIndexOf"].forEach((key) => {
- const method = Array.prototype[key];
- arrayInstrumentations[key] = function(...args) {
- const arr = toRaw(this);
- for (let i3 = 0, l2 = this.length; i3 < l2; i3++) {
- track(arr, "get", i3 + "");
- }
- const res = method.apply(arr, args);
- if (res === -1 || res === false) {
- return method.apply(arr, args.map(toRaw));
- } else {
+ var arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
+ function createArrayInstrumentations() {
+ const instrumentations = {};
+ ["includes", "indexOf", "lastIndexOf"].forEach((key) => {
+ instrumentations[key] = function(...args) {
+ const arr = toRaw(this);
+ for (let i3 = 0, l2 = this.length; i3 < l2; i3++) {
+ track(arr, "get", i3 + "");
+ }
+ const res = arr[key](...args);
+ if (res === -1 || res === false) {
+ return arr[key](...args.map(toRaw));
+ } else {
+ return res;
+ }
+ };
+ });
+ ["push", "pop", "shift", "unshift", "splice"].forEach((key) => {
+ instrumentations[key] = function(...args) {
+ pauseTracking();
+ const res = toRaw(this)[key].apply(this, args);
+ resetTracking();
return res;
- }
- };
- });
- ["push", "pop", "shift", "unshift", "splice"].forEach((key) => {
- const method = Array.prototype[key];
- arrayInstrumentations[key] = function(...args) {
- pauseTracking();
- const res = method.apply(this, args);
- resetTracking();
- return res;
- };
- });
+ };
+ });
+ return instrumentations;
+ }
function createGetter(isReadonly = false, shallow = false) {
return function get3(target, key, receiver) {
if (key === "__v_isReactive") {
return !isReadonly;
} else if (key === "__v_isReadonly") {
@@ -17416,11 +17517,10 @@
}
return res;
};
}
var set2 = /* @__PURE__ */ createSetter();
- var shallowSet = /* @__PURE__ */ createSetter(true);
function createSetter(shallow = false) {
return function set3(target, key, value, receiver) {
let oldValue = target[key];
if (!shallow) {
value = toRaw(value);
@@ -17482,23 +17582,19 @@
console.warn(`Delete operation on key "${String(key)}" failed: target is readonly.`, target);
}
return true;
}
};
- var shallowReactiveHandlers = extend({}, mutableHandlers, {
- get: shallowGet,
- set: shallowSet
- });
- var shallowReadonlyHandlers = extend({}, readonlyHandlers, {
- get: shallowReadonlyGet
- });
var toReactive = (value) => isObject(value) ? reactive2(value) : value;
var toReadonly = (value) => isObject(value) ? readonly(value) : value;
var toShallow = (value) => value;
var getProto = (v3) => Reflect.getPrototypeOf(v3);
function get$1(target, key, isReadonly = false, isShallow = false) {
- target = target["__v_raw"];
+ target = target[
+ "__v_raw"
+ /* RAW */
+ ];
const rawTarget = toRaw(target);
const rawKey = toRaw(key);
if (key !== rawKey) {
!isReadonly && track(rawTarget, "get", key);
}
@@ -17512,21 +17608,27 @@
} else if (target !== rawTarget) {
target.get(key);
}
}
function has$1(key, isReadonly = false) {
- const target = this["__v_raw"];
+ const target = this[
+ "__v_raw"
+ /* RAW */
+ ];
const rawTarget = toRaw(target);
const rawKey = toRaw(key);
if (key !== rawKey) {
!isReadonly && track(rawTarget, "has", key);
}
!isReadonly && track(rawTarget, "has", rawKey);
return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
}
function size(target, isReadonly = false) {
- target = target["__v_raw"];
+ target = target[
+ "__v_raw"
+ /* RAW */
+ ];
!isReadonly && track(toRaw(target), "iterate", ITERATE_KEY);
return Reflect.get(target, "size", target);
}
function add(value) {
value = toRaw(value);
@@ -17587,37 +17689,45 @@
return result;
}
function createForEach(isReadonly, isShallow) {
return function forEach(callback, thisArg) {
const observed = this;
- const target = observed["__v_raw"];
+ const target = observed[
+ "__v_raw"
+ /* RAW */
+ ];
const rawTarget = toRaw(target);
const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
!isReadonly && track(rawTarget, "iterate", ITERATE_KEY);
return target.forEach((value, key) => {
return callback.call(thisArg, wrap(value), wrap(key), observed);
});
};
}
function createIterableMethod(method, isReadonly, isShallow) {
return function(...args) {
- const target = this["__v_raw"];
+ const target = this[
+ "__v_raw"
+ /* RAW */
+ ];
const rawTarget = toRaw(target);
const targetIsMap = isMap(rawTarget);
const isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
const isKeyOnly = method === "keys" && targetIsMap;
const innerIterator = target[method](...args);
const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
!isReadonly && track(rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);
return {
+ // iterator protocol
next() {
const { value, done } = innerIterator.next();
return done ? { value, done } : {
value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
done
};
},
+ // iterable protocol
[Symbol.iterator]() {
return this;
}
};
};
@@ -17629,77 +17739,110 @@
console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));
}
return type === "delete" ? false : this;
};
}
- var mutableInstrumentations = {
- get(key) {
- return get$1(this, key);
- },
- get size() {
- return size(this);
- },
- has: has$1,
- add,
- set: set$1,
- delete: deleteEntry,
- clear,
- forEach: createForEach(false, false)
- };
- var shallowInstrumentations = {
- get(key) {
- return get$1(this, key, false, true);
- },
- get size() {
- return size(this);
- },
- has: has$1,
- add,
- set: set$1,
- delete: deleteEntry,
- clear,
- forEach: createForEach(false, true)
- };
- var readonlyInstrumentations = {
- get(key) {
- return get$1(this, key, true);
- },
- get size() {
- return size(this, true);
- },
- has(key) {
- return has$1.call(this, key, true);
- },
- add: createReadonlyMethod("add"),
- set: createReadonlyMethod("set"),
- delete: createReadonlyMethod("delete"),
- clear: createReadonlyMethod("clear"),
- forEach: createForEach(true, false)
- };
- var shallowReadonlyInstrumentations = {
- get(key) {
- return get$1(this, key, true, true);
- },
- get size() {
- return size(this, true);
- },
- has(key) {
- return has$1.call(this, key, true);
- },
- add: createReadonlyMethod("add"),
- set: createReadonlyMethod("set"),
- delete: createReadonlyMethod("delete"),
- clear: createReadonlyMethod("clear"),
- forEach: createForEach(true, true)
- };
- var iteratorMethods = ["keys", "values", "entries", Symbol.iterator];
- iteratorMethods.forEach((method) => {
- mutableInstrumentations[method] = createIterableMethod(method, false, false);
- readonlyInstrumentations[method] = createIterableMethod(method, true, false);
- shallowInstrumentations[method] = createIterableMethod(method, false, true);
- shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);
- });
+ function createInstrumentations() {
+ const mutableInstrumentations2 = {
+ get(key) {
+ return get$1(this, key);
+ },
+ get size() {
+ return size(this);
+ },
+ has: has$1,
+ add,
+ set: set$1,
+ delete: deleteEntry,
+ clear,
+ forEach: createForEach(false, false)
+ };
+ const shallowInstrumentations2 = {
+ get(key) {
+ return get$1(this, key, false, true);
+ },
+ get size() {
+ return size(this);
+ },
+ has: has$1,
+ add,
+ set: set$1,
+ delete: deleteEntry,
+ clear,
+ forEach: createForEach(false, true)
+ };
+ const readonlyInstrumentations2 = {
+ get(key) {
+ return get$1(this, key, true);
+ },
+ get size() {
+ return size(this, true);
+ },
+ has(key) {
+ return has$1.call(this, key, true);
+ },
+ add: createReadonlyMethod(
+ "add"
+ /* ADD */
+ ),
+ set: createReadonlyMethod(
+ "set"
+ /* SET */
+ ),
+ delete: createReadonlyMethod(
+ "delete"
+ /* DELETE */
+ ),
+ clear: createReadonlyMethod(
+ "clear"
+ /* CLEAR */
+ ),
+ forEach: createForEach(true, false)
+ };
+ const shallowReadonlyInstrumentations2 = {
+ get(key) {
+ return get$1(this, key, true, true);
+ },
+ get size() {
+ return size(this, true);
+ },
+ has(key) {
+ return has$1.call(this, key, true);
+ },
+ add: createReadonlyMethod(
+ "add"
+ /* ADD */
+ ),
+ set: createReadonlyMethod(
+ "set"
+ /* SET */
+ ),
+ delete: createReadonlyMethod(
+ "delete"
+ /* DELETE */
+ ),
+ clear: createReadonlyMethod(
+ "clear"
+ /* CLEAR */
+ ),
+ forEach: createForEach(true, true)
+ };
+ const iteratorMethods = ["keys", "values", "entries", Symbol.iterator];
+ iteratorMethods.forEach((method) => {
+ mutableInstrumentations2[method] = createIterableMethod(method, false, false);
+ readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
+ shallowInstrumentations2[method] = createIterableMethod(method, false, true);
+ shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);
+ });
+ return [
+ mutableInstrumentations2,
+ readonlyInstrumentations2,
+ shallowInstrumentations2,
+ shallowReadonlyInstrumentations2
+ ];
+ }
+ var [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();
function createInstrumentationGetter(isReadonly, shallow) {
const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;
return (target, key, receiver) => {
if (key === "__v_isReactive") {
return !isReadonly;
@@ -17710,21 +17853,15 @@
}
return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
};
}
var mutableCollectionHandlers = {
- get: createInstrumentationGetter(false, false)
+ get: /* @__PURE__ */ createInstrumentationGetter(false, false)
};
- var shallowCollectionHandlers = {
- get: createInstrumentationGetter(false, true)
- };
var readonlyCollectionHandlers = {
- get: createInstrumentationGetter(true, false)
+ get: /* @__PURE__ */ createInstrumentationGetter(true, false)
};
- var shallowReadonlyCollectionHandlers = {
- get: createInstrumentationGetter(true, true)
- };
function checkIdentityKeys(target, has2, key) {
const rawKey = toRaw(key);
if (rawKey !== key && has2.call(target, rawKey)) {
const type = toRawType(target);
console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`);
@@ -17747,14 +17884,20 @@
default:
return 0;
}
}
function getTargetType(value) {
- return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
+ return value[
+ "__v_skip"
+ /* SKIP */
+ ] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
}
function reactive2(target) {
- if (target && target["__v_isReadonly"]) {
+ if (target && target[
+ "__v_isReadonly"
+ /* IS_READONLY */
+ ]) {
return target;
}
return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
}
function readonly(target) {
@@ -17765,11 +17908,17 @@
if (true) {
console.warn(`value cannot be made reactive: ${String(target)}`);
}
return target;
}
- if (target["__v_raw"] && !(isReadonly && target["__v_isReactive"])) {
+ if (target[
+ "__v_raw"
+ /* RAW */
+ ] && !(isReadonly && target[
+ "__v_isReactive"
+ /* IS_REACTIVE */
+ ])) {
return target;
}
const existingProxy = proxyMap.get(target);
if (existingProxy) {
return existingProxy;
@@ -17781,11 +17930,14 @@
const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
proxyMap.set(target, proxy);
return proxy;
}
function toRaw(observed) {
- return observed && toRaw(observed["__v_raw"]) || observed;
+ return observed && toRaw(observed[
+ "__v_raw"
+ /* RAW */
+ ]) || observed;
}
function isRef(r3) {
return Boolean(r3 && r3.__v_isRef === true);
}
magic("nextTick", () => nextTick);
@@ -17852,115 +18004,102 @@
});
magic("el", (el) => el);
warnMissingPluginMagic("Focus", "focus", "focus");
warnMissingPluginMagic("Persist", "persist", "persist");
function warnMissingPluginMagic(name, magicName, slug) {
- magic(magicName, (el) => warn(`You can't use [$${directiveName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el));
+ magic(magicName, (el) => warn(`You can't use [$${magicName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el));
}
- function entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) {
- let firstRun = true;
- let outerHash, innerHash, outerHashLatest, innerHashLatest;
- let reference2 = effect(() => {
- let outer, inner;
- if (firstRun) {
- outer = outerGet();
- innerSet(outer);
- inner = innerGet();
- firstRun = false;
- } else {
- outer = outerGet();
- inner = innerGet();
- outerHashLatest = JSON.stringify(outer);
- innerHashLatest = JSON.stringify(inner);
- if (outerHashLatest !== outerHash) {
- inner = innerGet();
- innerSet(outer);
- inner = outer;
- } else {
- outerSet(inner);
- outer = inner;
- }
- }
- outerHash = JSON.stringify(outer);
- innerHash = JSON.stringify(inner);
- });
- return () => {
- release(reference2);
- };
- }
directive("modelable", (el, { expression }, { effect: effect32, evaluateLater: evaluateLater2, cleanup: cleanup2 }) => {
let func = evaluateLater2(expression);
let innerGet = () => {
let result;
func((i3) => result = i3);
return result;
};
let evaluateInnerSet = evaluateLater2(`${expression} = __placeholder`);
let innerSet = (val) => evaluateInnerSet(() => {
- }, { scope: { __placeholder: val } });
+ }, { scope: { "__placeholder": val } });
let initialValue = innerGet();
innerSet(initialValue);
queueMicrotask(() => {
if (!el._x_model)
return;
el._x_removeModelListeners["default"]();
let outerGet = el._x_model.get;
let outerSet = el._x_model.set;
- let releaseEntanglement = entangle({
- get() {
- return outerGet();
+ let releaseEntanglement = entangle(
+ {
+ get() {
+ return outerGet();
+ },
+ set(value) {
+ outerSet(value);
+ }
},
- set(value) {
- outerSet(value);
+ {
+ get() {
+ return innerGet();
+ },
+ set(value) {
+ innerSet(value);
+ }
}
- }, {
- get() {
- return innerGet();
- },
- set(value) {
- innerSet(value);
- }
- });
+ );
cleanup2(releaseEntanglement);
});
});
- var teleportContainerDuringClone = document.createElement("div");
directive("teleport", (el, { modifiers, expression }, { cleanup: cleanup2 }) => {
if (el.tagName.toLowerCase() !== "template")
warn("x-teleport can only be used on a <template> tag", el);
- let target = skipDuringClone(() => {
- return document.querySelector(expression);
- }, () => {
- return teleportContainerDuringClone;
- })();
- if (!target)
- warn(`Cannot find x-teleport element for selector: "${expression}"`);
+ let target = getTarget(expression);
let clone2 = el.content.cloneNode(true).firstElementChild;
el._x_teleport = clone2;
clone2._x_teleportBack = el;
+ el.setAttribute("data-teleport-template", true);
+ clone2.setAttribute("data-teleport-target", true);
if (el._x_forwardEvents) {
el._x_forwardEvents.forEach((eventName) => {
clone2.addEventListener(eventName, (e3) => {
e3.stopPropagation();
el.dispatchEvent(new e3.constructor(e3.type, e3));
});
});
}
addScopeToNode(clone2, {}, el);
- mutateDom(() => {
- if (modifiers.includes("prepend")) {
- target.parentNode.insertBefore(clone2, target);
- } else if (modifiers.includes("append")) {
- target.parentNode.insertBefore(clone2, target.nextSibling);
+ let placeInDom = (clone3, target2, modifiers2) => {
+ if (modifiers2.includes("prepend")) {
+ target2.parentNode.insertBefore(clone3, target2);
+ } else if (modifiers2.includes("append")) {
+ target2.parentNode.insertBefore(clone3, target2.nextSibling);
} else {
- target.appendChild(clone2);
+ target2.appendChild(clone3);
}
+ };
+ mutateDom(() => {
+ placeInDom(clone2, target, modifiers);
initTree(clone2);
clone2._x_ignore = true;
});
+ el._x_teleportPutBack = () => {
+ let target2 = getTarget(expression);
+ mutateDom(() => {
+ placeInDom(el._x_teleport, target2, modifiers);
+ });
+ };
cleanup2(() => clone2.remove());
});
+ var teleportContainerDuringClone = document.createElement("div");
+ function getTarget(expression) {
+ let target = skipDuringClone(() => {
+ return document.querySelector(expression);
+ }, () => {
+ return teleportContainerDuringClone;
+ })();
+ if (!target)
+ warn(`Cannot find x-teleport element for selector: "${expression}"`);
+ return target;
+ }
var handler = () => {
};
handler.inline = (el, { modifiers }, { cleanup: cleanup2 }) => {
modifiers.includes("self") ? el._x_ignoreSelf = true : el._x_ignore = true;
cleanup2(() => {
@@ -17969,11 +18108,11 @@
};
directive("ignore", handler);
directive("effect", (el, { expression }, { effect: effect32 }) => effect32(evaluateLater(el, expression)));
function on(el, event, modifiers, callback) {
let listenerTarget = el;
- let handler3 = (e3) => callback(e3);
+ let handler4 = (e3) => callback(e3);
let options = {};
let wrapHandler = (callback2, wrapper) => (e3) => wrapper(callback2, e3);
if (modifiers.includes("dot"))
event = dotSyntax(event);
if (modifiers.includes("camel"))
@@ -17987,34 +18126,34 @@
if (modifiers.includes("document"))
listenerTarget = document;
if (modifiers.includes("debounce")) {
let nextModifier = modifiers[modifiers.indexOf("debounce") + 1] || "invalid-wait";
let wait = isNumeric(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250;
- handler3 = debounce(handler3, wait);
+ handler4 = debounce(handler4, wait);
}
if (modifiers.includes("throttle")) {
let nextModifier = modifiers[modifiers.indexOf("throttle") + 1] || "invalid-wait";
let wait = isNumeric(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250;
- handler3 = throttle(handler3, wait);
+ handler4 = throttle(handler4, wait);
}
if (modifiers.includes("prevent"))
- handler3 = wrapHandler(handler3, (next, e3) => {
+ handler4 = wrapHandler(handler4, (next, e3) => {
e3.preventDefault();
next(e3);
});
if (modifiers.includes("stop"))
- handler3 = wrapHandler(handler3, (next, e3) => {
+ handler4 = wrapHandler(handler4, (next, e3) => {
e3.stopPropagation();
next(e3);
});
if (modifiers.includes("self"))
- handler3 = wrapHandler(handler3, (next, e3) => {
+ handler4 = wrapHandler(handler4, (next, e3) => {
e3.target === el && next(e3);
});
if (modifiers.includes("away") || modifiers.includes("outside")) {
listenerTarget = document;
- handler3 = wrapHandler(handler3, (next, e3) => {
+ handler4 = wrapHandler(handler4, (next, e3) => {
if (el.contains(e3.target))
return;
if (e3.target.isConnected === false)
return;
if (el.offsetWidth < 1 && el.offsetHeight < 1)
@@ -18023,26 +18162,26 @@
return;
next(e3);
});
}
if (modifiers.includes("once")) {
- handler3 = wrapHandler(handler3, (next, e3) => {
+ handler4 = wrapHandler(handler4, (next, e3) => {
next(e3);
- listenerTarget.removeEventListener(event, handler3, options);
+ listenerTarget.removeEventListener(event, handler4, options);
});
}
- handler3 = wrapHandler(handler3, (next, e3) => {
+ handler4 = wrapHandler(handler4, (next, e3) => {
if (isKeyEvent(event)) {
if (isListeningForASpecificKeyThatHasntBeenPressed(e3, modifiers)) {
return;
}
}
next(e3);
});
- listenerTarget.addEventListener(event, handler3, options);
+ listenerTarget.addEventListener(event, handler4, options);
return () => {
- listenerTarget.removeEventListener(event, handler3, options);
+ listenerTarget.removeEventListener(event, handler4, options);
};
}
function dotSyntax(subject) {
return subject.replace(/-/g, ".");
}
@@ -18051,11 +18190,13 @@
}
function isNumeric(subject) {
return !Array.isArray(subject) && !isNaN(subject);
}
function kebabCase2(subject) {
- if ([" ", "_"].includes(subject))
+ if ([" ", "_"].includes(
+ subject
+ ))
return subject;
return subject.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[_\s]/, "-").toLowerCase();
}
function isKeyEvent(event) {
return ["keydown", "keyup"].includes(event);
@@ -18095,24 +18236,24 @@
function keyToModifiers(key) {
if (!key)
return [];
key = kebabCase2(key);
let modifierToKeyMap = {
- ctrl: "control",
- slash: "/",
- space: " ",
- spacebar: " ",
- cmd: "meta",
- esc: "escape",
- up: "arrow-up",
- down: "arrow-down",
- left: "arrow-left",
- right: "arrow-right",
- period: ".",
- equal: "=",
- minus: "-",
- underscore: "_"
+ "ctrl": "control",
+ "slash": "/",
+ "space": " ",
+ "spacebar": " ",
+ "cmd": "meta",
+ "esc": "escape",
+ "up": "arrow-up",
+ "down": "arrow-down",
+ "left": "arrow-left",
+ "right": "arrow-right",
+ "period": ".",
+ "equal": "=",
+ "minus": "-",
+ "underscore": "_"
};
modifierToKeyMap[key] = key;
return Object.keys(modifierToKeyMap).map((modifier) => {
if (modifierToKeyMap[modifier] === key)
return modifier;
@@ -18144,11 +18285,11 @@
if (isGetterSetter(result)) {
result.set(value);
} else {
evaluateSet(() => {
}, {
- scope: { __placeholder: value }
+ scope: { "__placeholder": value }
});
}
};
if (typeof expression === "string" && el.type === "radio") {
mutateDom(() => {
@@ -18159,12 +18300,14 @@
var event = el.tagName.toLowerCase() === "select" || ["checkbox", "radio"].includes(el.type) || modifiers.includes("lazy") ? "change" : "input";
let removeListener = isCloning ? () => {
} : on(el, event, modifiers, (e3) => {
setValue(getInputValue(el, modifiers, e3, getValue()));
});
- if (modifiers.includes("fill") && [null, ""].includes(getValue())) {
- el.dispatchEvent(new Event(event, {}));
+ if (modifiers.includes("fill")) {
+ if ([null, ""].includes(getValue()) || el.type === "checkbox" && Array.isArray(getValue())) {
+ el.dispatchEvent(new Event(event, {}));
+ }
}
if (!el._x_removeModelListeners)
el._x_removeModelListeners = {};
el._x_removeModelListeners["default"] = removeListener;
cleanup2(() => el._x_removeModelListeners["default"]());
@@ -18181,11 +18324,10 @@
set(value) {
setValue(value);
}
};
el._x_forceModelUpdate = (value) => {
- value = value === void 0 ? getValue() : value;
if (value === void 0 && typeof expression === "string" && expression.match(/\./))
value = "";
window.fromModel = true;
mutateDom(() => bind(el, "value", value));
delete window.fromModel;
@@ -18197,13 +18339,12 @@
el._x_forceModelUpdate(value);
});
});
function getInputValue(el, modifiers, event, currentValue) {
return mutateDom(() => {
- var _a;
if (event instanceof CustomEvent && event.detail !== void 0)
- return (_a = event.detail) != null ? _a : event.target.value;
+ return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value;
else if (el.type === "checkbox") {
if (Array.isArray(currentValue)) {
let newValue = modifiers.includes("number") ? safeParseNumber(event.target.value) : event.target.value;
return event.target.checked ? currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue));
} else {
@@ -18265,11 +18406,11 @@
});
});
});
});
mapAttributes(startingWith(":", into(prefix("bind:"))));
- directive("bind", (el, { value, modifiers, expression, original }, { effect: effect32 }) => {
+ var handler2 = (el, { value, modifiers, expression, original }, { effect: effect32 }) => {
if (!value) {
let bindingProviders = {};
injectBindingProviders(bindingProviders);
let getBindings = evaluateLater(el, expression);
getBindings((bindings) => {
@@ -18277,41 +18418,54 @@
}, { scope: bindingProviders });
return;
}
if (value === "key")
return storeKeyForXFor(el, expression);
+ if (el._x_inlineBindings && el._x_inlineBindings[value] && el._x_inlineBindings[value].extract) {
+ return;
+ }
let evaluate2 = evaluateLater(el, expression);
effect32(() => evaluate2((result) => {
if (result === void 0 && typeof expression === "string" && expression.match(/\./)) {
result = "";
}
mutateDom(() => bind(el, value, result, modifiers));
}));
- });
+ };
+ handler2.inline = (el, { value, modifiers, expression }) => {
+ if (!value)
+ return;
+ if (!el._x_inlineBindings)
+ el._x_inlineBindings = {};
+ el._x_inlineBindings[value] = { expression, extract: false };
+ };
+ directive("bind", handler2);
function storeKeyForXFor(el, expression) {
el._x_keyExpression = expression;
}
addRootSelector(() => `[${prefix("data")}]`);
- directive("data", skipDuringClone((el, { expression }, { cleanup: cleanup2 }) => {
+ directive("data", (el, { expression }, { cleanup: cleanup2 }) => {
+ if (shouldSkipRegisteringDataDuringClone(el))
+ return;
expression = expression === "" ? "{}" : expression;
let magicContext = {};
injectMagics(magicContext, el);
let dataProviderContext = {};
injectDataProviders(dataProviderContext, magicContext);
let data2 = evaluate(el, expression, { scope: dataProviderContext });
if (data2 === void 0 || data2 === true)
data2 = {};
injectMagics(data2, el);
let reactiveData = reactive(data2);
- initInterceptors(reactiveData);
+ initInterceptors2(reactiveData);
let undo = addScopeToNode(el, reactiveData);
reactiveData["init"] && evaluate(el, reactiveData["init"]);
cleanup2(() => {
reactiveData["destroy"] && evaluate(el, reactiveData["destroy"]);
undo();
});
- }));
+ });
directive("show", (el, { modifiers, expression }, { effect: effect32 }) => {
let evaluate2 = evaluateLater(el, expression);
if (!el._x_doHide)
el._x_doHide = () => {
mutateDom(() => {
@@ -18335,17 +18489,20 @@
let show = () => {
el._x_doShow();
el._x_isShown = true;
};
let clickAwayCompatibleShow = () => setTimeout(show);
- let toggle = once((value) => value ? show() : hide2(), (value) => {
- if (typeof el._x_toggleAndCascadeWithTransitions === "function") {
- el._x_toggleAndCascadeWithTransitions(el, value, show, hide2);
- } else {
- value ? clickAwayCompatibleShow() : hide2();
+ let toggle = once(
+ (value) => value ? show() : hide2(),
+ (value) => {
+ if (typeof el._x_toggleAndCascadeWithTransitions === "function") {
+ el._x_toggleAndCascadeWithTransitions(el, value, show, hide2);
+ } else {
+ value ? clickAwayCompatibleShow() : hide2();
+ }
}
- });
+ );
let oldValue;
let firstTime = true;
effect32(() => evaluate2((value) => {
if (!firstTime && value === oldValue)
return;
@@ -18357,11 +18514,15 @@
}));
});
directive("for", (el, { expression }, { effect: effect32, cleanup: cleanup2 }) => {
let iteratorNames = parseForExpression(expression);
let evaluateItems = evaluateLater(el, iteratorNames.items);
- let evaluateKey = evaluateLater(el, el._x_keyExpression || "index");
+ let evaluateKey = evaluateLater(
+ el,
+ // the x-bind:key expression is stored for our use instead of evaluated.
+ el._x_keyExpression || "index"
+ );
el._x_prevKeys = [];
el._x_lookup = {};
effect32(() => loop(el, iteratorNames, evaluateItems, evaluateKey));
cleanup2(() => {
Object.values(el._x_lookup).forEach((el2) => el2.remove());
@@ -18523,21 +18684,23 @@
return scopeVariables;
}
function isNumeric3(subject) {
return !Array.isArray(subject) && !isNaN(subject);
}
- function handler2() {
+ function handler3() {
}
- handler2.inline = (el, { expression }, { cleanup: cleanup2 }) => {
+ handler3.inline = (el, { expression }, { cleanup: cleanup2 }) => {
let root = closestRoot(el);
if (!root._x_refs)
root._x_refs = {};
root._x_refs[expression] = el;
cleanup2(() => delete root._x_refs[expression]);
};
- directive("ref", handler2);
+ directive("ref", handler3);
directive("if", (el, { expression }, { effect: effect32, cleanup: cleanup2 }) => {
+ if (el.tagName.toLowerCase() !== "template")
+ warn("x-if can only be used on a <template> tag", el);
let evaluate2 = evaluateLater(el, expression);
let show = () => {
if (el._x_currentIfEl)
return el._x_currentIfEl;
let clone2 = el.content.cloneNode(true).firstElementChild;
@@ -18583,93 +18746,27 @@
if (!el._x_forwardEvents.includes(value))
el._x_forwardEvents.push(value);
}
let removeListener = on(el, value, modifiers, (e3) => {
evaluate2(() => {
- }, { scope: { $event: e3 }, params: [e3] });
+ }, { scope: { "$event": e3 }, params: [e3] });
});
cleanup2(() => removeListener());
}));
warnMissingPluginDirective("Collapse", "collapse", "collapse");
warnMissingPluginDirective("Intersect", "intersect", "intersect");
warnMissingPluginDirective("Focus", "trap", "focus");
warnMissingPluginDirective("Mask", "mask", "mask");
- function warnMissingPluginDirective(name, directiveName2, slug) {
- directive(directiveName2, (el) => warn(`You can't use [x-${directiveName2}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el));
+ function warnMissingPluginDirective(name, directiveName, slug) {
+ directive(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el));
}
alpine_default.setEvaluator(normalEvaluator);
alpine_default.setReactivityEngine({ reactive: reactive2, effect: effect2, release: stop, raw: toRaw });
var src_default = alpine_default;
var module_default = src_default;
// ../../../node_modules/@alpinejs/morph/dist/module.esm.js
- function createElement(html) {
- const template = document.createElement("template");
- template.innerHTML = html;
- return template.content.firstElementChild;
- }
- function textOrComment(el) {
- return el.nodeType === 3 || el.nodeType === 8;
- }
- var dom = {
- replace(children, old, replacement) {
- let index = children.indexOf(old);
- if (index === -1)
- throw "Cant find element in children";
- old.replaceWith(replacement);
- children[index] = replacement;
- return children;
- },
- before(children, reference2, subject) {
- let index = children.indexOf(reference2);
- if (index === -1)
- throw "Cant find element in children";
- reference2.before(subject);
- children.splice(index, 0, subject);
- return children;
- },
- append(children, subject, appendFn) {
- let last = children[children.length - 1];
- appendFn(subject);
- children.push(subject);
- return children;
- },
- remove(children, subject) {
- let index = children.indexOf(subject);
- if (index === -1)
- throw "Cant find element in children";
- subject.remove();
- return children.filter((i3) => i3 !== subject);
- },
- first(children) {
- return this.teleportTo(children[0]);
- },
- next(children, reference2) {
- let index = children.indexOf(reference2);
- if (index === -1)
- return;
- return this.teleportTo(this.teleportBack(children[index + 1]));
- },
- teleportTo(el) {
- if (!el)
- return el;
- if (el._x_teleport)
- return el._x_teleport;
- return el;
- },
- teleportBack(el) {
- if (!el)
- return el;
- if (el._x_teleportBack)
- return el._x_teleportBack;
- return el;
- }
- };
- var resolveStep = () => {
- };
- var logger = () => {
- };
function morph(from, toHtml, options) {
monkeyPatchDomSetAttributeToAllowAtSymbols();
let fromEl;
let toEl;
let key, lookahead, updating, updated, removing, removed, adding, added;
@@ -18686,49 +18783,51 @@
key = options2.key || defaultGetKey;
lookahead = options2.lookahead || false;
}
function patch(from2, to) {
if (differentElementNamesTypesOrKeys(from2, to)) {
- return patchElement(from2, to);
+ return swapElements(from2, to);
}
let updateChildrenOnly = false;
if (shouldSkip(updating, from2, to, () => updateChildrenOnly = true))
return;
- window.Alpine && initializeAlpineOnTo(from2, to, () => updateChildrenOnly = true);
+ if (from2.nodeType === 1 && window.Alpine) {
+ window.Alpine.cloneNode(from2, to);
+ }
if (textOrComment(to)) {
patchNodeValue(from2, to);
updated(from2, to);
return;
}
if (!updateChildrenOnly) {
patchAttributes(from2, to);
}
updated(from2, to);
- patchChildren(Array.from(from2.childNodes), Array.from(to.childNodes), (toAppend) => {
- from2.appendChild(toAppend);
- });
+ patchChildren(from2, to);
}
function differentElementNamesTypesOrKeys(from2, to) {
return from2.nodeType != to.nodeType || from2.nodeName != to.nodeName || getKey(from2) != getKey(to);
}
- function patchElement(from2, to) {
+ function swapElements(from2, to) {
if (shouldSkip(removing, from2))
return;
let toCloned = to.cloneNode(true);
if (shouldSkip(adding, toCloned))
return;
- dom.replace([from2], from2, toCloned);
+ from2.replaceWith(toCloned);
removed(from2);
added(toCloned);
}
function patchNodeValue(from2, to) {
let value = to.nodeValue;
if (from2.nodeValue !== value) {
from2.nodeValue = value;
}
}
function patchAttributes(from2, to) {
+ if (from2._x_transitioning)
+ return;
if (from2._x_isShown && !to._x_isShown) {
return;
}
if (!from2._x_isShown && to._x_isShown) {
return;
@@ -18747,124 +18846,124 @@
if (from2.getAttribute(name) !== value) {
from2.setAttribute(name, value);
}
}
}
- function patchChildren(fromChildren, toChildren, appendFn) {
- let fromKeyDomNodeMap = {};
+ function patchChildren(from2, to) {
+ let fromKeys = keyToMap(from2.children);
let fromKeyHoldovers = {};
- let currentTo = dom.first(toChildren);
- let currentFrom = dom.first(fromChildren);
+ let currentTo = getFirstNode(to);
+ let currentFrom = getFirstNode(from2);
while (currentTo) {
let toKey = getKey(currentTo);
let fromKey = getKey(currentFrom);
if (!currentFrom) {
if (toKey && fromKeyHoldovers[toKey]) {
let holdover = fromKeyHoldovers[toKey];
- fromChildren = dom.append(fromChildren, holdover, appendFn);
+ from2.appendChild(holdover);
currentFrom = holdover;
} else {
if (!shouldSkip(adding, currentTo)) {
let clone2 = currentTo.cloneNode(true);
- fromChildren = dom.append(fromChildren, clone2, appendFn);
+ from2.appendChild(clone2);
added(clone2);
}
- currentTo = dom.next(toChildren, currentTo);
+ currentTo = getNextSibling(to, currentTo);
continue;
}
}
- let isIf = (node) => node.nodeType === 8 && node.textContent === " __BLOCK__ ";
- let isEnd = (node) => node.nodeType === 8 && node.textContent === " __ENDBLOCK__ ";
+ let isIf = (node) => node && node.nodeType === 8 && node.textContent === "[if BLOCK]><![endif]";
+ let isEnd = (node) => node && node.nodeType === 8 && node.textContent === "[if ENDBLOCK]><![endif]";
if (isIf(currentTo) && isIf(currentFrom)) {
- let newFromChildren = [];
- let appendPoint;
let nestedIfCount = 0;
+ let fromBlockStart = currentFrom;
while (currentFrom) {
- let next = dom.next(fromChildren, currentFrom);
+ let next = getNextSibling(from2, currentFrom);
if (isIf(next)) {
nestedIfCount++;
} else if (isEnd(next) && nestedIfCount > 0) {
nestedIfCount--;
} else if (isEnd(next) && nestedIfCount === 0) {
- currentFrom = dom.next(fromChildren, next);
- appendPoint = next;
+ currentFrom = next;
break;
}
- newFromChildren.push(next);
currentFrom = next;
}
- let newToChildren = [];
+ let fromBlockEnd = currentFrom;
nestedIfCount = 0;
+ let toBlockStart = currentTo;
while (currentTo) {
- let next = dom.next(toChildren, currentTo);
+ let next = getNextSibling(to, currentTo);
if (isIf(next)) {
nestedIfCount++;
} else if (isEnd(next) && nestedIfCount > 0) {
nestedIfCount--;
} else if (isEnd(next) && nestedIfCount === 0) {
- currentTo = dom.next(toChildren, next);
+ currentTo = next;
break;
}
- newToChildren.push(next);
currentTo = next;
}
- patchChildren(newFromChildren, newToChildren, (node) => appendPoint.before(node));
+ let toBlockEnd = currentTo;
+ let fromBlock = new Block(fromBlockStart, fromBlockEnd);
+ let toBlock = new Block(toBlockStart, toBlockEnd);
+ patchChildren(fromBlock, toBlock);
continue;
}
- if (currentFrom.nodeType === 1 && lookahead) {
- let nextToElementSibling = dom.next(toChildren, currentTo);
+ if (currentFrom.nodeType === 1 && lookahead && !currentFrom.isEqualNode(currentTo)) {
+ let nextToElementSibling = getNextSibling(to, currentTo);
let found = false;
while (!found && nextToElementSibling) {
- if (currentFrom.isEqualNode(nextToElementSibling)) {
+ if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) {
found = true;
- [fromChildren, currentFrom] = addNodeBefore(fromChildren, currentTo, currentFrom);
+ currentFrom = addNodeBefore(from2, currentTo, currentFrom);
fromKey = getKey(currentFrom);
}
- nextToElementSibling = dom.next(toChildren, nextToElementSibling);
+ nextToElementSibling = getNextSibling(to, nextToElementSibling);
}
}
if (toKey !== fromKey) {
if (!toKey && fromKey) {
fromKeyHoldovers[fromKey] = currentFrom;
- [fromChildren, currentFrom] = addNodeBefore(fromChildren, currentTo, currentFrom);
- fromChildren = dom.remove(fromChildren, fromKeyHoldovers[fromKey]);
- currentFrom = dom.next(fromChildren, currentFrom);
- currentTo = dom.next(toChildren, currentTo);
+ currentFrom = addNodeBefore(from2, currentTo, currentFrom);
+ fromKeyHoldovers[fromKey].remove();
+ currentFrom = getNextSibling(from2, currentFrom);
+ currentTo = getNextSibling(to, currentTo);
continue;
}
if (toKey && !fromKey) {
- if (fromKeyDomNodeMap[toKey]) {
- fromChildren = dom.replace(fromChildren, currentFrom, fromKeyDomNodeMap[toKey]);
- currentFrom = fromKeyDomNodeMap[toKey];
+ if (fromKeys[toKey]) {
+ currentFrom.replaceWith(fromKeys[toKey]);
+ currentFrom = fromKeys[toKey];
}
}
if (toKey && fromKey) {
- let fromKeyNode = fromKeyDomNodeMap[toKey];
+ let fromKeyNode = fromKeys[toKey];
if (fromKeyNode) {
fromKeyHoldovers[fromKey] = currentFrom;
- fromChildren = dom.replace(fromChildren, currentFrom, fromKeyNode);
+ currentFrom.replaceWith(fromKeyNode);
currentFrom = fromKeyNode;
} else {
fromKeyHoldovers[fromKey] = currentFrom;
- [fromChildren, currentFrom] = addNodeBefore(fromChildren, currentTo, currentFrom);
- fromChildren = dom.remove(fromChildren, fromKeyHoldovers[fromKey]);
- currentFrom = dom.next(fromChildren, currentFrom);
- currentTo = dom.next(toChildren, currentTo);
+ currentFrom = addNodeBefore(from2, currentTo, currentFrom);
+ fromKeyHoldovers[fromKey].remove();
+ currentFrom = getNextSibling(from2, currentFrom);
+ currentTo = getNextSibling(to, currentTo);
continue;
}
}
}
- let currentFromNext = currentFrom && dom.next(fromChildren, currentFrom);
+ let currentFromNext = currentFrom && getNextSibling(from2, currentFrom);
patch(currentFrom, currentTo);
- currentTo = currentTo && dom.next(toChildren, currentTo);
+ currentTo = currentTo && getNextSibling(to, currentTo);
currentFrom = currentFromNext;
}
let removals = [];
while (currentFrom) {
if (!shouldSkip(removing, currentFrom))
removals.push(currentFrom);
- currentFrom = dom.next(fromChildren, currentFrom);
+ currentFrom = getNextSibling(from2, currentFrom);
}
while (removals.length) {
let domForRemoval = removals.shift();
domForRemoval.remove();
removed(domForRemoval);
@@ -18873,56 +18972,106 @@
function getKey(el) {
return el && el.nodeType === 1 && key(el);
}
function keyToMap(els) {
let map = {};
- els.forEach((el) => {
+ for (let el of els) {
let theKey = getKey(el);
if (theKey) {
map[theKey] = el;
}
- });
+ }
return map;
}
- function addNodeBefore(children, node, beforeMe) {
+ function addNodeBefore(parent, node, beforeMe) {
if (!shouldSkip(adding, node)) {
let clone2 = node.cloneNode(true);
- children = dom.before(children, beforeMe, clone2);
+ parent.insertBefore(clone2, beforeMe);
added(clone2);
- return [children, clone2];
+ return clone2;
}
- return [children, node];
+ return node;
}
assignOptions(options);
fromEl = from;
toEl = typeof toHtml === "string" ? createElement(toHtml) : toHtml;
if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) {
toEl._x_dataStack = window.Alpine.closestDataStack(from);
- toEl._x_dataStack && window.Alpine.clone(from, toEl);
+ toEl._x_dataStack && window.Alpine.cloneNode(from, toEl);
}
patch(from, toEl);
fromEl = void 0;
toEl = void 0;
return from;
}
- morph.step = () => resolveStep();
- morph.log = (theLogger) => {
- logger = theLogger;
+ morph.step = () => {
};
+ morph.log = () => {
+ };
function shouldSkip(hook, ...args) {
let skip = false;
hook(...args, () => skip = true);
return skip;
}
- function initializeAlpineOnTo(from, to, childrenOnly) {
- if (from.nodeType !== 1)
- return;
- if (from._x_dataStack) {
- window.Alpine.clone(from, to);
+ var patched = false;
+ function createElement(html) {
+ const template = document.createElement("template");
+ template.innerHTML = html;
+ return template.content.firstElementChild;
+ }
+ function textOrComment(el) {
+ return el.nodeType === 3 || el.nodeType === 8;
+ }
+ var Block = class {
+ constructor(start3, end2) {
+ this.startComment = start3;
+ this.endComment = end2;
}
+ get children() {
+ let children = [];
+ let currentNode = this.startComment.nextSibling;
+ while (currentNode && currentNode !== this.endComment) {
+ children.push(currentNode);
+ currentNode = currentNode.nextSibling;
+ }
+ return children;
+ }
+ appendChild(child) {
+ this.endComment.before(child);
+ }
+ get firstChild() {
+ let first = this.startComment.nextSibling;
+ if (first === this.endComment)
+ return;
+ return first;
+ }
+ nextNode(reference2) {
+ let next = reference2.nextSibling;
+ if (next === this.endComment)
+ return;
+ return next;
+ }
+ insertBefore(newNode, reference2) {
+ reference2.before(newNode);
+ return newNode;
+ }
+ };
+ function getFirstNode(parent) {
+ return parent.firstChild;
}
- var patched = false;
+ function getNextSibling(parent, reference2) {
+ if (reference2._x_teleport) {
+ return reference2._x_teleport;
+ }
+ let next;
+ if (parent instanceof Block) {
+ next = parent.nextNode(reference2);
+ } else {
+ next = reference2.nextSibling;
+ }
+ return next;
+ }
function monkeyPatchDomSetAttributeToAllowAtSymbols() {
if (patched)
return;
patched = true;
let original = Element.prototype.setAttribute;
@@ -19040,11 +19189,11 @@
function src_default4(Alpine3) {
Alpine3.directive("intersect", (el, { value, expression, modifiers }, { evaluateLater: evaluateLater2, cleanup: cleanup2 }) => {
let evaluate2 = evaluateLater2(expression);
let options = {
rootMargin: getRootMargin(modifiers),
- threshold: getThreshhold(modifiers)
+ threshold: getThreshold(modifiers)
};
let observer2 = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting === (value === "leave"))
return;
@@ -19056,11 +19205,11 @@
cleanup2(() => {
observer2.disconnect();
});
});
}
- function getThreshhold(modifiers) {
+ function getThreshold(modifiers) {
if (modifiers.includes("full"))
return 0.99;
if (modifiers.includes("half"))
return 0.5;
if (!modifiers.includes("threshold"))
@@ -19218,11 +19367,13 @@
function formatMoney(input, delimiter = ".", thousands, precision = 2) {
if (input === "-")
return "-";
if (/^\D+$/.test(input))
return "9";
- thousands = thousands != null ? thousands : delimiter === "," ? "." : ",";
+ if (thousands === null || thousands === void 0) {
+ thousands = delimiter === "," ? "." : ",";
+ }
let addThousands = (input2, thousands2) => {
let output = "";
let counter = 0;
for (let i3 = input2.length - 1; i3 >= 0; i3--) {
if (input2[i3] === thousands2)
@@ -19252,11 +19403,11 @@
});
return template;
}
var module_default5 = src_default5;
- // ../../../node_modules/tabbable/dist/index.esm.js
+ // ../../../node_modules/@alpinejs/focus/dist/module.esm.js
var candidateSelectors = ["input", "select", "textarea", "a[href]", "button", "[tabindex]:not(slot)", "audio[controls]", "video[controls]", '[contenteditable]:not([contenteditable="false"])', "details>summary:first-of-type", "details"];
var candidateSelector = /* @__PURE__ */ candidateSelectors.join(",");
var NoElement = typeof Element === "undefined";
var matches = NoElement ? function() {
} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
@@ -19526,12 +19677,10 @@
if (matches.call(node, focusableCandidateSelector) === false) {
return false;
}
return isNodeMatchingSelectorFocusable(options, node);
};
-
- // ../../../node_modules/focus-trap/dist/focus-trap.esm.js
function ownKeys2(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function(sym) {
@@ -20049,12 +20198,10 @@
}
};
trap.updateContainerElements(elements);
return trap;
};
-
- // ../../../node_modules/@alpinejs/focus/dist/module.esm.js
function src_default6(Alpine3) {
let lastFocused;
let currentFocused;
window.addEventListener("focusin", () => {
lastFocused = currentFocused;
@@ -22686,21 +22833,21 @@
}
updateTransitionEndListener(box, "remove", currentTransitionEndListener);
updateTransitionEndListener(box, "add", listener);
currentTransitionEndListener = listener;
}
- function on2(eventType, handler3, options) {
+ function on2(eventType, handler4, options) {
if (options === void 0) {
options = false;
}
var nodes = normalizeToArray(instance.props.triggerTarget || reference2);
nodes.forEach(function(node) {
- node.addEventListener(eventType, handler3, options);
+ node.addEventListener(eventType, handler4, options);
listeners.push({
node,
eventType,
- handler: handler3,
+ handler: handler4,
options
});
});
}
function addListeners() {
@@ -22730,12 +22877,12 @@
}
});
}
function removeListeners() {
listeners.forEach(function(_ref) {
- var node = _ref.node, eventType = _ref.eventType, handler3 = _ref.handler, options = _ref.options;
- node.removeEventListener(eventType, handler3, options);
+ var node = _ref.node, eventType = _ref.eventType, handler4 = _ref.handler, options = _ref.options;
+ node.removeEventListener(eventType, handler4, options);
});
listeners = [];
}
function onTrigger2(event) {
var _lastTriggerEvent;
@@ -24329,12 +24476,76 @@
":class": "{loaded}"
}
};
});
+ // ../../components/coco/base/poll_controller/poll_controller.js
+ var poll_controller_exports = {};
+ __export(poll_controller_exports, {
+ default: () => poll_controller_default
+ });
+ var poll_controller_default = CocoComponent("pollController", () => {
+ return {
+ polling: false,
+ frame: null,
+ pollTimer: null,
+ get interval() {
+ return parseInt(this.$root.dataset.interval || 0, 10);
+ },
+ init() {
+ this.frame = document.getElementById("polling-controller-frame");
+ this.observer = new MutationObserver(() => this.onUpdate());
+ this.observer.observe(this.$el, { attributes: true });
+ },
+ startPolling() {
+ if (this.interval > 0 && !this.polling) {
+ this.polling = true;
+ this.queuePollRequest(500);
+ }
+ },
+ onUpdate() {
+ this.$nextTick(() => {
+ this.$dispatch("dom-updates:complete", { html: document });
+ });
+ this.queuePollRequest();
+ },
+ queuePollRequest(wait) {
+ if (this.pollTimer)
+ clearTimeout(this.pollTimer);
+ if (this.interval > 0 && this.polling) {
+ this.pollTimer = setTimeout(
+ () => this.reloadFrame(),
+ wait || this.interval
+ );
+ }
+ },
+ reloadFrame() {
+ this.frame.addEventListener(
+ "turbo:before-fetch-request",
+ addStreamHeaders,
+ { once: true }
+ );
+ window.Turbo.visit(location.href, {
+ frame: this.frame.id,
+ action: "replace"
+ });
+ },
+ destroy() {
+ this.observer.disconnect();
+ this.polling = false;
+ }
+ };
+ });
+ function addStreamHeaders(event) {
+ const { headers } = event.detail.fetchOptions || {};
+ if (headers) {
+ headers.Accept = ["text/vnd.turbo-stream.html", headers.Accept].join(", ");
+ }
+ }
+
// import-glob:/Users/mark/Code/coveragebook/coco/app/assets/js/base|@baseComponents/**/*.js
- var modules = [button_exports, dropdown_exports, icon_exports, image_uploader_exports, modal_exports, modal_dialog_exports, modal_lightbox_exports];
+ var modules = [button_exports, dropdown_exports, icon_exports, image_uploader_exports, modal_exports, modal_dialog_exports, modal_lightbox_exports, poll_controller_exports];
var __default = modules;
// base/components.js
var components_default = registerComponents(__default);
@@ -26824,16 +27035,20 @@
this.readFile(event.dataTransfer.files[0]);
},
readFile(file) {
const reader = new FileReader();
reader.addEventListener("load", () => {
- this.selectedImage = {
+ const selectedImage = {
name: file.name,
file,
data: reader.result
};
- this.dropdown.hide();
+ this.$dispatch("image-picker:change", { image: selectedImage });
+ this.selectedImage = selectedImage;
+ if (this.dropdown) {
+ this.dropdown.hide();
+ }
});
reader.readAsDataURL(file);
},
clearSelectedImage() {
this.dropdown.hide();
@@ -27173,12 +27388,21 @@
this.$el.remove();
}
};
});
+ // ../../components/coco/app/layouts/page/page.js
+ var page_exports = {};
+ __export(page_exports, {
+ default: () => page_default
+ });
+ var page_default = CocoComponent("pageLayout", () => {
+ return {};
+ });
+
// import-glob:/Users/mark/Code/coveragebook/coco/app/assets/js/app|@appComponents/**/*.js
- var modules3 = [header_exports, nav_drawer_exports, item_exports, menu_exports, navbar_exports, slide_editor_exports, alert_exports, button_group_exports, color_picker_exports, color_picker_button_exports, confirm_panel_exports, image_picker_exports, image_picker_button_exports, layout_picker_button_exports, menu_button_exports, notice_exports, seamless_textarea_exports, snackbar_exports, system_banner_exports, toast_exports, toolbar_exports, application_exports];
+ var modules3 = [header_exports, nav_drawer_exports, item_exports, menu_exports, navbar_exports, slide_editor_exports, alert_exports, button_group_exports, color_picker_exports, color_picker_button_exports, confirm_panel_exports, image_picker_exports, image_picker_button_exports, layout_picker_button_exports, menu_button_exports, notice_exports, seamless_textarea_exports, snackbar_exports, system_banner_exports, toast_exports, toolbar_exports, application_exports, page_exports];
var __default3 = modules3;
// app/components.js
var components_default3 = registerComponents(__default3);
@@ -27217,19 +27441,23 @@
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** *)
-tabbable/dist/index.esm.js:
- (*!
- * tabbable 5.3.3
- * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
- *)
-
-focus-trap/dist/focus-trap.esm.js:
- (*!
- * focus-trap 6.9.4
- * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
+@alpinejs/focus/dist/module.esm.js:
+ (*! Bundled license information:
+
+ tabbable/dist/index.esm.js:
+ (*!
+ * tabbable 5.3.3
+ * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
+ *)
+
+ focus-trap/dist/focus-trap.esm.js:
+ (*!
+ * focus-trap 6.9.4
+ * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
+ *)
*)
@jaames/iro/dist/iro.es.js:
(*!
* iro.js v5.5.2