Files
headroom/frontend/node_modules/.vite/deps/chunk-FU3N6MP5.js
Santhosh Janardhanan de2d83092e feat: Reinitialize frontend with SvelteKit and TypeScript
- Delete old Vite+Svelte frontend
- Initialize new SvelteKit project with TypeScript
- Configure Tailwind CSS v4 + DaisyUI
- Implement JWT authentication with auto-refresh
- Create login page with form validation (Zod)
- Add protected route guards
- Update Docker configuration for single-stage build
- Add E2E tests with Playwright (6/11 passing)
- Fix Svelte 5 reactivity with $state() runes

Known issues:
- 5 E2E tests failing (timing/async issues)
- Token refresh implementation needs debugging
- Validation error display timing
2026-02-17 16:19:59 -05:00

1016 lines
25 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import {
COMMENT_NODE,
DIRTY,
DOCUMENT_FRAGMENT_NODE,
FILENAME,
HYDRATION_END,
HYDRATION_ERROR,
HYDRATION_START,
IS_XHTML,
LEGACY_PROPS,
MAYBE_DIRTY,
NAMESPACE_MATHML,
NAMESPACE_SVG,
REACTION_RAN,
STATE_SYMBOL,
TEMPLATE_FRAGMENT,
TEMPLATE_USE_IMPORT_NODE,
TEMPLATE_USE_MATHML,
TEMPLATE_USE_SVG,
TEXT_NODE,
active_effect,
all_registered_events,
array_from,
boundary,
clear_text_content,
component_context,
component_root,
create_comment,
create_element,
create_fragment,
create_text,
define_property,
dev_current_component_function,
flushSync,
get,
get_first_child,
get_next_sibling,
handle_event_propagation,
hydrate_next,
hydrate_node,
hydrating,
hydration_failed,
init_operations,
is_array,
is_firefox,
lifecycle_outside_component,
merge_text_nodes,
mutable_source,
noop,
on,
pop,
push,
root_event_handles,
set,
set_attribute,
set_hydrate_node,
set_hydrating,
set_signal_status,
user_pre_effect
} from "./chunk-TSNSHTNV.js";
import {
hydration_mismatch,
legacy_recursive_reactive_block,
lifecycle_double_unmount,
state_proxy_unmount,
true_default
} from "./chunk-VZQZA5WB.js";
import {
async_mode_flag
} from "./chunk-OHYQYV5R.js";
import {
__privateAdd,
__privateGet,
__privateSet
} from "./chunk-UGBVNEQM.js";
// node_modules/svelte/src/internal/client/dom/reconciler.js
var _a;
var policy = (
// We gotta write it like this because after downleveling the pure comment may end up in the wrong location
((_a = globalThis == null ? void 0 : globalThis.window) == null ? void 0 : _a.trustedTypes) && globalThis.window.trustedTypes.createPolicy("svelte-trusted-html", {
/** @param {string} html */
createHTML: (html) => {
return html;
}
})
);
function create_trusted_html(html) {
return (
/** @type {string} */
(policy == null ? void 0 : policy.createHTML(html)) ?? html
);
}
function create_fragment_from_html(html, trusted2 = false) {
var elem = create_element("template");
html = html.replaceAll("<!>", "<!---->");
elem.innerHTML = trusted2 ? create_trusted_html(html) : html;
return elem.content;
}
// node_modules/svelte/src/internal/client/dom/template.js
var TEMPLATE_TAG = IS_XHTML ? "template" : "TEMPLATE";
var SCRIPT_TAG = IS_XHTML ? "script" : "SCRIPT";
function assign_nodes(start, end) {
var effect = (
/** @type {Effect} */
active_effect
);
if (effect.nodes === null) {
effect.nodes = { start, end, a: null, t: null };
}
}
function from_html(content, flags) {
var is_fragment = (flags & TEMPLATE_FRAGMENT) !== 0;
var use_import_node = (flags & TEMPLATE_USE_IMPORT_NODE) !== 0;
var node;
var has_start = !content.startsWith("<!>");
return () => {
if (hydrating) {
assign_nodes(hydrate_node, null);
return hydrate_node;
}
if (node === void 0) {
node = create_fragment_from_html(has_start ? content : "<!>" + content, true);
if (!is_fragment) node = /** @type {TemplateNode} */
get_first_child(node);
}
var clone = (
/** @type {TemplateNode} */
use_import_node || is_firefox ? document.importNode(node, true) : node.cloneNode(true)
);
if (is_fragment) {
var start = (
/** @type {TemplateNode} */
get_first_child(clone)
);
var end = (
/** @type {TemplateNode} */
clone.lastChild
);
assign_nodes(start, end);
} else {
assign_nodes(clone, clone);
}
return clone;
};
}
function from_namespace(content, flags, ns = "svg") {
var has_start = !content.startsWith("<!>");
var is_fragment = (flags & TEMPLATE_FRAGMENT) !== 0;
var wrapped = `<${ns}>${has_start ? content : "<!>" + content}</${ns}>`;
var node;
return () => {
if (hydrating) {
assign_nodes(hydrate_node, null);
return hydrate_node;
}
if (!node) {
var fragment = (
/** @type {DocumentFragment} */
create_fragment_from_html(wrapped, true)
);
var root = (
/** @type {Element} */
get_first_child(fragment)
);
if (is_fragment) {
node = document.createDocumentFragment();
while (get_first_child(root)) {
node.appendChild(
/** @type {TemplateNode} */
get_first_child(root)
);
}
} else {
node = /** @type {Element} */
get_first_child(root);
}
}
var clone = (
/** @type {TemplateNode} */
node.cloneNode(true)
);
if (is_fragment) {
var start = (
/** @type {TemplateNode} */
get_first_child(clone)
);
var end = (
/** @type {TemplateNode} */
clone.lastChild
);
assign_nodes(start, end);
} else {
assign_nodes(clone, clone);
}
return clone;
};
}
function from_svg(content, flags) {
return from_namespace(content, flags, "svg");
}
function from_mathml(content, flags) {
return from_namespace(content, flags, "math");
}
function fragment_from_tree(structure, ns) {
var fragment = create_fragment();
for (var item of structure) {
if (typeof item === "string") {
fragment.append(create_text(item));
continue;
}
if (item === void 0 || item[0][0] === "/") {
fragment.append(create_comment(item ? item[0].slice(3) : ""));
continue;
}
const [name, attributes, ...children] = item;
const namespace = name === "svg" ? NAMESPACE_SVG : name === "math" ? NAMESPACE_MATHML : ns;
var element = create_element(name, namespace, attributes == null ? void 0 : attributes.is);
for (var key in attributes) {
set_attribute(element, key, attributes[key]);
}
if (children.length > 0) {
var target = element.nodeName === TEMPLATE_TAG ? (
/** @type {HTMLTemplateElement} */
element.content
) : element;
target.append(
fragment_from_tree(children, element.nodeName === "foreignObject" ? void 0 : namespace)
);
}
fragment.append(element);
}
return fragment;
}
function from_tree(structure, flags) {
var is_fragment = (flags & TEMPLATE_FRAGMENT) !== 0;
var use_import_node = (flags & TEMPLATE_USE_IMPORT_NODE) !== 0;
var node;
return () => {
if (hydrating) {
assign_nodes(hydrate_node, null);
return hydrate_node;
}
if (node === void 0) {
const ns = (flags & TEMPLATE_USE_SVG) !== 0 ? NAMESPACE_SVG : (flags & TEMPLATE_USE_MATHML) !== 0 ? NAMESPACE_MATHML : void 0;
node = fragment_from_tree(structure, ns);
if (!is_fragment) node = /** @type {TemplateNode} */
get_first_child(node);
}
var clone = (
/** @type {TemplateNode} */
use_import_node || is_firefox ? document.importNode(node, true) : node.cloneNode(true)
);
if (is_fragment) {
var start = (
/** @type {TemplateNode} */
get_first_child(clone)
);
var end = (
/** @type {TemplateNode} */
clone.lastChild
);
assign_nodes(start, end);
} else {
assign_nodes(clone, clone);
}
return clone;
};
}
function with_script(fn) {
return () => run_scripts(fn());
}
function run_scripts(node) {
if (hydrating) return node;
const is_fragment = node.nodeType === DOCUMENT_FRAGMENT_NODE;
const scripts = (
/** @type {HTMLElement} */
node.nodeName === SCRIPT_TAG ? [
/** @type {HTMLScriptElement} */
node
] : node.querySelectorAll("script")
);
const effect = (
/** @type {Effect & { nodes: EffectNodes }} */
active_effect
);
for (const script of scripts) {
const clone = create_element("script");
for (var attribute of script.attributes) {
clone.setAttribute(attribute.name, attribute.value);
}
clone.textContent = script.textContent;
if (is_fragment ? node.firstChild === script : node === script) {
effect.nodes.start = clone;
}
if (is_fragment ? node.lastChild === script : node === script) {
effect.nodes.end = clone;
}
script.replaceWith(clone);
}
return node;
}
function text(value = "") {
if (!hydrating) {
var t = create_text(value + "");
assign_nodes(t, t);
return t;
}
var node = hydrate_node;
if (node.nodeType !== TEXT_NODE) {
node.before(node = create_text());
set_hydrate_node(node);
} else {
merge_text_nodes(
/** @type {Text} */
node
);
}
assign_nodes(node, node);
return node;
}
function comment() {
if (hydrating) {
assign_nodes(hydrate_node, null);
return hydrate_node;
}
var frag = document.createDocumentFragment();
var start = document.createComment("");
var anchor = create_text();
frag.append(start, anchor);
assign_nodes(start, anchor);
return frag;
}
function append(anchor, dom) {
if (hydrating) {
var effect = (
/** @type {Effect & { nodes: EffectNodes }} */
active_effect
);
if ((effect.f & REACTION_RAN) === 0 || effect.nodes.end === null) {
effect.nodes.end = hydrate_node;
}
hydrate_next();
return;
}
if (anchor === null) {
return;
}
anchor.before(
/** @type {Node} */
dom
);
}
function props_id() {
var _a2, _b;
if (hydrating && hydrate_node && hydrate_node.nodeType === COMMENT_NODE && ((_a2 = hydrate_node.textContent) == null ? void 0 : _a2.startsWith(`$`))) {
const id = hydrate_node.textContent.substring(1);
hydrate_next();
return id;
}
(_b = window.__svelte ?? (window.__svelte = {})).uid ?? (_b.uid = 1);
return `c${window.__svelte.uid++}`;
}
// node_modules/svelte/src/utils.js
var regex_return_characters = /\r/g;
function hash(str) {
str = str.replace(regex_return_characters, "");
let hash2 = 5381;
let i = str.length;
while (i--) hash2 = (hash2 << 5) - hash2 ^ str.charCodeAt(i);
return (hash2 >>> 0).toString(36);
}
var 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.includes(name) || name.toLowerCase() === "!doctype";
}
function is_capture_event(name) {
return name.endsWith("capture") && name !== "gotpointercapture" && name !== "lostpointercapture";
}
var DELEGATED_EVENTS = [
"beforeinput",
"click",
"change",
"dblclick",
"contextmenu",
"focusin",
"focusout",
"input",
"keydown",
"keyup",
"mousedown",
"mousemove",
"mouseout",
"mouseover",
"mouseup",
"pointerdown",
"pointermove",
"pointerout",
"pointerover",
"pointerup",
"touchend",
"touchmove",
"touchstart"
];
function can_delegate_event(event_name) {
return DELEGATED_EVENTS.includes(event_name);
}
var DOM_BOOLEAN_ATTRIBUTES = [
"allowfullscreen",
"async",
"autofocus",
"autoplay",
"checked",
"controls",
"default",
"disabled",
"formnovalidate",
"indeterminate",
"inert",
"ismap",
"loop",
"multiple",
"muted",
"nomodule",
"novalidate",
"open",
"playsinline",
"readonly",
"required",
"reversed",
"seamless",
"selected",
"webkitdirectory",
"defer",
"disablepictureinpicture",
"disableremoteplayback"
];
var ATTRIBUTE_ALIASES = {
// no `class: 'className'` because we handle that separately
formnovalidate: "formNoValidate",
ismap: "isMap",
nomodule: "noModule",
playsinline: "playsInline",
readonly: "readOnly",
defaultvalue: "defaultValue",
defaultchecked: "defaultChecked",
srcobject: "srcObject",
novalidate: "noValidate",
allowfullscreen: "allowFullscreen",
disablepictureinpicture: "disablePictureInPicture",
disableremoteplayback: "disableRemotePlayback"
};
function normalize_attribute(name) {
name = name.toLowerCase();
return ATTRIBUTE_ALIASES[name] ?? name;
}
var DOM_PROPERTIES = [
...DOM_BOOLEAN_ATTRIBUTES,
"formNoValidate",
"isMap",
"noModule",
"playsInline",
"readOnly",
"value",
"volume",
"defaultValue",
"defaultChecked",
"srcObject",
"noValidate",
"allowFullscreen",
"disablePictureInPicture",
"disableRemotePlayback"
];
var PASSIVE_EVENTS = ["touchstart", "touchmove"];
function is_passive_event(name) {
return PASSIVE_EVENTS.includes(name);
}
var STATE_CREATION_RUNES = (
/** @type {const} */
[
"$state",
"$state.raw",
"$derived",
"$derived.by"
]
);
var RUNES = (
/** @type {const} */
[
...STATE_CREATION_RUNES,
"$state.eager",
"$state.snapshot",
"$props",
"$props.id",
"$bindable",
"$effect",
"$effect.pre",
"$effect.tracking",
"$effect.root",
"$effect.pending",
"$inspect",
"$inspect().with",
"$inspect.trace",
"$host"
]
);
var RAW_TEXT_ELEMENTS = (
/** @type {const} */
["textarea", "script", "style", "title"]
);
function is_raw_text_element(name) {
return RAW_TEXT_ELEMENTS.includes(
/** @type {typeof RAW_TEXT_ELEMENTS[number]} */
name
);
}
function sanitize_location(location) {
return (
/** @type {T} */
location == null ? void 0 : location.replace(/\//g, "/")
);
}
// node_modules/svelte/src/internal/client/render.js
var should_intro = true;
function set_should_intro(value) {
should_intro = value;
}
function set_text(text2, value) {
var str = value == null ? "" : typeof value === "object" ? value + "" : value;
if (str !== (text2.__t ?? (text2.__t = text2.nodeValue))) {
text2.__t = str;
text2.nodeValue = str + "";
}
}
function mount(component, options) {
return _mount(component, options);
}
function hydrate(component, options) {
init_operations();
options.intro = options.intro ?? false;
const target = options.target;
const was_hydrating = hydrating;
const previous_hydrate_node = hydrate_node;
try {
var anchor = get_first_child(target);
while (anchor && (anchor.nodeType !== COMMENT_NODE || /** @type {Comment} */
anchor.data !== HYDRATION_START)) {
anchor = get_next_sibling(anchor);
}
if (!anchor) {
throw HYDRATION_ERROR;
}
set_hydrating(true);
set_hydrate_node(
/** @type {Comment} */
anchor
);
const instance = _mount(component, { ...options, anchor });
set_hydrating(false);
return (
/** @type {Exports} */
instance
);
} catch (error) {
if (error instanceof Error && error.message.split("\n").some((line) => line.startsWith("https://svelte.dev/e/"))) {
throw error;
}
if (error !== HYDRATION_ERROR) {
console.warn("Failed to hydrate: ", error);
}
if (options.recover === false) {
hydration_failed();
}
init_operations();
clear_text_content(target);
set_hydrating(false);
return mount(component, options);
} finally {
set_hydrating(was_hydrating);
set_hydrate_node(previous_hydrate_node);
}
}
var listeners = /* @__PURE__ */ new Map();
function _mount(Component, { target, anchor, props = {}, events, context, intro = true }) {
init_operations();
var component = void 0;
var unmount2 = component_root(() => {
var anchor_node = anchor ?? target.appendChild(create_text());
boundary(
/** @type {TemplateNode} */
anchor_node,
{
pending: () => {
}
},
(anchor_node2) => {
push({});
var ctx = (
/** @type {ComponentContext} */
component_context
);
if (context) ctx.c = context;
if (events) {
props.$$events = events;
}
if (hydrating) {
assign_nodes(
/** @type {TemplateNode} */
anchor_node2,
null
);
}
should_intro = intro;
component = Component(anchor_node2, props) || {};
should_intro = true;
if (hydrating) {
active_effect.nodes.end = hydrate_node;
if (hydrate_node === null || hydrate_node.nodeType !== COMMENT_NODE || /** @type {Comment} */
hydrate_node.data !== HYDRATION_END) {
hydration_mismatch();
throw HYDRATION_ERROR;
}
}
pop();
}
);
var registered_events = /* @__PURE__ */ new Set();
var event_handle = (events2) => {
for (var i = 0; i < events2.length; i++) {
var event_name = events2[i];
if (registered_events.has(event_name)) continue;
registered_events.add(event_name);
var passive2 = is_passive_event(event_name);
for (const node of [target, document]) {
var counts = listeners.get(node);
if (counts === void 0) {
counts = /* @__PURE__ */ new Map();
listeners.set(node, counts);
}
var count = counts.get(event_name);
if (count === void 0) {
node.addEventListener(event_name, handle_event_propagation, { passive: passive2 });
counts.set(event_name, 1);
} else {
counts.set(event_name, count + 1);
}
}
}
};
event_handle(array_from(all_registered_events));
root_event_handles.add(event_handle);
return () => {
var _a2;
for (var event_name of registered_events) {
for (const node of [target, document]) {
var counts = (
/** @type {Map<string, number>} */
listeners.get(node)
);
var count = (
/** @type {number} */
counts.get(event_name)
);
if (--count == 0) {
node.removeEventListener(event_name, handle_event_propagation);
counts.delete(event_name);
if (counts.size === 0) {
listeners.delete(node);
}
} else {
counts.set(event_name, count);
}
}
}
root_event_handles.delete(event_handle);
if (anchor_node !== anchor) {
(_a2 = anchor_node.parentNode) == null ? void 0 : _a2.removeChild(anchor_node);
}
};
});
mounted_components.set(component, unmount2);
return component;
}
var mounted_components = /* @__PURE__ */ new WeakMap();
function unmount(component, options) {
const fn = mounted_components.get(component);
if (fn) {
mounted_components.delete(component);
return fn(options);
}
if (true_default) {
if (STATE_SYMBOL in component) {
state_proxy_unmount();
} else {
lifecycle_double_unmount();
}
}
return Promise.resolve();
}
// node_modules/svelte/src/internal/client/dom/legacy/event-modifiers.js
function trusted(fn) {
return function(...args) {
var event = (
/** @type {Event} */
args[0]
);
if (event.isTrusted) {
fn == null ? void 0 : fn.apply(this, args);
}
};
}
function self(fn) {
return function(...args) {
var event = (
/** @type {Event} */
args[0]
);
if (event.target === this) {
fn == null ? void 0 : fn.apply(this, args);
}
};
}
function stopPropagation(fn) {
return function(...args) {
var event = (
/** @type {Event} */
args[0]
);
event.stopPropagation();
return fn == null ? void 0 : fn.apply(this, args);
};
}
function once(fn) {
var ran = false;
return function(...args) {
if (ran) return;
ran = true;
return fn == null ? void 0 : fn.apply(this, args);
};
}
function stopImmediatePropagation(fn) {
return function(...args) {
var event = (
/** @type {Event} */
args[0]
);
event.stopImmediatePropagation();
return fn == null ? void 0 : fn.apply(this, args);
};
}
function preventDefault(fn) {
return function(...args) {
var event = (
/** @type {Event} */
args[0]
);
event.preventDefault();
return fn == null ? void 0 : fn.apply(this, args);
};
}
function passive(node, [event, handler]) {
user_pre_effect(() => {
return on(node, event, handler() ?? noop, {
passive: true
});
});
}
function nonpassive(node, [event, handler]) {
user_pre_effect(() => {
return on(node, event, handler() ?? noop, {
passive: false
});
});
}
// node_modules/svelte/src/legacy/legacy-client.js
function createClassComponent(options) {
return new Svelte4Component(options);
}
function asClassComponent(component) {
return class extends Svelte4Component {
/** @param {any} options */
constructor(options) {
super({
component,
...options
});
}
};
}
var _events, _instance;
var Svelte4Component = class {
/**
* @param {ComponentConstructorOptions & {
* component: any;
* }} options
*/
constructor(options) {
/** @type {any} */
__privateAdd(this, _events);
/** @type {Record<string, any>} */
__privateAdd(this, _instance);
var _a2;
var sources = /* @__PURE__ */ new Map();
var add_source = (key, value) => {
var s = mutable_source(value, false, false);
sources.set(key, s);
return s;
};
const props = new Proxy(
{ ...options.props || {}, $$events: {} },
{
get(target, prop) {
return get(sources.get(prop) ?? add_source(prop, Reflect.get(target, prop)));
},
has(target, prop) {
if (prop === LEGACY_PROPS) return true;
get(sources.get(prop) ?? add_source(prop, Reflect.get(target, prop)));
return Reflect.has(target, prop);
},
set(target, prop, value) {
set(sources.get(prop) ?? add_source(prop, value), value);
return Reflect.set(target, prop, value);
}
}
);
__privateSet(this, _instance, (options.hydrate ? hydrate : mount)(options.component, {
target: options.target,
anchor: options.anchor,
props,
context: options.context,
intro: options.intro ?? false,
recover: options.recover
}));
if (!async_mode_flag && (!((_a2 = options == null ? void 0 : options.props) == null ? void 0 : _a2.$$host) || options.sync === false)) {
flushSync();
}
__privateSet(this, _events, props.$$events);
for (const key of Object.keys(__privateGet(this, _instance))) {
if (key === "$set" || key === "$destroy" || key === "$on") continue;
define_property(this, key, {
get() {
return __privateGet(this, _instance)[key];
},
/** @param {any} value */
set(value) {
__privateGet(this, _instance)[key] = value;
},
enumerable: true
});
}
__privateGet(this, _instance).$set = /** @param {Record<string, any>} next */
(next) => {
Object.assign(props, next);
};
__privateGet(this, _instance).$destroy = () => {
unmount(__privateGet(this, _instance));
};
}
/** @param {Record<string, any>} props */
$set(props) {
__privateGet(this, _instance).$set(props);
}
/**
* @param {string} event
* @param {(...args: any[]) => any} callback
* @returns {any}
*/
$on(event, callback) {
__privateGet(this, _events)[event] = __privateGet(this, _events)[event] || [];
const cb = (...args) => callback.call(this, ...args);
__privateGet(this, _events)[event].push(cb);
return () => {
__privateGet(this, _events)[event] = __privateGet(this, _events)[event].filter(
/** @param {any} fn */
(fn) => fn !== cb
);
};
}
$destroy() {
__privateGet(this, _instance).$destroy();
}
};
_events = new WeakMap();
_instance = new WeakMap();
function run(fn) {
user_pre_effect(() => {
var _a2;
fn();
var effect = (
/** @type {import('#client').Effect} */
active_effect
);
if ((effect.f & DIRTY) !== 0) {
let filename = "a file (we can't know which one)";
if (true_default) {
filename = ((_a2 = dev_current_component_function) == null ? void 0 : _a2[FILENAME]) ?? filename;
}
legacy_recursive_reactive_block(filename);
set_signal_status(effect, MAYBE_DIRTY);
}
});
}
function handlers(...handlers2) {
return function(event) {
const { stopImmediatePropagation: stopImmediatePropagation2 } = event;
let stopped = false;
event.stopImmediatePropagation = () => {
stopped = true;
stopImmediatePropagation2.call(event);
};
const errors = [];
for (const handler of handlers2) {
try {
handler == null ? void 0 : handler.call(this, event);
} catch (e) {
errors.push(e);
}
if (stopped) {
break;
}
}
for (let error of errors) {
queueMicrotask(() => {
throw error;
});
}
};
}
function createBubbler() {
const active_component_context = component_context;
if (active_component_context === null) {
lifecycle_outside_component("createBubbler");
}
return (type) => (event) => {
var _a2;
const events = (
/** @type {Record<string, Function | Function[]>} */
(_a2 = active_component_context.s.$$events) == null ? void 0 : _a2[
/** @type {any} */
type
]
);
if (events) {
const callbacks = is_array(events) ? events.slice() : [events];
for (const fn of callbacks) {
fn.call(active_component_context.x, event);
}
return !event.defaultPrevented;
}
return true;
};
}
export {
hash,
is_void,
is_capture_event,
can_delegate_event,
normalize_attribute,
is_raw_text_element,
sanitize_location,
create_fragment_from_html,
assign_nodes,
from_html,
from_svg,
from_mathml,
from_tree,
with_script,
text,
comment,
append,
props_id,
should_intro,
set_should_intro,
set_text,
mount,
hydrate,
unmount,
trusted,
self,
stopPropagation,
once,
stopImmediatePropagation,
preventDefault,
passive,
nonpassive,
createClassComponent,
asClassComponent,
run,
handlers,
createBubbler
};
//# sourceMappingURL=chunk-FU3N6MP5.js.map