youtuber-blog-frontend/build/server/chunks/index3-4H3SMWet.js

641 lines
17 KiB
JavaScript
Raw Normal View History

2024-05-29 18:43:41 +00:00
import { tv } from 'tailwind-variants';
2024-06-23 09:25:48 +00:00
import { d as derived, r as readable, w as writable } from './index2-D4yenS_5.js';
import { g as get_store_value, o as onDestroy } from './lifecycle-px-3doLe.js';
2024-05-29 18:43:41 +00:00
import { o as onMount } from './ssr2-BVSPLo1E.js';
import 'clsx';
var has = Object.prototype.hasOwnProperty;
function find(iter, tar, key) {
for (key of iter.keys()) {
if (dequal(key, tar)) return key;
}
}
function dequal(foo, bar) {
var ctor, len, tmp;
if (foo === bar) return true;
if (foo && bar && (ctor=foo.constructor) === bar.constructor) {
if (ctor === Date) return foo.getTime() === bar.getTime();
if (ctor === RegExp) return foo.toString() === bar.toString();
if (ctor === Array) {
if ((len=foo.length) === bar.length) {
while (len-- && dequal(foo[len], bar[len]));
}
return len === -1;
}
if (ctor === Set) {
if (foo.size !== bar.size) {
return false;
}
for (len of foo) {
tmp = len;
if (tmp && typeof tmp === 'object') {
tmp = find(bar, tmp);
if (!tmp) return false;
}
if (!bar.has(tmp)) return false;
}
return true;
}
if (ctor === Map) {
if (foo.size !== bar.size) {
return false;
}
for (len of foo) {
tmp = len[0];
if (tmp && typeof tmp === 'object') {
tmp = find(bar, tmp);
if (!tmp) return false;
}
if (!dequal(len[1], bar.get(tmp))) {
return false;
}
}
return true;
}
if (ctor === ArrayBuffer) {
foo = new Uint8Array(foo);
bar = new Uint8Array(bar);
} else if (ctor === DataView) {
if ((len=foo.byteLength) === bar.byteLength) {
while (len-- && foo.getInt8(len) === bar.getInt8(len));
}
return len === -1;
}
if (ArrayBuffer.isView(foo)) {
if ((len=foo.byteLength) === bar.byteLength) {
while (len-- && foo[len] === bar[len]);
}
return len === -1;
}
if (!ctor || typeof foo === 'object') {
len = 0;
for (ctor in foo) {
if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;
}
return Object.keys(bar).length === len;
}
}
return foo !== foo && bar !== bar;
}
const void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;
function is_void(name) {
return void_element_names.test(name) || name.toLowerCase() === "!doctype";
}
function styleToString(style) {
return Object.keys(style).reduce((str, key) => {
if (style[key] === void 0)
return str;
return str + `${key}:${style[key]};`;
}, "");
}
function disabledAttr(disabled) {
return disabled ? true : void 0;
}
({
type: "hidden",
"aria-hidden": true,
hidden: true,
tabIndex: -1,
style: styleToString({
position: "absolute",
opacity: 0,
"pointer-events": "none",
margin: 0,
transform: "translateX(-100%)"
})
});
function portalAttr(portal) {
if (portal !== null) {
return "";
}
return void 0;
}
function lightable(value) {
function subscribe(run) {
run(value);
return () => {
};
}
return { subscribe };
}
function getElementByMeltId(id) {
if (!isBrowser)
return null;
const el = document.querySelector(`[data-melt-id="${id}"]`);
return isHTMLElement(el) ? el : null;
}
const hiddenAction = (obj) => {
return new Proxy(obj, {
get(target, prop, receiver) {
return Reflect.get(target, prop, receiver);
},
ownKeys(target) {
return Reflect.ownKeys(target).filter((key) => key !== "action");
}
});
};
const isFunctionWithParams = (fn) => {
return typeof fn === "function";
};
makeElement("empty");
function makeElement(name, args) {
const { stores, action, returned } = args ?? {};
const derivedStore = (() => {
if (stores && returned) {
return derived(stores, (values) => {
const result = returned(values);
if (isFunctionWithParams(result)) {
const fn = (...args2) => {
return hiddenAction({
...result(...args2),
[`data-melt-${name}`]: "",
action: action ?? noop
});
};
fn.action = action ?? noop;
return fn;
}
return hiddenAction({
...result,
[`data-melt-${name}`]: "",
action: action ?? noop
});
});
} else {
const returnedFn = returned;
const result = returnedFn?.();
if (isFunctionWithParams(result)) {
const resultFn = (...args2) => {
return hiddenAction({
...result(...args2),
[`data-melt-${name}`]: "",
action: action ?? noop
});
};
resultFn.action = action ?? noop;
return lightable(resultFn);
}
return lightable(hiddenAction({
...result,
[`data-melt-${name}`]: "",
action: action ?? noop
}));
}
})();
const actionFn = action ?? (() => {
});
actionFn.subscribe = derivedStore.subscribe;
return actionFn;
}
function createElHelpers(prefix) {
const name = (part) => part ? `${prefix}-${part}` : prefix;
const attribute = (part) => `data-melt-${prefix}${part ? `-${part}` : ""}`;
const selector = (part) => `[data-melt-${prefix}${part ? `-${part}` : ""}]`;
const getEl = (part) => document.querySelector(selector(part));
return {
name,
attribute,
selector,
getEl
};
}
const isBrowser = typeof document !== "undefined";
const isFunction = (v) => typeof v === "function";
function isDocument(element) {
return element instanceof Document;
}
function isElement(element) {
return element instanceof Element;
}
function isHTMLElement(element) {
return element instanceof HTMLElement;
}
function isHTMLInputElement(element) {
return element instanceof HTMLInputElement;
}
function isHTMLLabelElement(element) {
return element instanceof HTMLLabelElement;
}
function isHTMLButtonElement(element) {
return element instanceof HTMLButtonElement;
}
function isElementDisabled(element) {
const ariaDisabled = element.getAttribute("aria-disabled");
const disabled = element.getAttribute("disabled");
const dataDisabled = element.hasAttribute("data-disabled");
if (ariaDisabled === "true" || disabled !== null || dataDisabled) {
return true;
}
return false;
}
function isTouch(event) {
return event.pointerType === "touch";
}
function isObject(value) {
return value !== null && typeof value === "object";
}
function isReadable(value) {
return isObject(value) && "subscribe" in value;
}
function executeCallbacks(...callbacks) {
return (...args) => {
for (const callback of callbacks) {
if (typeof callback === "function") {
callback(...args);
}
}
};
}
function noop() {
}
function addEventListener(target, event, handler, options) {
const events = Array.isArray(event) ? event : [event];
events.forEach((_event) => target.addEventListener(_event, handler, options));
return () => {
events.forEach((_event) => target.removeEventListener(_event, handler, options));
};
}
function addMeltEventListener(target, event, handler, options) {
const events = Array.isArray(event) ? event : [event];
if (typeof handler === "function") {
const handlerWithMelt = withMelt((_event) => handler(_event));
events.forEach((_event) => target.addEventListener(_event, handlerWithMelt, options));
return () => {
events.forEach((_event) => target.removeEventListener(_event, handlerWithMelt, options));
};
}
return () => noop();
}
function dispatchMeltEvent(originalEvent) {
const node = originalEvent.currentTarget;
if (!isHTMLElement(node))
return null;
const customMeltEvent = new CustomEvent(`m-${originalEvent.type}`, {
detail: {
originalEvent
},
cancelable: true
});
node.dispatchEvent(customMeltEvent);
return customMeltEvent;
}
function withMelt(handler) {
return (event) => {
const customEvent = dispatchMeltEvent(event);
if (customEvent?.defaultPrevented)
return;
return handler(event);
};
}
const safeOnMount = (fn) => {
try {
onMount(fn);
} catch {
return fn;
}
};
const safeOnDestroy = (fn) => {
try {
onDestroy(fn);
} catch {
return fn;
}
};
function omit(obj, ...keys) {
const result = {};
for (const key of Object.keys(obj)) {
if (!keys.includes(key)) {
result[key] = obj[key];
}
}
return result;
}
function stripValues(inputObject, toStrip, recursive) {
return Object.fromEntries(Object.entries(inputObject).filter(([_, value]) => !dequal(value, toStrip)));
}
function removeUndefined(obj) {
const result = {};
for (const key in obj) {
const value = obj[key];
if (value !== void 0) {
result[key] = value;
}
}
return result;
}
function withGet(store) {
return {
...store,
get: () => get_store_value(store)
};
}
withGet.writable = function(initial) {
const internal = writable(initial);
let value = initial;
return {
subscribe: internal.subscribe,
set(newValue) {
internal.set(newValue);
value = newValue;
},
update(updater) {
const newValue = updater(value);
internal.set(newValue);
value = newValue;
},
get() {
return value;
}
};
};
withGet.derived = function(stores, fn) {
const subscribers = /* @__PURE__ */ new Map();
const get = () => {
const values = Array.isArray(stores) ? stores.map((store) => store.get()) : stores.get();
return fn(values);
};
const subscribe = (subscriber) => {
const unsubscribers = [];
const storesArr = Array.isArray(stores) ? stores : [stores];
storesArr.forEach((store) => {
unsubscribers.push(store.subscribe(() => {
subscriber(get());
}));
});
subscriber(get());
subscribers.set(subscriber, unsubscribers);
return () => {
const unsubscribers2 = subscribers.get(subscriber);
if (unsubscribers2) {
for (const unsubscribe of unsubscribers2) {
unsubscribe();
}
}
subscribers.delete(subscriber);
};
};
return {
get,
subscribe
};
};
const kbd = {
ALT: "Alt",
ARROW_DOWN: "ArrowDown",
ARROW_LEFT: "ArrowLeft",
ARROW_RIGHT: "ArrowRight",
ARROW_UP: "ArrowUp",
BACKSPACE: "Backspace",
CAPS_LOCK: "CapsLock",
CONTROL: "Control",
DELETE: "Delete",
END: "End",
ENTER: "Enter",
ESCAPE: "Escape",
F1: "F1",
F10: "F10",
F11: "F11",
F12: "F12",
F2: "F2",
F3: "F3",
F4: "F4",
F5: "F5",
F6: "F6",
F7: "F7",
F8: "F8",
F9: "F9",
HOME: "Home",
META: "Meta",
PAGE_DOWN: "PageDown",
PAGE_UP: "PageUp",
SHIFT: "Shift",
SPACE: " ",
TAB: "Tab",
CTRL: "Control",
ASTERISK: "*",
A: "a",
P: "p"
};
const FIRST_KEYS = [kbd.ARROW_DOWN, kbd.PAGE_UP, kbd.HOME];
const LAST_KEYS = [kbd.ARROW_UP, kbd.PAGE_DOWN, kbd.END];
const FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];
const SELECTION_KEYS = [kbd.ENTER, kbd.SPACE];
function effect(stores, fn) {
let cb = void 0;
const destroy = derived(stores, (stores2) => {
cb?.();
cb = fn(stores2);
}).subscribe(noop);
const unsub = () => {
destroy();
cb?.();
};
safeOnDestroy(unsub);
return unsub;
}
readable(void 0, (set) => {
function clicked(event) {
set(event);
set(void 0);
}
const unsubscribe = addEventListener(document, "pointerup", clicked, {
passive: false,
capture: true
});
return unsubscribe;
});
const documentEscapeKeyStore = readable(void 0, (set) => {
function keydown(event) {
if (event && event.key === kbd.ESCAPE) {
set(event);
}
set(void 0);
}
const unsubscribe = addEventListener(document, "keydown", keydown, {
passive: false
});
return unsubscribe;
});
const useEscapeKeydown = (node, config = {}) => {
let unsub = noop;
function update(config2 = {}) {
unsub();
const options = { enabled: true, ...config2 };
const enabled = isReadable(options.enabled) ? options.enabled : readable(options.enabled);
unsub = executeCallbacks(
// Handle escape keydowns
documentEscapeKeyStore.subscribe((e) => {
if (!e || !get_store_value(enabled))
return;
const target = e.target;
if (!isHTMLElement(target) || target.closest("[data-escapee]") !== node) {
return;
}
e.preventDefault();
if (options.ignore) {
if (isFunction(options.ignore)) {
if (options.ignore(e))
return;
} else if (Array.isArray(options.ignore)) {
if (options.ignore.length > 0 && options.ignore.some((ignoreEl) => {
return ignoreEl && target === ignoreEl;
}))
return;
}
}
options.handler?.(e);
}),
effect(enabled, ($enabled) => {
if ($enabled) {
node.dataset.escapee = "";
} else {
delete node.dataset.escapee;
}
})
);
}
update(config);
return {
update,
destroy() {
node.removeAttribute("data-escapee");
unsub();
}
};
};
function toReadableStores(properties) {
const result = {};
Object.keys(properties).forEach((key) => {
const propertyKey = key;
const value = properties[propertyKey];
if (isReadable(value)) {
result[propertyKey] = withGet(value);
} else {
result[propertyKey] = withGet(readable(value));
}
});
return result;
}
const defaults$1 = {
prefix: "",
disabled: readable(false),
required: readable(false),
name: readable(void 0)
};
function createHiddenInput(props) {
const withDefaults = {
...defaults$1,
...removeUndefined(props)
};
const { name: elName } = createElHelpers(withDefaults.prefix);
const { value, name, disabled, required } = toReadableStores(omit(withDefaults, "prefix"));
const nameStore = name;
const hiddenInput = makeElement(elName("hidden-input"), {
stores: [value, nameStore, disabled, required],
returned: ([$value, $name, $disabled, $required]) => {
return {
name: $name,
value: $value?.toString(),
"aria-hidden": "true",
hidden: true,
disabled: $disabled,
required: $required,
tabIndex: -1,
style: styleToString({
position: "absolute",
opacity: 0,
"pointer-events": "none",
margin: 0,
transform: "translateX(-100%)"
})
};
},
action: (node) => {
const unsub = value.subscribe((newValue) => {
node.value = newValue;
node.dispatchEvent(new Event("change", { bubbles: true }));
});
return {
destroy: unsub
};
}
});
return hiddenInput;
}
const defaults = {
isDateDisabled: void 0,
isDateUnavailable: void 0,
value: void 0,
preventDeselect: false,
numberOfMonths: 1,
pagedNavigation: false,
weekStartsOn: 0,
fixedWeeks: false,
calendarLabel: "Event Date",
locale: "en",
minValue: void 0,
maxValue: void 0,
disabled: false,
readonly: false,
weekdayFormat: "narrow"
};
({
isDateDisabled: void 0,
isDateUnavailable: void 0,
value: void 0,
positioning: {
placement: "bottom"
},
closeOnEscape: true,
closeOnOutsideClick: true,
onOutsideClick: void 0,
preventScroll: false,
forceVisible: false,
locale: "en",
granularity: void 0,
disabled: false,
readonly: false,
minValue: void 0,
maxValue: void 0,
weekdayFormat: "narrow",
...omit(defaults, "isDateDisabled", "isDateUnavailable", "value", "locale", "disabled", "readonly", "minValue", "maxValue", "weekdayFormat")
});
const buttonVariants = tv({
base: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
variants: {
variant: {
default: "bg-primary text-primary-foreground hover:bg-primary/90",
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
ghost: "hover:bg-accent hover:text-accent-foreground",
link: "text-primary underline-offset-4 hover:underline"
},
size: {
default: "h-10 px-4 py-2",
sm: "h-9 rounded-md px-3",
lg: "h-11 rounded-md px-8",
icon: "h-10 w-10"
}
},
defaultVariants: {
variant: "default",
size: "default"
}
});
2024-06-21 23:07:29 +00:00
export { isElement as A, createHiddenInput as B, isDocument as C, getElementByMeltId as D, isHTMLLabelElement as E, FIRST_LAST_KEYS as F, isHTMLInputElement as G, isFunction as H, SELECTION_KEYS as S, isHTMLElement as a, executeCallbacks as b, createElHelpers as c, addMeltEventListener as d, effect as e, isElementDisabled as f, safeOnMount as g, isBrowser as h, is_void as i, addEventListener as j, kbd as k, disabledAttr as l, makeElement as m, noop as n, omit as o, portalAttr as p, buttonVariants as q, isTouch as r, styleToString as s, removeUndefined as t, useEscapeKeydown as u, dequal as v, withGet as w, isObject as x, stripValues as y, isHTMLButtonElement as z };
2024-06-23 09:25:48 +00:00
//# sourceMappingURL=index3-4H3SMWet.js.map