Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); //#region src/jsx/utils.ts const normalizeElementKeyMap = /* @__PURE__ */ new Map([ ["className", "class"], ["htmlFor", "for"], ["crossOrigin", "crossorigin"], ["httpEquiv", "http-equiv"], ["itemProp", "itemprop"], ["fetchPriority", "fetchpriority"], ["noModule", "nomodule"], ["formAction", "formaction"] ]); const normalizeIntrinsicElementKey = (key) => normalizeElementKeyMap.get(key) || key; const invalidAttributeNameCharRe = /[\s"'<>/=`\\\x00-\x1f\x7f-\x9f]/; const validAttributeNameCache = /* @__PURE__ */ new Set(); const validAttributeNameCacheMax = 1024; const invalidTagNameCharRe = /^[!?]|[\s"'<>/=`\\\x00-\x1f\x7f-\x9f]/; const validTagNameCache = /* @__PURE__ */ new Set(); const validTagNameCacheMax = 256; const cacheValidName = (cache, max, name) => { if (cache.size >= max) cache.clear(); cache.add(name); }; const isValidTagName = (name) => { if (validTagNameCache.has(name)) return true; if (typeof name !== "string") return false; if (name.length === 0) return true; if (invalidTagNameCharRe.test(name)) return false; cacheValidName(validTagNameCache, validTagNameCacheMax, name); return true; }; const isValidAttributeName = (name) => { if (validAttributeNameCache.has(name)) return true; const len = name.length; if (len === 0) return false; for (let i = 0; i < len; i++) { const c = name.charCodeAt(i); if (!(c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c === 45 || c === 95 || c === 46 || c === 58)) { if (!invalidAttributeNameCharRe.test(name)) { cacheValidName(validAttributeNameCache, validAttributeNameCacheMax, name); return true; } else return false; } } cacheValidName(validAttributeNameCache, validAttributeNameCacheMax, name); return true; }; const invalidStylePropertyNameCharRe = /[\s"'():;\\/\[\]{}\x00-\x1f\x7f-\x9f]/; const validStylePropertyNameCache = /* @__PURE__ */ new Set(); const validStylePropertyNameCacheMax = 1024; const isValidStylePropertyName = (name) => { if (validStylePropertyNameCache.has(name)) return true; const len = name.length; if (len === 0) return false; for (let i = 0; i < len; i++) { const c = name.charCodeAt(i); if (!(c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c === 45 || c === 95)) { if (!invalidStylePropertyNameCharRe.test(name)) { cacheValidName(validStylePropertyNameCache, validStylePropertyNameCacheMax, name); return true; } else return false; } } cacheValidName(validStylePropertyNameCache, validStylePropertyNameCacheMax, name); return true; }; const unsafeStyleValueCharRe = /[;"'\\/\[\](){}]/; const hasUnsafeStyleValue = (value) => { if (!unsafeStyleValueCharRe.test(value)) return false; let quote = 0; const blockStack = []; for (let i = 0, len = value.length; i < len; i++) { const c = value.charCodeAt(i); if (c === 92) { if (i === len - 1) return true; i++; } else if (quote !== 0) { if (c === 10 || c === 12 || c === 13) return true; if (c === quote) quote = 0; } else if (c === 47 && value.charCodeAt(i + 1) === 42) { const end = value.indexOf("*/", i + 2); if (end === -1) return true; i = end + 1; } else if (c === 34 || c === 39) quote = c; else if (c === 40) blockStack.push(41); else if (c === 91) blockStack.push(93); else if (c === 123 || c === 125) return true; else if (c === 41 || c === 93) { if (blockStack[blockStack.length - 1] !== c) return true; blockStack.pop(); } else if (c === 59 && blockStack.length === 0) return true; } return quote !== 0 || blockStack.length !== 0; }; const styleObjectForEach = (style, fn) => { for (const [k, v] of Object.entries(style)) { const key = k[0] === "-" || !/[A-Z]/.test(k) ? k : k.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`); if (!isValidStylePropertyName(key)) continue; if (v == null) { fn(key, null); continue; } let value; if (typeof v === "number") value = !key.match(/^(?:a|border-im|column(?:-c|s)|flex(?:$|-[^b])|grid-(?!.*gap)(?:ar|[^a])|font-w|li|or|sca|st|ta|wido|z)|ty$/) ? `${v}px` : `${v}`; else if (typeof v === "string") { if (hasUnsafeStyleValue(v)) continue; value = v; } else continue; fn(key, value); } }; //#endregion exports.isValidAttributeName = isValidAttributeName; exports.isValidTagName = isValidTagName; exports.normalizeIntrinsicElementKey = normalizeIntrinsicElementKey; exports.styleObjectForEach = styleObjectForEach;