essor 0.0.13-beta.6 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/essor.cjs.js +34 -34
- package/dist/essor.cjs.js.map +1 -1
- package/dist/essor.d.cts +1 -1
- package/dist/essor.d.ts +1 -1
- package/dist/essor.dev.cjs.js +1175 -665
- package/dist/essor.dev.esm.js +1159 -649
- package/dist/essor.esm.js +6 -6
- package/dist/essor.esm.js.map +1 -1
- package/package.json +4 -4
package/dist/essor.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/version.ts","../../shared/src/is.ts","../../shared/src/comm.ts","../../shared/src/name.ts","../../shared/src/console.ts","../../signal/src/signal.ts","../../signal/src/scheduler.ts","../../signal/src/watch.ts","../../signal/src/store.ts","../../template/dist/template.dev.esm.js","../src/index.ts"],"names":["essor_version","isObject","val","isArray","isString","isNull","isSymbol","isSet","_toString","isWeakMap","isWeakSet","isMap","isNil","x","isFunction","isFalsy","isPrimitive","isPlainObject","isStringNumber","hasOwnProperty","hasOwn","key","coerceArray","data","hasChanged","value","oldValue","noop","startsWith","str","searchString","escape","char","isExclude","exclude","kebabCase","string","match","offset","capitalizeFirstLetter","inputString","warn","msg","args","ye","U","Se","me","Q","y","queue","activePreFlushCbs","p","isFlushPending","nextTick","fn","queueJob","job","queueFlush","flushJobs","queuePreFlushCb","cb","queueCb","activeQueue","flushPreFlushCbs","createScheduler","effect","flush","activeEffect","triggerMap","reactiveMap","ReactiveSymbol","ReactivePeekSymbol","SignalValueKey","ComputedValueKey","reactiveArrayKey","ReactiveCollectionKey","ReactiveWeakCollectionKey","inBatch","batchQueue","track","target","depsMap","dep","trigger","Signal","shallow","reactive","newValue","isSignal","useSignal","useShallowSignal","shallowSignal","Computed","prev","useComputed","isComputed","useEffect","options","onTrack","onTrigger","effectFn","scheduler","signalObject","initialValues","acc","toRaw","isReactive","obj","useReactive","initialValue","shallowReactive","basicHandler","receiver","getValue","result","arrayInstrumentations","createArrayInstrumentations","instrumentations","arr","i","l","res","ArrayHandler","collectionHandlers","weakCollectionHandlers","weakInstrumentations","hadKey","hadItems","callback","thisArg","handler","proxy","clearReactive","reactiveObj","useBatch","runBatch","useWatch","source","doWatch","INITIAL_WATCHER_VALUE","watcher","flushing","queueWatcher","flushWatchers","deep","immediate","getter","isMultiSource","__spreadValues","s","resolveSource","baseGetter","depth","traverse","runCb","stop","seen","element","v","createOptionsStore","state","getters","actions","initState","reactiveState","subscriptions","actionCallbacks","store","payload","index","action","createStore","componentMap","RenderContext","renderContext","enterComponent","temp","getComponentIndex","_LifecycleContext","hook","_a","context","set","LifecycleContext","isSSGNode","node","SSGNode","componentIndex","template","props","PLACEHOLDER","processedString","p1","p2","_","tagName","attrs","output","root","cur","childrens","normalizeProp","findIndex","t","child","children","renderChildren","generateAttributes","h","prop","childResult","extractSignal","selfClosingTags","htmlTags","coerceNode","isJsxElement","text","insertChild","parent","before","beforeNode","ssr","removeChild","replaceChild","setAttribute","attr","value2","bindNode","setter","addEventListener","eventName","closeHtmlTags","input","tagStack","tagPattern","lastIndex","fullMatch","isEndTag","unclosedTag","isHtmlTagName","convertToHtmlTag","signal","ComponentNode","L","key2","_b","_c","_d","mountedNode","cleanup","trackKey","event","B","patchChildren","childrenMap","nextChildren","clearChildren","replaces","nextChildrenMap","mapKeys","childIndex","currChild","currKey","getKey","origChild","patch","placeholder","range","start","next","jsxKey","TemplateNode","createTemplate","cloneNode","firstChild","_a2","walk","type","textNode","ci","hk","tree","trackLastNodes","isRoot","item","path","patchChild","listener","updateKey","triggerValue","le","patchAttribute","cleanupBind","isComponent","nextNodes","reconcileChildren","newNode","textNodes","ne","html","Fragment","onMount","assertInsideComponent","onDestroy","hookName","useProvide","useInject","defaultValue","useRef","renderToString","component","hydrate","container","rootElement","ssg"],"mappings":"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","file":"essor.cjs.js","sourcesContent":["export const essor_version = '0.0.13-beta.6';\n","import { _toString } from './comm';\n\nexport const isObject = (val: unknown): val is Record<any, any> =>\n val !== null && typeof val === 'object';\nexport function isPromise(val: any): val is Promise<any> {\n return _toString.call(val) === '[object Promise]';\n}\n\nexport const isArray = Array.isArray;\n\nexport function isString(val: unknown): val is string {\n return typeof val === 'string';\n}\nexport function isNull(val: any): val is null {\n return val === null;\n}\nexport function isSymbol(val: unknown): val is symbol {\n return typeof val === 'symbol';\n}\n\nexport function isSet(val: any): val is Set<any> {\n return _toString.call(val) === '[object Set]';\n}\nexport function isWeakMap(val: any): val is WeakMap<any, any> {\n return _toString.call(val) === '[object WeakMap]';\n}\nexport function isWeakSet(val: any): val is WeakSet<any> {\n return _toString.call(val) === '[object WeakSet]';\n}\n\nexport function isMap(val: unknown): val is Map<any, any> {\n return _toString.call(val) === '[object Map]';\n}\nexport function isNil(x: any): x is null | undefined {\n return x === null || x === undefined;\n}\n\nexport const isFunction = (val: unknown): val is Function => typeof val === 'function';\n\nexport function isFalsy(x: any): x is false | null | undefined {\n return x === false || x === null || x === undefined;\n}\n\nexport const isPrimitive = (\n val: unknown,\n): val is string | number | boolean | symbol | null | undefined =>\n ['string', 'number', 'boolean', 'symbol', 'undefined'].includes(typeof val) || isNull(val);\n\nexport function isHTMLElement(obj) {\n if (!obj) return false;\n return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n}\n\nexport const isPlainObject = (val: unknown): val is object =>\n _toString.call(val) === '[object Object]';\n\nexport type StringNumber = `${number}`;\nexport function isStringNumber(val: unknown): val is StringNumber {\n if (!isString(val)) {\n return false;\n }\n return !Number.isNaN(Number(val));\n}\n","import { isArray, isFunction, isString } from './is';\n\nexport const _toString = Object.prototype.toString;\nexport const extend = Object.assign;\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nexport const hasOwn = (val: object, key: string | symbol): key is keyof typeof val =>\n hasOwnProperty.call(val, key);\n\nexport function coerceArray<T>(data: T | T[]): T[] {\n return isArray(data) ? (data.flat() as T[]) : [data];\n}\nexport const hasChanged = (value, oldValue) =>\n value !== oldValue && (value === value || oldValue === oldValue);\nexport const noop = Function.prototype as () => void;\n\n/**\n * A function that checks if a string starts with a specific substring.\n * indexOf faster under normal circumstances\n * @see https://www.measurethat.net/Benchmarks/Show/12350/0/startswith-vs-test-vs-match-vs-indexof#latest_results_block\n\n * @param {string} str - The input string to check.\n * @param {string} searchString - The substring to check for at the beginning of the input string.\n * @return {boolean} Returns true if the input string starts with the specified substring, otherwise false.\n */\nexport function startsWith(str, searchString) {\n if (!isString(str)) {\n return false;\n }\n return str.indexOf(searchString) === 0;\n}\n\n/**\n * Escapes special HTML characters in a string.\n * @param str - The string to escape.\n * @returns The escaped string.\n */\nexport function escape(str: string): string {\n return str.replaceAll(/[\"&'<>]/g, char => {\n switch (char) {\n case '&':\n return '&';\n case '<':\n return '<';\n case '>':\n return '>';\n case '\"':\n return '"';\n case \"'\":\n return ''';\n default:\n return char;\n }\n });\n}\n\nexport type ExcludeType = ((key: string | symbol) => boolean) | (string | symbol)[];\n\n/**\n * Checks if a key should be excluded based on the provided exclude criteria.\n * @param key - The key to check.\n * @param exclude - The exclusion criteria.\n * @returns True if the key should be excluded, otherwise false.\n */\nexport function isExclude(key: string | symbol, exclude?: ExcludeType): boolean {\n return isArray(exclude) ? exclude.includes(key) : isFunction(exclude) ? exclude(key) : false;\n}\n\n/**\n * Generates a unique random 8 character string ID.\n * The generated IDs only contain alphanumeric characters.\n * @returns A unique random 8 character string ID.\n */\nexport function generateUniqueId() {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let result = '';\n const charactersLength = characters.length;\n for (let i = 0; i < 8; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n\n/**\n * Checks if the current environment is a browser.\n * @returns True if the current environment is a browser, otherwise false.\n */\nexport function isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n","export const kebabCase = (string: string): string => {\n return string.replaceAll(/[A-Z]+/g, (match, offset) => {\n return `${offset > 0 ? '-' : ''}${match.toLocaleLowerCase()}`;\n });\n};\n\nexport const camelCase = (str: string): string => {\n const s = str.replaceAll(/[\\s_-]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''));\n return s[0].toLowerCase() + s.slice(1);\n};\n/**\n * Capitalizes the first letter of a string.\n *\n * @param {string} inputString - The input string to capitalize the first letter.\n * @return {string} The string with the first letter capitalized.\n */\nexport const capitalizeFirstLetter = (inputString: string): string => {\n return inputString.charAt(0).toUpperCase() + inputString.slice(1);\n};\n","export function warn(msg: string, ..._args: any[]): void;\nexport function warn(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.warn.apply(console, [`[Essor warn]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function info(msg: string, ..._args: any[]): void;\nexport function info(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread, no-console\n console.info.apply(console, [`[Essor info]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function error(msg: string, ..._args: any[]): void;\nexport function error(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.error.apply(console, [`[Essor error]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n","import {\n type ExcludeType,\n hasChanged,\n hasOwn,\n isArray,\n isExclude,\n isMap,\n isObject,\n isPlainObject,\n isSet,\n isStringNumber,\n isWeakMap,\n isWeakSet,\n warn,\n} from '@estjs/shared';\nimport { createScheduler } from './scheduler';\n\n// Define the type for effect functions\nexport type EffectFn = (() => void) &\n Partial<{\n init: boolean;\n active: boolean;\n }>;\n\n// Global variables to track active effects and computed values\nlet activeEffect: EffectFn | null = null;\n\n// Type definition for the trigger map\ntype TriggerMap = Map<string | symbol, Set<EffectFn>>;\n\n// WeakMaps to store dependencies and reactive objects\nconst triggerMap = new WeakMap<object, TriggerMap>();\nconst reactiveMap = new WeakMap<object, object>();\n\nconst ReactiveSymbol = Symbol(__DEV__ ? 'ReactiveSymbol' : '');\nconst ReactivePeekSymbol = Symbol(__DEV__ ? '__raw' : '');\n\n// trigger key\nconst SignalValueKey = Symbol(__DEV__ ? 'SignalValueKey' : '');\nconst ComputedValueKey = Symbol(__DEV__ ? 'ComputedValueKey' : '');\nconst reactiveArrayKey = Symbol(__DEV__ ? 'ReactiveArrayKey' : '');\nconst ReactiveCollectionKey = Symbol(__DEV__ ? 'ReactiveCollectionKey' : '');\nconst ReactiveWeakCollectionKey = Symbol(__DEV__ ? 'ReactiveWeakCollectionKey' : '');\n\n// batch queue\nlet inBatch = false;\nconst batchQueue: Set<EffectFn> = new Set();\n\nexport type SignalObject<T> = {\n [K in keyof T]: Signal<T[K]>;\n};\n\n// Define the Reactive type\nexport type Reactive<T> = T & {\n [ReactivePeekSymbol]: T;\n [ReactiveSymbol]?: true;\n};\n// Define types that can be made reactive\ntype ReactiveTypes =\n | Record<string | symbol | number, unknown>\n | Array<unknown>\n | Set<unknown>\n | Map<object, unknown>\n | WeakMap<object, unknown>\n | WeakSet<object>;\n\n/**\n * Tracks the dependency of the current active effect or computed value.\n *\n * @param target The reactive object.\n * @param key The key of the reactive object.\n *\n */\nexport function track(target: object, key: string | symbol) {\n if (!activeEffect) return;\n let depsMap = triggerMap.get(target);\n if (!depsMap) {\n depsMap = new Map();\n triggerMap.set(target, depsMap);\n }\n let dep = depsMap.get(key);\n if (!dep) {\n dep = new Set();\n depsMap.set(key, dep);\n }\n if (activeEffect) dep.add(activeEffect);\n}\n/**\n * Triggers all the effects that depend on the specified key of the reactive object.\n * If the effect is inactive, it will be removed from the dependency set.\n * If the effect is active and in the batch queue, it will be added to the batch queue.\n * If the effect is active and not in the batch queue, it will be called immediately.\n *\n * @param target The reactive object.\n * @param key The key of the reactive object.\n */\n\nfunction trigger(target: object, key: string | symbol) {\n const depsMap = triggerMap.get(target);\n if (!depsMap) return;\n const dep = depsMap.get(key);\n if (dep) {\n dep.forEach(effect => {\n if (hasOwn(effect, 'active') && !effect.active) {\n dep.delete(effect);\n return;\n }\n if (inBatch) {\n batchQueue.add(effect);\n } else {\n effect();\n }\n });\n }\n}\n\n/**\n * Signal class represents a reactive value.\n * @template T The type of the value held by the Signal.\n * @example\n * const count = new Signal(0);\n * console.log(count.value); // 0\n * count.value = 1;\n * console.log(count.value); // 1\n */\nexport class Signal<T> {\n private __value: T;\n private __shallow: boolean;\n\n // is should be read\n //@ts-ignore\n private readonly __signal = true;\n\n /**\n * Creates a new Signal instance.\n * @param {T} value - The initial value of the Signal.\n * @param {boolean} [shallow] - Whether to create a shallow Signal.\n */\n constructor(value: T, shallow: boolean = false) {\n this.__shallow = shallow;\n this.__value = value;\n }\n\n /**\n * Gets the current value of the Signal.\n * @returns {T} The current value.\n */\n get value(): T {\n track(this, SignalValueKey);\n if (isObject(this.__value) && !this.__shallow) {\n return reactive(this.__value) as T;\n }\n return this.__value;\n }\n\n /**\n * Sets a new value for the Signal.\n * @param {T} newValue - The new value to set.\n */\n set value(newValue: T) {\n if (isSignal(newValue)) {\n newValue = newValue.peek() as T;\n }\n\n if (hasChanged(newValue, this.__value)) {\n this.__value = newValue;\n trigger(this, SignalValueKey);\n }\n }\n\n /**\n * Returns the current value without triggering reactivity.\n * @returns {T} The current value.\n */\n peek(): T {\n return this.__value;\n }\n}\n\n/**\n * Creates a new Signal object.\n * @template T The type of the value held by the Signal.\n * @param {T} [value] - The initial value of the Signal.\n * @returns {Signal<T>} A new Signal instance.\n * @example\n * const count = useSignal(0);\n * console.log(count.value); // 0\n * count.value++;\n * console.log(count.value); // 1\n */\nexport function useSignal<T>(value?: T): Signal<T> {\n if (isSignal(value)) {\n return value as Signal<T>;\n }\n return new Signal<T>(value as T);\n}\n\n/**\n * Creates a shallow Signal object.\n * @template T The type of the value held by the Signal.\n * @param {T} [value] - The initial value of the Signal.\n * @returns {Signal<T>} A new shallow Signal instance.\n * @example\n * const obj = useShallowSignal({ nested: { count: 0 } });\n * // Changes to obj.value.nested will not trigger reactivity\n * obj.value.nested.count = 1;\n */\nexport function useShallowSignal<T>(value?: T): Signal<T> {\n return new Signal<T>(value as T, true);\n}\n\n/**\n * Alias for useShallowSignal.\n * @template T The type of the value held by the Signal.\n * @param {T} [value] - The initial value of the Signal.\n * @returns {Signal<T>} A new shallow Signal instance.\n * @example\n * const obj = shallowSignal({ nested: { count: 0 } });\n * // Changes to obj.value.nested will not trigger reactivity\n * obj.value.nested.count = 1;\n */\nexport function shallowSignal<T>(value?: T): Signal<T> {\n return new Signal<T>(value as T, true);\n}\n\n/**\n * Checks if a value is a Signal.\n * @template T The type of the value held by the Signal.\n * @param {any} value - The value to check.\n * @returns {boolean} True if the value is a Signal, false otherwise.\n * @example\n * const count = useSignal(0);\n * console.log(isSignal(count)); // true\n * console.log(isSignal(0)); // false\n */\nexport function isSignal<T>(value: any): value is Signal<T> {\n return !!(value && value?.__signal);\n}\n\n/**\n * Computed class represents a computed reactive value.\n * @template T The type of the value computed by the Computed instance.\n * @example\n * const doubleCount = useComputed(() => count.value * 2);\n * console.log(doubleCount.value); // 0\n * count.value = 1;\n * console.log(doubleCount.value); // 2\n */\nexport class Computed<T = unknown> {\n private __value: T;\n //@ts-ignore\n private readonly __computed = true;\n constructor(private readonly fn: () => T) {\n const prev = activeEffect;\n activeEffect = this.run.bind(this);\n this.__value = this.fn();\n activeEffect = prev;\n }\n /**\n * Get the current computed value without tracking it.\n */\n peek(): T {\n return this.__value;\n }\n /**\n * Run the computed function and update the value if it has changed.\n */\n run() {\n const newValue = this.fn();\n if (hasChanged(newValue, this.__value)) {\n this.__value = newValue;\n trigger(this, ComputedValueKey);\n }\n }\n\n /**\n * Get the current computed value and track its usage.\n */\n get value(): T {\n track(this, ComputedValueKey);\n return this.__value;\n }\n}\n\n/**\n * Creates a new Computed instance.\n * @template T The type of the value computed by the Computed instance.\n * @param {() => T} fn - The computation function.\n * @returns {Computed<T>} A new Computed instance.\n * @example\n * const doubleCount = useComputed(() => count.value * 2);\n * console.log(doubleCount.value); // 0\n * count.value = 1;\n * console.log(doubleCount.value); // 2\n */\nexport function useComputed<T>(fn: () => T): Computed<T> {\n return new Computed<T>(fn);\n}\n\n/**\n * Checks if a value is a Computed instance.\n * @template T The type of the value computed by the Computed instance.\n * @param {any} value - The value to check.\n * @returns {boolean} True if the value is a Computed instance, false otherwise.\n * @example\n * const doubleCount = useComputed(() => count.value * 2);\n * console.log(isComputed(doubleCount)); // true\n * console.log(isComputed(0)); // false\n */\nexport function isComputed<T>(value: any): value is Computed<T> {\n return !!(value && value.__computed);\n}\n\nexport interface EffectOptions {\n flush?: 'pre' | 'post' | 'sync';\n onTrack?: () => void;\n onTrigger?: () => void;\n}\n\n/**\n * Registers an effect function to run when signals or computed properties change.\n * @param {() => void} fn - The effect function.\n * @param {EffectOptions} [options] - The options for the effect.\n * @returns {() => void} A function to stop the effect.\n */\nexport function useEffect(fn: () => void, options: EffectOptions = {}): () => void {\n const { flush = 'pre', onTrack, onTrigger } = options;\n\n function effectFn() {\n const prev = activeEffect;\n activeEffect = effectFn.init ? effectFn : effectFn.scheduler;\n fn();\n onTrigger && onTrigger();\n activeEffect = prev;\n }\n const scheduler = createScheduler(effectFn, flush);\n\n effectFn.scheduler = scheduler;\n effectFn.init = true;\n effectFn.active = true;\n onTrack && onTrack();\n\n effectFn();\n\n return () => {\n effectFn.active = false;\n activeEffect = null;\n };\n}\n\n/**\n * Creates a SignalObject from given initial values, excluding specified keys.\n * @template T The type of the initial values object.\n * @param {T} initialValues - The initial values object.\n * @param {ExcludeType} [exclude] - The keys to exclude from the SignalObject.\n * @returns {SignalObject<T>} A new SignalObject instance.\n * @example\n * const userSignals = signalObject({ name: 'John', age: 30 }, ['age']);\n * console.log(userSignals.name.value); // 'John'\n * console.log(userSignals.age); // 30\n */\nexport function signalObject<T extends object>(\n initialValues: T,\n exclude?: ExcludeType,\n): SignalObject<T> {\n if (!initialValues || !isObject(initialValues)) {\n if (__DEV__) {\n warn('initialValues must be an object,will return initial value!', initialValues);\n }\n return initialValues;\n }\n const signals = Object.entries(initialValues).reduce((acc, [key, value]) => {\n acc[key] = isExclude(key, exclude) || isSignal(value) ? value : useSignal(value);\n return acc;\n }, {} as SignalObject<T>);\n\n return signals;\n}\n\n/**\n * Returns the current value of signals, reactive, or plain objects, excluding specified keys.\n * @template T The type of the value.\n * @param {Reactive<T> | T | Signal<T>} value - The signal, reactive, or plain object.\n * @returns {T} The current value.\n * @example\n * const user = unSignal(userSignals);\n * console.log(user.name); // 'John'\n * console.log(user.age); // 30\n */\nexport function toRaw<T>(value: Reactive<T> | T | Signal<T>): T {\n if (!value) return value as T;\n\n if (isReactive(value)) {\n return value[ReactivePeekSymbol];\n }\n if (isSignal(value)) {\n return (value as Signal<T>).peek();\n }\n if (isArray(value)) {\n return (value as T[]).map(value => toRaw(value)) as T;\n }\n if (isPlainObject(value)) {\n return Object.fromEntries(\n Object.entries(value).map(([key, value]) => [key, toRaw(value)]),\n ) as T;\n }\n return value as T;\n}\n\n/**\n * Checks if an object is reactive.\n * @param {unknown} obj - The object to check.\n * @returns {boolean} True if the object is reactive, false otherwise.\n * @example\n * const reactiveUser = useReactive({ name: 'John', age: 30 });\n * console.log(isReactive(reactiveUser)); // true\n * console.log(isReactive({ name: 'John', age: 30 })); // false\n */\nexport function isReactive(obj: unknown): obj is Reactive<any> {\n return !!(obj && typeof obj === 'object' && obj[ReactiveSymbol]);\n}\n\n/**\n * Creates a reactive object.\n * @param {ReactiveTypes} initialValue - The initial value.\n * @param {ExcludeType} [exclude] - The keys to exclude from the reactive object.\n * @returns {Reactive<T>} A new reactive object.\n * @example\n * const reactiveUser = useReactive({ name: 'John', age: 30 });\n * console.log(reactiveUser.name); // 'John'\n * console.log(reactiveUser.age); // 30\n */\nexport function useReactive<T extends object>(initialValue: T, exclude?: ExcludeType): Reactive<T> {\n return reactive(initialValue, false, exclude) as Reactive<T>;\n}\n\n/**\n * Creates a shallow reactive object.\n * @template T The type of the initial value.\n * @param {T} initialValue - The initial value.\n * @param {ExcludeType} [exclude] - The keys to exclude from the reactive object.\n * @returns {Reactive<T>} A new shallow reactive object.\n * @example\n * const shallowReactiveUser = shallowReactive({ name: 'John', age: 30 });\n * console.log(shallowReactiveUser.name); // 'John'\n * console.log(shallowReactiveUser.age); // 30\n */\nexport function shallowReactive<T extends ReactiveTypes>(\n initialValue: T,\n exclude?: ExcludeType,\n): Reactive<T> {\n return reactive(initialValue, true, exclude) as Reactive<T>;\n}\n\nconst basicHandler = (shallow, exclude): ProxyHandler<Record<string, any>> => {\n return {\n get(target, key, receiver) {\n if (key === ReactiveSymbol) return true;\n if (key === ReactivePeekSymbol) return target;\n\n const getValue = Reflect.get(target, key, receiver);\n const value = isSignal(getValue) ? getValue.value : getValue;\n\n if (isExclude(key, exclude)) {\n return value;\n }\n\n track(target, key);\n // deep track\n if (isObject(value) && !shallow) {\n return reactive(value);\n }\n return value;\n },\n set(target, key, value, receiver) {\n if (isExclude(key, exclude)) {\n Reflect.set(target, key, value, receiver);\n return true;\n }\n let oldValue: Signal<any> | any = Reflect.get(target, key, receiver);\n\n if (isSignal(oldValue)) {\n oldValue = oldValue.value;\n }\n if (isSignal(value)) {\n value = value.value;\n }\n const obj = Reflect.set(target, key, value, receiver);\n\n if (hasChanged(value, oldValue)) {\n trigger(target, key);\n }\n return obj;\n },\n // handle delete\n deleteProperty(target, key) {\n const oldValue = Reflect.get(target, key);\n const result = Reflect.deleteProperty(target, key);\n if (oldValue !== undefined) {\n trigger(target, key);\n }\n return result;\n },\n };\n};\n\nconst arrayInstrumentations = createArrayInstrumentations();\n\n// Create special handling for array methods\nfunction createArrayInstrumentations() {\n const instrumentations: Record<string, Function> = {};\n\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\n instrumentations[key] = function (this: unknown[], ...args: unknown[]) {\n const arr = toRaw(this) as any[];\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, `${i}`);\n }\n const res = arr[key as keyof typeof arr](...args);\n if (res === -1 || res === false) {\n return arr[key as keyof typeof arr](...args);\n }\n return res;\n };\n });\n\n ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'].forEach(key => {\n instrumentations[key] = function (this: unknown[], ...args: unknown[]) {\n const arr = toRaw(this) as any[];\n const res = arr[key as keyof typeof this].apply(this, args);\n trigger(arr, reactiveArrayKey);\n return res;\n };\n });\n\n [\n 'forEach',\n 'map',\n 'filter',\n 'reduce',\n 'reduceRight',\n 'some',\n 'every',\n 'find',\n 'findIndex',\n 'findLast',\n 'findLastIndex',\n 'entries',\n 'keys',\n 'values',\n ].forEach(key => {\n instrumentations[key] = function (this: unknown[], ...args: unknown[]) {\n const arr = toRaw(this) as any[];\n track(arr, reactiveArrayKey);\n return arr[key as keyof typeof this].apply(this, args);\n };\n });\n\n return instrumentations;\n}\n\n// Proxy handler for arrays\nconst ArrayHandler = (shallow, exclude): ProxyHandler<unknown[]> => {\n return {\n get(target, key: string | symbol, receiver) {\n if (key === ReactiveSymbol) return true;\n if (key === ReactivePeekSymbol) return target;\n\n if (arrayInstrumentations.hasOwnProperty(key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n\n const value = Reflect.get(target, key, receiver);\n\n if (isExclude(key, exclude)) {\n return value;\n }\n // track arr[0]\n if (isStringNumber(key)) {\n track(target, key);\n }\n\n track(target, 'length');\n\n // deep track\n if (isObject(value) && !shallow) {\n return reactive(value);\n }\n return value;\n },\n set(target, key: string | symbol, value, receiver) {\n const oldValue = Reflect.get(target, key, receiver);\n const result = Reflect.set(target, key, value, receiver);\n\n if (hasChanged(value, oldValue)) {\n // trigger arr[0]\n if (isStringNumber(key)) {\n trigger(target, key);\n }\n\n // trigger arr.length = 0 or add new item\n if (key === 'length' || !oldValue) {\n trigger(target, 'length');\n }\n }\n return result;\n },\n };\n};\n\n// Proxy handler for collections\nconst collectionHandlers: ProxyHandler<Map<unknown, unknown> | Set<unknown>> = {\n get(target, key: string | symbol) {\n if (key === ReactiveSymbol) return true;\n if (key === ReactivePeekSymbol) return target;\n\n if (key === Symbol.iterator || key === 'size') {\n track(target, ReactiveCollectionKey);\n }\n\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n target,\n );\n },\n};\n\n// Proxy handler for WeakMap and WeakSet\nconst weakCollectionHandlers: ProxyHandler<WeakMap<object, unknown> | WeakSet<object>> = {\n get(target, key: string | symbol) {\n if (key === ReactiveSymbol) return true;\n if (key === ReactivePeekSymbol) return target;\n return Reflect.get(\n hasOwn(weakInstrumentations, key) && key in target ? weakInstrumentations : target,\n key,\n target,\n );\n },\n};\n\n// Overwrite all methods and properties of Map/Set\nconst instrumentations = {\n get(key: unknown) {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.get(key);\n },\n set(key: unknown, value: unknown) {\n const target = toRaw(this);\n const result = target.set(key, value);\n trigger(target, ReactiveCollectionKey);\n return result;\n },\n add(value: unknown) {\n const target = toRaw(this);\n const result = target.add(value);\n trigger(target, ReactiveCollectionKey);\n return result;\n },\n has(key: unknown) {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.has(key);\n },\n delete(key: unknown) {\n const target = toRaw(this);\n const hadKey = target.has(key);\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, ReactiveCollectionKey);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size > 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, ReactiveCollectionKey);\n }\n return result;\n },\n forEach(\n callback: (value: unknown, key: unknown, map: Map<unknown, unknown> | Set<unknown>) => void,\n thisArg?: unknown,\n ) {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n target.forEach((value: unknown, key: unknown) => {\n callback.call(thisArg, value, key, target as unknown as Map<unknown, unknown> | Set<unknown>);\n });\n },\n get size() {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.size;\n },\n keys() {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.keys();\n },\n values() {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.values();\n },\n entries() {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.entries();\n },\n [Symbol.iterator]() {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target[Symbol.iterator]();\n },\n};\n\n// Overwrite methods of WeakMap/WeakSet\nconst weakInstrumentations = {\n get(key: object) {\n const target = toRaw(this);\n track(target, ReactiveWeakCollectionKey);\n return target.get(key);\n },\n set(key: object, value: any) {\n const target = toRaw(this);\n const result = target.set(key, value);\n trigger(target, ReactiveWeakCollectionKey);\n return result;\n },\n add(value: object) {\n const target = toRaw(this);\n const result = target.add(value);\n trigger(target, ReactiveWeakCollectionKey);\n return result;\n },\n has(key: object) {\n const target = toRaw(this);\n track(target, ReactiveWeakCollectionKey);\n return target.has(key);\n },\n delete(key: object) {\n const target = toRaw(this);\n const result = target.delete(key);\n trigger(target, ReactiveWeakCollectionKey);\n return result;\n },\n};\n\n/**\n * Creates a reactive object.\n * @param {object} initialValue - The initial value.\n * @param {boolean} [shallow] - Whether to create a shallow reactive object.\n * @param {ExcludeType} [exclude] - The keys to exclude from the reactive object.\n *\n * @returns {Reactive<T>} A new reactive object.\n * @example\n * const reactiveUser = reactive({ name: 'John', age: 30 });\n * console.log(reactiveUser.name); // 'John'\n * console.log(reactiveUser.age); // 30\n */\nfunction reactive<T extends object>(\n initialValue: T,\n shallow: boolean = false,\n exclude?: ExcludeType,\n): Reactive<T> {\n if (!isObject(initialValue)) {\n return initialValue as Reactive<T>;\n }\n if (isReactive(initialValue)) {\n return initialValue as Reactive<T>;\n }\n\n if (reactiveMap.has(initialValue)) {\n return reactiveMap.get(initialValue) as Reactive<T>;\n }\n\n let handler;\n\n if (isArray(initialValue)) {\n track(initialValue, reactiveArrayKey);\n handler = ArrayHandler(shallow, exclude) as ProxyHandler<T>;\n } else if (isSet(initialValue) || isMap(initialValue)) {\n track(initialValue, ReactiveCollectionKey);\n handler = collectionHandlers as ProxyHandler<T>;\n } else if (isWeakSet(initialValue) || isWeakMap(initialValue)) {\n track(initialValue, ReactiveWeakCollectionKey);\n handler = weakCollectionHandlers as ProxyHandler<T>;\n } else {\n handler = basicHandler(shallow, exclude);\n }\n\n const proxy = new Proxy(initialValue, handler) as Reactive<T>;\n reactiveMap.set(initialValue, proxy);\n return proxy;\n}\n\n/**\n * Clears the reactive object, removing all its properties and values.\n *\n * @param reactiveObj The reactive object to clear.\n * @example\n * const reactiveUser = useReactive({ name: 'John', age: 30 });\n * clearReactive(reactiveUser);\n * console.log(reactiveUser); // {}\n */\nexport function clearReactive<T extends object>(reactiveObj: Reactive<T>): void {\n if (!isReactive(reactiveObj)) {\n if (__DEV__) {\n warn('clearReactive: argument must be a reactive object');\n }\n return;\n }\n // weakMap and weakSet not\n if (isWeakMap(reactiveObj) || isWeakSet(reactiveObj)) {\n if (__DEV__) {\n warn('clearReactive: WeakMap and WeakSet are not clearable');\n }\n\n return;\n }\n\n useBatch(() => {\n if (isArray(reactiveObj)) {\n reactiveObj.length = 0;\n } else if (isSet(reactiveObj) || isMap(reactiveObj)) {\n reactiveObj.clear();\n } else if (isObject(reactiveObj)) {\n Object.keys(reactiveObj).forEach(key => {\n delete reactiveObj[key];\n });\n }\n });\n}\n\n/**\n * Call the function and batch all the reactive update operations.\n * @remarks\n * If there are multiple reactive updates in the same tick, they will be batched together.\n * This is useful for improving performance when multiple reactive updates are triggered in the same tick.\n * @example\n * batch(() => {\n * reactiveState.a++;\n * reactiveState.b++;\n * });\n * // Only one reactive update is triggered.\n */\nexport function useBatch(fn: () => void): void {\n try {\n inBatch = true;\n fn();\n } finally {\n inBatch = false;\n runBatch();\n }\n}\n\nfunction runBatch(): void {\n if (batchQueue.size > 0) {\n batchQueue.forEach(effect => effect());\n batchQueue.clear();\n }\n}\n","import type { EffectFn } from './signal';\n\ntype Job = () => void;\ntype PreFlushCb = () => void;\n\n// Main job queue\nconst queue: Job[] = [];\n// Queue for pre-flush callbacks\nconst activePreFlushCbs: PreFlushCb[] = [];\n// A resolved Promise for microtask scheduling\nconst p = Promise.resolve();\n// Flag indicating if a flush is pending\nlet isFlushPending = false;\n\n/**\n * Wraps a function in a microtask and executes it in the next event loop.\n * @param fn - Function to be executed in the next event loop\n * @returns A Promise representing the completion of the microtask\n */\nexport function nextTick(fn?: () => void): Promise<void> {\n return fn ? p.then(fn) : p;\n}\n\n/**\n * Adds a job to the main job queue and triggers the flush process.\n * @param job - The job function to be executed\n */\nexport function queueJob(job: Job): void {\n if (!queue.includes(job)) {\n queue.push(job);\n queueFlush(); // Ensure that the job queue is processed\n }\n}\n\n/**\n * Schedules the flush process for jobs.\n * If a flush is already pending, it returns early. Otherwise, it sets the flag\n * and schedules the flushJobs function to be executed in the next event loop.\n */\nfunction queueFlush(): void {\n if (isFlushPending) {\n return;\n }\n isFlushPending = true;\n nextTick(flushJobs);\n}\n\n/**\n * Adds a pre-flush callback to the pre-flush callback queue and triggers the flush process.\n * @param cb - The pre-flush callback function to be executed\n */\nexport function queuePreFlushCb(cb: PreFlushCb): void {\n queueCb(cb, activePreFlushCbs);\n}\n\n/**\n * Adds a callback to the specified queue and triggers the flush process.\n * @param cb - The callback function to be added to the queue\n * @param activeQueue - The active queue to which the callback is added\n */\nfunction queueCb(cb: PreFlushCb, activeQueue: PreFlushCb[]): void {\n if (!activeQueue.includes(cb)) {\n activeQueue.push(cb);\n queueFlush();\n }\n}\n\n/**\n * Executes all jobs and pre-flush callbacks in the queue.\n */\nfunction flushJobs(): void {\n isFlushPending = false;\n flushPreFlushCbs();\n let job: Job | undefined;\n while ((job = queue.shift())) {\n if (job) {\n job();\n }\n }\n}\n\n/**\n * Executes all pre-flush callback functions.\n */\nfunction flushPreFlushCbs(): void {\n while (activePreFlushCbs.length > 0) {\n const cb = activePreFlushCbs.shift();\n if (cb) {\n cb();\n }\n }\n}\n\n/**\n * Creates a scheduler function that runs the given effect function\n * with the specified flush strategy.\n *\n * The flush strategy can be one of the following:\n *\n * - `'pre'`: Run the effect function as a pre-flush callback.\n * - `'post'`: Run the effect function in the next event loop.\n * - `'sync'`: Run the effect function immediately.\n *\n * The scheduler function is a function that takes no arguments.\n * When called, it schedules the effect function to be executed\n * according to the specified flush strategy.\n */\nexport function createScheduler(effect: EffectFn, flush: 'pre' | 'post' | 'sync') {\n if (flush === 'sync') {\n return () => effect();\n } else if (flush === 'pre') {\n return () => queuePreFlushCb(effect);\n } else {\n return () => {\n nextTick(() => queueJob(effect));\n };\n }\n}\n","import {\n hasChanged,\n isArray,\n isFunction,\n isMap,\n isObject,\n isPlainObject,\n isSet,\n noop,\n warn,\n} from '@estjs/shared';\nimport { type Computed, type Signal, isComputed, isReactive, isSignal, useEffect } from './signal';\nimport { nextTick } from './scheduler';\n\nexport type WatchSource<T = any> = Signal<T> | Computed<T> | (() => T);\nexport type WatchCallback<V = any, OV = any> = (value: V, oldValue: OV) => any;\nexport type WatchStopHandle = () => void;\n\ntype MapSources<T> = {\n [K in keyof T]: T[K] extends WatchSource<infer V> ? V : T[K];\n};\n\ntype MapOldSources<T, Immediate> = {\n [K in keyof T]: Immediate extends true ? T[K] | undefined : T[K];\n};\n\nexport interface WatchOptions<Immediate = boolean> {\n immediate?: Immediate;\n deep?: boolean | number;\n}\n\n// Overload signatures\nexport function useWatch<\n T extends Readonly<WatchSource<unknown>[] | object>,\n Immediate extends boolean = false,\n>(\n sources: T,\n cb: WatchCallback<MapSources<T>, MapOldSources<T, Immediate>>,\n options?: WatchOptions<Immediate>,\n): WatchStopHandle;\n\nexport function useWatch<T, Immediate extends boolean = false>(\n source: WatchSource<T>,\n cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,\n options?: WatchOptions<Immediate>,\n): WatchStopHandle;\n\nexport function useWatch<T extends object, Immediate extends boolean = false>(\n source: T,\n cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,\n options?: WatchOptions<Immediate>,\n): WatchStopHandle;\n\n// Main implementation of useWatch\nexport function useWatch<T = any>(\n source: WatchSource<T> | WatchSource<T>[] | object,\n cb: WatchCallback<T>,\n options?: WatchOptions,\n): WatchStopHandle {\n return doWatch(source, cb, options);\n}\n\nconst INITIAL_WATCHER_VALUE = undefined;\nlet watcher: Function | null;\nlet flushing = false;\n\nfunction queueWatcher(fn: Function) {\n watcher = fn;\n if (!flushing) {\n flushing = true;\n nextTick(flushWatchers);\n }\n}\n\nfunction flushWatchers() {\n watcher?.();\n watcher = null;\n flushing = false;\n}\n\n/**\n * Creates a watcher for the given source, which can be a signal, computed, reactive object, or an array of them.\n * The watcher will be triggered whenever the source value changes, and will call the given callback function with the new value and old value.\n * If the source is an array, the watcher will be triggered when any one of the elements changes.\n * If the source is a reactive object, the watcher will be triggered when any one of the properties changes.\n * If the source is an array of reactive objects, the watcher will be triggered when any one of the properties of any one of the objects changes.\n * If the source is a computed value, the watcher will be triggered when the value of the computed changes.\n * @param {WatchSource | WatchSource[] | object} source The source to watch.\n * @param {WatchCallback | null} cb The callback function to call when the source value changes.\n * @param {WatchOptions} [options] Options for the watcher.\n * @param {boolean} [options.immediate] Whether to call the callback function immediately when the watcher is created.\n * @param {boolean | number} [options.deep] Whether to watch the source recursively. If true, the watcher will watch all nested objects. If number, the watcher will watch up to the given depth.\n * @returns {WatchStopHandle} A function to stop the watcher.\n *\n * @examples\n *\n * const count = useSignal(0);\n * const name = useSignal('Alice');\n *\n * useWatch([count, name], ([newCount, newName], [oldCount, oldName]) => {\n * console.log(`Count changed from ${oldCount} to ${newCount}`);\n * })\n *\n * count.value++;\n * name.value = 'Bob';\n */\nfunction doWatch(\n source: WatchSource | WatchSource[] | object,\n cb: WatchCallback | null,\n { deep, immediate }: WatchOptions = {},\n): WatchStopHandle {\n let getter: () => any;\n const isMultiSource = isArray(source);\n\n if (isSignal(source) || isComputed(source)) {\n getter = () => source.value;\n } else if (isReactive(source)) {\n getter = () => ({ ...source });\n } else if (isMultiSource) {\n getter = () => (source as WatchSource[]).map(s => resolveSource(s));\n } else if (isFunction(source)) {\n getter = source as () => any;\n } else {\n warn('Invalid source type', source);\n return noop;\n }\n\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n\n let oldValue: any = isMultiSource\n ? Array.from({ length: source.length }).fill(INITIAL_WATCHER_VALUE)\n : INITIAL_WATCHER_VALUE;\n let runCb = false;\n\n const effectFn = () => {\n const newValue = getter();\n if (hasChanged(newValue, oldValue)) {\n if (immediate && cb) {\n cb(newValue, oldValue);\n oldValue = newValue;\n }\n if (runCb && cb) {\n queueWatcher(() => {\n cb(newValue, oldValue);\n oldValue = newValue;\n });\n }\n !runCb && (oldValue = newValue);\n }\n };\n\n const stop = useEffect(effectFn, { flush: 'sync' });\n runCb = true;\n\n if (immediate) {\n effectFn();\n }\n\n return stop;\n}\n\nfunction resolveSource(s: WatchSource | object) {\n if (isSignal(s) || isComputed(s)) return s.value;\n if (isReactive(s)) return { ...s };\n if (isFunction(s)) return (s as Function)();\n warn('Invalid source', s);\n return noop;\n}\n\nexport function traverse(value: unknown, depth: number = Infinity, seen?: Set<unknown>): unknown {\n if (depth <= 0 || !isObject(value)) {\n return value;\n }\n\n seen = seen || new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isSignal(value)) {\n traverse((value as Signal<any>).value, depth, seen);\n } else if (isArray(value)) {\n for (const element of value) {\n traverse(element, depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n (value as Set<any> | Map<any, any>).forEach((v: any) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n }\n return value;\n}\n","import { useComputed, useReactive } from './signal';\n\ninterface StoreOptions<S, G, A> {\n state?: S;\n getters?: G;\n actions?: A;\n}\ntype PatchPayload = Record<string, any>;\ntype Callback = (value: any) => void;\nexport interface StoreActions {\n patch$: (payload: PatchPayload) => void;\n subscribe$: (callback: Callback) => void;\n unsubscribe$: (callback: Callback) => void;\n onAction$: (callback: Callback) => void;\n reset$: () => void;\n}\n\ntype Getters<S> = {\n [K in keyof S]: S[K] extends (...args: any[]) => any ? ReturnType<S[K]> : S[K];\n};\n\nfunction createOptionsStore<S, G, A>(options: StoreOptions<S, G, A>) {\n const { state, getters, actions } = options as StoreOptions<\n Record<string | symbol, any>,\n Record<string, Function>,\n Record<string, Function>\n >;\n\n const initState = { ...(state ?? {}) };\n const reactiveState = useReactive(state ?? {});\n\n const subscriptions: Callback[] = [];\n const actionCallbacks: Callback[] = [];\n const default_actions: StoreActions = {\n patch$(payload: PatchPayload) {\n Object.assign(reactiveState, payload);\n subscriptions.forEach(callback => callback(reactiveState));\n actionCallbacks.forEach(callback => callback(reactiveState));\n },\n subscribe$(callback: Callback) {\n subscriptions.push(callback);\n },\n unsubscribe$(callback: Callback) {\n const index = subscriptions.indexOf(callback);\n if (index !== -1) {\n subscriptions.splice(index, 1);\n }\n },\n onAction$(callback: Callback) {\n actionCallbacks.push(callback);\n },\n reset$() {\n Object.assign(reactiveState, initState);\n },\n };\n\n const store = {\n state: reactiveState,\n ...default_actions,\n } as S & Getters<G> & A & StoreActions & { state: S };\n\n for (const key in getters) {\n const getter = getters[key];\n if (getter) {\n Object.defineProperty(store, key, {\n get() {\n return useComputed(getter.bind(reactiveState, reactiveState)).value;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n for (const key in actions) {\n const action = actions[key];\n if (action) {\n store[key] = action.bind(reactiveState);\n }\n }\n\n return store;\n}\n\n/**\n * Creates a reactive store with the given options.\n *\n * The `createStore` function accepts an options object with the following properties:\n *\n * - `state`: The initial state of the store.\n * - `getters`: An object with functions that compute derived properties from the state.\n * - `actions`: An object with functions that can change the state.\n *\n * The function returns a new store function. Each time the returned function is called,\n * it returns the same store instance. The store instance is an object that contains the\n * current state, getters and actions.\n *\n * @example\n * const useCounterStore = createStore({\n * state: { count: 0 },\n * getters: {\n * doubleCount(state) {\n * return state.count * 2;\n * },\n * },\n * actions: {\n * increment() {\n * this.count++;\n * },\n * },\n * });\n *\n * const counterStore = useCounterStore();\n * console.log(counterStore.state.count); // 0\n * counterStore.increment();\n * console.log(counterStore.state.count); // 1\n * console.log(counterStore.doubleCount.value); // 2\n */\nexport function createStore<S, G, A>(\n options: {\n state: S;\n getters?: G;\n actions?: A;\n } & ThisType<S & Getters<G> & A>,\n): () => S & Getters<G> & A & StoreActions & { state: S } {\n return function () {\n return createOptionsStore<S, G, A>(options);\n };\n}\n","import { isString, isFunction, isSymbol, isArray, escape, startsWith, isPrimitive, isNil, capitalizeFirstLetter, coerceArray, isFalsy, kebabCase } from '@estjs/shared';\nimport { shallowSignal, isSignal, useReactive, useEffect, useSignal } from '@estjs/signal';\n\n/**\n* @estjs/template v0.0.13-beta.6\n* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>\n* @license MIT\n**/\n\n\n// src/shared-config.ts\nvar componentMap = /* @__PURE__ */ new Map();\nvar RenderContext = class {\n constructor() {\n this.renderMode = 0 /* CLIENT */;\n }\n get isSSG() {\n return this.renderMode === 1 /* SSG */;\n }\n get isSSR() {\n return this.renderMode === 2 /* SSR */;\n }\n get isClient() {\n return this.renderMode === 0 /* CLIENT */;\n }\n setSSR() {\n this.renderMode = 2 /* SSR */;\n }\n setSSG() {\n this.renderMode = 1 /* SSG */;\n }\n setClient() {\n this.renderMode = 0 /* CLIENT */;\n }\n};\nvar renderContext = new RenderContext();\nfunction enterComponent(temp, index) {\n componentMap.set(temp, {\n index\n });\n}\nfunction getComponentIndex(temp) {\n return componentMap.get(temp).index;\n}\n\n// src/lifecycle-context.ts\nvar _LifecycleContext = class _LifecycleContext {\n constructor() {\n this.hooks = {\n mounted: /* @__PURE__ */ new Set(),\n destroy: /* @__PURE__ */ new Set()\n };\n }\n addEventListener() {\n }\n removeEventListener() {\n }\n addHook(hook, cb) {\n var _a;\n (_a = this.hooks[hook]) == null ? void 0 : _a.add(cb);\n }\n getContext(context) {\n return _LifecycleContext.context[context];\n }\n setContext(context, value) {\n _LifecycleContext.context[context] = value;\n }\n initRef() {\n _LifecycleContext.ref = this;\n }\n removeRef() {\n _LifecycleContext.ref = null;\n }\n clearHooks() {\n Object.values(this.hooks).forEach((set) => set.clear());\n }\n};\n// current context ref\n_LifecycleContext.ref = null;\n_LifecycleContext.context = {};\nvar LifecycleContext = _LifecycleContext;\n\n// src/ssg-node.ts\nfunction isSSGNode(node) {\n return node instanceof SSGNode;\n}\nvar componentIndex = 1;\nvar SSGNode = class extends LifecycleContext {\n constructor(template, props = {}, key) {\n super();\n this.template = template;\n this.props = props;\n this.key = key;\n enterComponent(template, componentIndex);\n if (isArray(this.template)) {\n const PLACEHOLDER = \" __PLACEHOLDER__ \";\n const htmlString = this.template.join(PLACEHOLDER);\n const processedString = htmlString.replaceAll(/(<[^>]+>)|([^<]+)/g, (match, p1, p2) => {\n if (p1) {\n if (p1.includes(\"data-ci\")) return match;\n return p1.replace(/<\\s*([\\da-z]+)(\\s[^>]*)?>/i, (_, tagName, attrs) => {\n return `<${tagName} data-ci=\"${componentIndex}\"${attrs || \"\"}>`;\n });\n } else if (p2 && p2.replace(PLACEHOLDER, \"\").trim()) {\n return `<!--${0 /* TEXT */}-${componentIndex}-->${p2}<!$>`;\n }\n return match;\n });\n this.template = processedString.split(PLACEHOLDER);\n }\n }\n mount() {\n this.initRef();\n const output = this.render();\n this.removeRef();\n return output;\n }\n render() {\n if (isFunction(this.template)) {\n const root = this.template(this.props);\n if (isSSGNode(root)) {\n return root.mount();\n } else {\n return String(root);\n }\n }\n const template = this.template;\n Object.keys(this.props).forEach((key) => {\n const cur = this.props[key];\n const childrens = cur.children;\n normalizeProp(cur);\n const findIndex = template.findIndex((t) => t.includes(`data-hk=\"${key}\"`));\n if (childrens) {\n childrens.forEach(([child]) => {\n componentIndex++;\n const children = renderChildren(child, cur);\n this.template[findIndex] += children;\n });\n }\n this.template[findIndex].replaceAll(\n `data-hk=\"${key}\"`,\n `data-hk=\"${key}\" ${generateAttributes(cur)}`\n );\n });\n return template.join(\"\");\n }\n};\nfunction normalizeProp(props) {\n Object.entries(props).forEach(([key, value]) => {\n if (key === \"children\") {\n delete props[key];\n } else if (isFunction(value)) {\n delete props[key];\n } else if (isSignal(value)) {\n props[key] = value.value;\n }\n });\n}\nfunction generateAttributes(props) {\n return Object.entries(props).filter(([key, value]) => key !== \"children\" && !isFunction(value)).map(([key, value]) => `${key}=\"${escape(String(value))}\"`).join(\" \");\n}\nfunction renderChildren(children, prop) {\n if (isFunction(children)) {\n return renderChildren(children(prop), prop);\n } else if (isSignal(children)) {\n return `<!--${1 /* TEXT_COMPONENT */}-${componentIndex}-->${children.value}<!$>`;\n } else if (isSSGNode(children)) {\n const childResult = children.mount();\n return isFunction(childResult) ? childResult(prop) : extractSignal(childResult);\n } else {\n return `<!--${1 /* TEXT_COMPONENT */}-${componentIndex}-->${children}<!$>`;\n }\n}\n\n// src/utils.ts\nvar selfClosingTags = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\".split(\",\");\nvar htmlTags = \"a,abbr,acronym,address,applet,area,article,aside,audio,b,base,basefont,bdi,bdo,bgsound,big,blink,blockquote,body,br,button,canvas,caption,center,cite,code,col,colgroup,command,content,data,datalist,dd,del,details,dfn,dialog,dir,div,dl,dt,em,embed,fieldset,figcaption,figure,font,footer,form,frame,frameset,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,i,iframe,image,img,input,ins,kbd,keygen,label,legend,li,link,listing,main,map,mark,marquee,menu,menuitem,meta,meter,nav,nobr,noframes,noscript,object,ol,optgroup,option,output,p,param,picture,plaintext,pre,progress,q,rb,rp,rt,rtc,ruby,s,samp,script,section,select,shadow,small,source,spacer,span,strike,strong,style,sub,summary,sup,table,tbody,td,template,textarea,tfoot,th,thead,time,title,tr,track,tt,u,ul,var,video,wbr,xmp\".split(\n \",\"\n);\nfunction coerceNode(data) {\n if (isJsxElement(data) || data instanceof Node || isSSGNode(data)) {\n return data;\n }\n const text = isFalsy(data) ? \"\" : String(data);\n return document.createTextNode(text);\n}\nfunction insertChild(parent, child, before = null) {\n const beforeNode = isJsxElement(before) ? before.firstChild : before;\n const ssr = renderContext.isSSR;\n if (isJsxElement(child)) {\n child.mount(parent, beforeNode);\n } else if (beforeNode && !ssr) {\n beforeNode.before(child);\n } else if (!ssr) {\n parent.append(child);\n }\n}\nfunction removeChild(child) {\n if (isJsxElement(child)) {\n child.unmount();\n } else {\n const parent = child.parentNode;\n if (parent) {\n child.remove();\n }\n }\n}\nfunction replaceChild(parent, node, child) {\n insertChild(parent, node, child);\n removeChild(child);\n}\nfunction setAttribute(element, attr, value) {\n if (attr === \"class\") {\n if (typeof value === \"string\") {\n element.className = value;\n } else if (isArray(value)) {\n element.className = value.join(\" \");\n } else if (value && typeof value === \"object\") {\n element.className = Object.entries(value).reduce((acc, [key, value2]) => acc + (value2 ? ` ${key}` : \"\"), \"\").trim();\n }\n return;\n }\n if (attr === \"style\") {\n if (typeof value === \"string\") {\n element.style.cssText = value;\n } else if (value && typeof value === \"object\") {\n const obj = value;\n Object.keys(obj).forEach((key) => {\n element.style.setProperty(kebabCase(key), String(obj[key]));\n });\n }\n return;\n }\n if (isFalsy(value)) {\n element.removeAttribute(attr);\n } else if (value === true) {\n element.setAttribute(attr, \"\");\n } else {\n if (element instanceof HTMLInputElement && attr === \"value\") {\n element.value = String(value);\n } else {\n element.setAttribute(attr, String(value));\n }\n }\n}\nfunction bindNode(node, setter) {\n if (node instanceof HTMLInputElement) {\n switch (node.type) {\n case \"checkbox\":\n return addEventListener(node, \"change\", () => {\n setter(Boolean(node.checked));\n });\n case \"date\":\n return addEventListener(node, \"change\", () => {\n setter(node.value ? node.value : \"\");\n });\n case \"file\":\n return addEventListener(node, \"change\", () => {\n if (node.files) {\n setter(node.files);\n }\n });\n case \"number\":\n return addEventListener(node, \"input\", () => {\n const value = Number.parseFloat(node.value);\n setter(Number.isNaN(value) ? \"\" : String(value));\n });\n case \"radio\":\n return addEventListener(node, \"change\", () => {\n setter(node.checked ? node.value : \"\");\n });\n case \"text\":\n return addEventListener(node, \"input\", () => {\n setter(node.value);\n });\n }\n }\n if (node instanceof HTMLSelectElement) {\n return addEventListener(node, \"change\", () => {\n setter(node.value);\n });\n }\n if (node instanceof HTMLTextAreaElement) {\n return addEventListener(node, \"input\", () => {\n setter(node.value);\n });\n }\n}\nPromise.resolve();\nfunction addEventListener(node, eventName, handler) {\n node.addEventListener(eventName, handler);\n return () => node.removeEventListener(eventName, handler);\n}\nfunction closeHtmlTags(input) {\n const tagStack = [];\n const output = [];\n const tagPattern = /<\\/?([\\da-z-]+)([^>]*)>/gi;\n let lastIndex = 0;\n while (true) {\n const match = tagPattern.exec(input);\n if (!match) break;\n const [fullMatch, tagName] = match;\n const isEndTag = fullMatch[1] === \"/\";\n output.push(input.slice(lastIndex, match.index));\n lastIndex = match.index + fullMatch.length;\n if (isEndTag) {\n while (tagStack.length > 0 && tagStack[tagStack.length - 1] !== tagName) {\n const unclosedTag = tagStack.pop();\n if (unclosedTag) {\n output.push(`</${unclosedTag}>`);\n }\n }\n if (tagStack.length > 0) {\n tagStack.pop();\n }\n } else if (!selfClosingTags.includes(tagName)) {\n tagStack.push(tagName);\n }\n output.push(fullMatch);\n }\n output.push(input.slice(lastIndex));\n while (tagStack.length > 0) {\n const unclosedTag = tagStack.pop();\n if (unclosedTag) {\n output.push(`</${unclosedTag}>`);\n }\n }\n return output.join(\"\");\n}\nfunction isHtmlTagName(tagName) {\n return htmlTags.includes(tagName);\n}\nfunction convertToHtmlTag(tagName) {\n if (selfClosingTags.includes(tagName)) {\n return `<${tagName}/>`;\n } else {\n return `<${tagName}></${tagName}>`;\n }\n}\nfunction extractSignal(signal) {\n if (isSignal(signal)) {\n return signal.value;\n } else {\n return signal;\n }\n}\nvar ComponentNode = class extends LifecycleContext {\n constructor(template, props, key) {\n super();\n this.template = template;\n this.props = props;\n this.key = key;\n this.emitter = /* @__PURE__ */ new Set();\n this.rootNode = null;\n this.trackMap = /* @__PURE__ */ new Map();\n this.proxyProps = props ? useReactive(\n props,\n (key2) => startsWith(key2, \"on\") || startsWith(key2, \"update\") || key2 === \"children\"\n ) : {};\n }\n get firstChild() {\n var _a, _b;\n return (_b = (_a = this.rootNode) == null ? void 0 : _a.firstChild) != null ? _b : null;\n }\n get isConnected() {\n var _a, _b;\n return (_b = (_a = this.rootNode) == null ? void 0 : _a.isConnected) != null ? _b : false;\n }\n mount(parent, before) {\n var _a, _b, _c, _d;\n if (!isFunction(this.template)) {\n throw new Error(\"Template must be a function\");\n }\n if (this.isConnected) {\n return (_b = (_a = this.rootNode) == null ? void 0 : _a.mount(parent, before)) != null ? _b : [];\n }\n this.initRef();\n this.rootNode = this.template(this.proxyProps);\n const mountedNode = (_d = (_c = this.rootNode) == null ? void 0 : _c.mount(parent, before)) != null ? _d : [];\n this.hooks.mounted.forEach((handler) => handler());\n this.patchProps(this.props);\n this.removeRef();\n return mountedNode;\n }\n unmount() {\n var _a;\n this.hooks.destroy.forEach((handler) => handler());\n this.clearHooks();\n (_a = this.rootNode) == null ? void 0 : _a.unmount();\n this.rootNode = null;\n this.proxyProps = {};\n for (const cleanup of this.emitter) {\n cleanup();\n }\n this.emitter.clear();\n }\n /**\n * Inherit props and state from another ComponentNode.\n * It will:\n * 1. Copy props from the node to this proxyProps.\n * 2. Copy the rootNode, trackMap and hooks from the node.\n * 3. Copy the props from the node to this.\n * 4. Patch props from the props passed in the constructor.\n * @param node The node to inherit from.\n */\n inheritNode(node) {\n Object.assign(this.proxyProps, node.proxyProps);\n this.rootNode = node.rootNode;\n this.trackMap = node.trackMap;\n this.hooks = node.hooks;\n const props = this.props;\n this.props = node.props;\n this.patchProps(props);\n }\n /**\n * Get a NodeTrack from the trackMap. If the track is not in the trackMap, create a new one.\n * Then, call the cleanup function to remove any previously registered hooks.\n * @param trackKey the key of the node track to get.\n * @returns the NodeTrack, cleaned up and ready to use.\n */\n getNodeTrack(trackKey) {\n let track = this.trackMap.get(trackKey);\n if (!track) {\n track = { cleanup: () => {\n } };\n this.trackMap.set(trackKey, track);\n }\n track.cleanup();\n return track;\n }\n /**\n * Patch the props of this node.\n * It will:\n * 1. Iterate the props and patch it.\n * 2. If the prop is a event handler, add a event listener to the first child of the node.\n * 3. If the prop is a ref, set the first child of the node to the ref.\n * 4. If the prop is a update handler, update the prop in the node's props.\n * 5. If the prop is a normal prop, create a signal for it and then patch it.\n * @param props The props to patch.\n */\n patchProps(props) {\n var _a, _b;\n if (!props) {\n return;\n }\n for (const [key, prop] of Object.entries(props)) {\n if (startsWith(key, \"on\") && ((_a = this.rootNode) == null ? void 0 : _a.firstChild)) {\n const event = key.slice(2).toLowerCase();\n const cleanup = addEventListener(this.rootNode.nodes[0], event, prop);\n this.emitter.add(cleanup);\n } else if (key === \"ref\") {\n prop.value = (_b = this.rootNode) == null ? void 0 : _b.firstChild;\n } else if (startsWith(key, \"update\")) {\n this.props[key] = extractSignal(prop);\n } else if (key !== \"children\") {\n const track = this.getNodeTrack(key);\n track.cleanup = useEffect(() => {\n this.proxyProps[key] = isFunction(prop) ? prop() : prop;\n });\n }\n }\n this.props = props;\n }\n};\n\n// src/patch.ts\nfunction patchChildren(parent, childrenMap, nextChildren, before) {\n const result = /* @__PURE__ */ new Map();\n const children = Array.from(childrenMap.values());\n if (children.length && nextChildren.length === 0) {\n clearChildren(parent, children, before);\n return result;\n }\n const replaces = [];\n const nextChildrenMap = mapKeys(nextChildren);\n let childIndex = 0;\n for (let [i, child] of nextChildren.entries()) {\n let currChild = children[childIndex];\n let currKey = getKey(currChild, i);\n while (currChild && !nextChildrenMap.has(currKey)) {\n removeChild(currChild);\n childrenMap.delete(currKey);\n currChild = children[++childIndex];\n currKey = getKey(currChild, i);\n }\n const key = getKey(child, i);\n const origChild = childrenMap.get(key);\n if (origChild) {\n child = patch(parent, origChild, child);\n }\n if (currChild) {\n if (currChild === origChild) {\n childIndex++;\n } else {\n const placeholder = document.createComment(\"\");\n insertChild(parent, placeholder, currChild);\n replaces.push([placeholder, child]);\n }\n } else {\n insertChild(parent, child, before);\n }\n result.set(key, child);\n }\n replaces.forEach(([placeholder, child]) => {\n replaceChild(parent, child, placeholder);\n });\n childrenMap.forEach((child, key) => {\n if (child.isConnected && !result.has(key)) {\n removeChild(child);\n }\n });\n return result;\n}\nfunction clearChildren(parent, children, before) {\n if (parent.childNodes.length === children.length + (before ? 1 : 0)) {\n parent.innerHTML = \"\";\n if (before) {\n insertChild(parent, before);\n }\n } else {\n const range = document.createRange();\n const child = children[0];\n const start = isJsxElement(child) ? child.firstChild : child;\n range.setStartBefore(start);\n if (before) {\n range.setEndBefore(before);\n } else {\n range.setEndAfter(parent);\n }\n range.deleteContents();\n }\n children.forEach((node) => {\n if (isJsxElement(node)) {\n node.unmount();\n }\n });\n}\nfunction patch(parent, node, next) {\n if (node === next) {\n return node;\n }\n if (isJsxElement(node) && isJsxElement(next) && node.template === next.template) {\n next.inheritNode(node);\n return next;\n }\n if (node instanceof Text && next instanceof Text) {\n if (node.textContent !== next.textContent) {\n node.textContent = next.textContent;\n }\n return node;\n }\n replaceChild(parent, next, node);\n return next;\n}\nfunction mapKeys(children) {\n const result = /* @__PURE__ */ new Map();\n for (const [i, child] of children.entries()) {\n const key = getKey(child, i);\n result.set(key, child);\n }\n return result;\n}\nfunction getKey(node, index) {\n if (isJsxElement(node)) {\n const jsxKey = node.key;\n if (jsxKey !== void 0 && jsxKey !== null) {\n return String(jsxKey);\n }\n }\n return `_$${index}$`;\n}\n\n// src/template-node.ts\nvar TemplateNode = class {\n constructor(template, props, key) {\n this.template = template;\n this.props = props;\n this.key = key;\n this.treeMap = /* @__PURE__ */ new Map();\n this.mounted = false;\n this.nodes = [];\n this.trackMap = /* @__PURE__ */ new Map();\n this.bindValueKeys = [];\n this.parent = null;\n this.key || (this.key = props == null ? void 0 : props.key);\n if (renderContext.isSSR) {\n this.componentIndex = getComponentIndex(this.template);\n }\n }\n addEventListener() {\n }\n removeEventListener() {\n }\n get firstChild() {\n var _a;\n return (_a = this.nodes[0]) != null ? _a : null;\n }\n // is mounted\n get isConnected() {\n return this.mounted;\n }\n mount(parent, before) {\n var _a;\n this.parent = parent;\n if (this.isConnected) {\n this.nodes.forEach((node) => insertChild(parent, node, before));\n return this.nodes;\n }\n if (isArray(this.template)) {\n this.template = createTemplate(this.template.join(\"\"));\n }\n const cloneNode = this.template.content.cloneNode(true);\n const firstChild = cloneNode.firstChild;\n if ((_a = firstChild == null ? void 0 : firstChild.hasAttribute) == null ? void 0 : _a.call(firstChild, \"_svg_\")) {\n firstChild.remove();\n firstChild == null ? void 0 : firstChild.childNodes.forEach((node) => {\n cloneNode.append(node);\n });\n }\n this.nodes = Array.from(cloneNode.childNodes);\n if (renderContext.isSSR) {\n this.mapSSGNodeTree(parent);\n } else {\n this.mapNodeTree(parent, cloneNode);\n }\n insertChild(parent, cloneNode, before);\n this.patchProps(this.props);\n this.mounted = true;\n return this.nodes;\n }\n unmount() {\n this.trackMap.forEach((track) => {\n var _a;\n (_a = track.cleanup) == null ? void 0 : _a.call(track);\n });\n this.trackMap.clear();\n this.treeMap.clear();\n this.nodes.forEach((node) => removeChild(node));\n if (!this.template.innerHTML && !this.nodes.length) {\n this.props && this.props[0].children.forEach((i) => {\n var _a;\n if (isPrimitive(i)) {\n (_a = this.parent) == null ? void 0 : _a.childNodes.forEach((node) => {\n var _a2;\n if (node.nodeType === Node.TEXT_NODE && node.textContent === `${i}`) {\n (_a2 = this.parent) == null ? void 0 : _a2.removeChild(node);\n }\n });\n } else {\n removeChild(i);\n }\n });\n }\n this.nodes = [];\n this.mounted = false;\n }\n patchProps(props) {\n if (!props) return;\n Object.entries(props).forEach(([key, value]) => {\n const index = Number(key);\n const node = this.treeMap.get(index);\n if (node) {\n this.patchProp(key, node, value, index === 0);\n }\n });\n this.props = props;\n }\n inheritNode(node) {\n this.mounted = node.mounted;\n this.nodes = node.nodes;\n this.trackMap = node.trackMap;\n this.treeMap = node.treeMap;\n const props = this.props;\n this.props = node.props;\n this.patchProps(props);\n }\n mapSSGNodeTree(parent) {\n this.treeMap.set(0, parent);\n const walk = (node) => {\n var _a;\n if (node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n if (node.nodeType === Node.COMMENT_NODE) {\n const [type, index] = ((_a = node.textContent) == null ? void 0 : _a.split(\"-\")) || \"\";\n if (0 /* TEXT */ === +type && +index === this.componentIndex) {\n const textNode = node.nextSibling;\n this.treeMap.set(+index, textNode);\n }\n } else if (node.nodeType !== Node.TEXT_NODE) {\n const { ci = \"-1\", hk } = (node == null ? void 0 : node.dataset) || {};\n if (hk && +ci === this.componentIndex) {\n this.treeMap.set(+hk, node);\n }\n }\n }\n let child = node.firstChild;\n while (child) {\n walk(child);\n child = child.nextSibling;\n }\n };\n walk(parent);\n }\n mapNodeTree(parent, tree) {\n let index = 1;\n this.treeMap.set(0, parent);\n const walk = (node) => {\n if (node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n this.treeMap.set(index++, node);\n }\n let child = node.firstChild;\n while (child) {\n walk(child);\n child = child.nextSibling;\n }\n };\n walk(tree);\n }\n /**\n * Get a NodeTrack from the trackMap. If the track is not in the trackMap, create a new one.\n * Then, call the cleanup function to remove any previously registered hooks.\n * @param trackKey the key of the node track to get.\n * @param trackLastNodes if true, the track will record the last nodes it has rendered.\n * @param isRoot if true, the track will be treated as a root track.\n * @returns the NodeTrack, cleaned up and ready to use.\n */\n getNodeTrack(trackKey, trackLastNodes, isRoot) {\n var _a;\n let track = this.trackMap.get(trackKey);\n if (!track) {\n track = { cleanup: () => {\n } };\n if (trackLastNodes) {\n track.lastNodes = /* @__PURE__ */ new Map();\n }\n if (isRoot) {\n track.isRoot = true;\n }\n this.trackMap.set(trackKey, track);\n }\n (_a = track.cleanup) == null ? void 0 : _a.call(track);\n return track;\n }\n patchProp(key, node, props, isRoot) {\n for (const attr in props) {\n if (attr === \"children\" && props.children) {\n if (!isArray(props.children)) {\n const trackKey = `${key}:${attr}:${0}`;\n const track = this.getNodeTrack(trackKey, true, isRoot);\n patchChild(track, node, props.children, null);\n } else {\n props.children.filter(Boolean).forEach((item, index) => {\n var _a;\n const [child, path] = isArray(item) ? item : [item, null];\n const before = isNil(path) ? null : (_a = this.treeMap.get(path)) != null ? _a : null;\n const trackKey = `${key}:${attr}:${index}`;\n const track = this.getNodeTrack(trackKey, true, isRoot);\n patchChild(track, node, child, before);\n });\n }\n } else if (attr === \"ref\") {\n props[attr].value = node;\n } else if (startsWith(attr, \"on\")) {\n const eventName = attr.slice(2).toLocaleLowerCase();\n const track = this.getNodeTrack(`${key}:${attr}`);\n const listener = props[attr];\n track.cleanup = addEventListener(node, eventName, listener);\n } else {\n const updateKey = `update${capitalizeFirstLetter(attr)}`;\n if (this.bindValueKeys.includes(attr)) {\n break;\n }\n if (props[updateKey]) {\n this.bindValueKeys.push(updateKey);\n }\n const track = this.getNodeTrack(`${key}:${attr}`);\n const val = props[attr];\n const triggerValue = isSignal(val) ? val : useSignal(val);\n patchAttribute(track, node, attr, triggerValue.value);\n const cleanup = useEffect(() => {\n triggerValue.value = isSignal(val) ? val.value : val;\n patchAttribute(track, node, attr, triggerValue.value);\n });\n let cleanupBind;\n if (props[updateKey] && !isComponent(attr)) {\n cleanupBind = bindNode(node, (value) => {\n props[updateKey](value);\n });\n }\n track.cleanup = () => {\n cleanup && cleanup();\n cleanupBind && cleanupBind();\n };\n }\n }\n }\n};\nfunction patchChild(track, parent, child, before) {\n if (isFunction(child)) {\n track.cleanup = useEffect(() => {\n const nextNodes = coerceArray(child()).map(coerceNode);\n if (renderContext.isSSR) {\n track.lastNodes = reconcileChildren(parent, nextNodes, before);\n } else {\n track.lastNodes = patchChildren(parent, track.lastNodes, nextNodes, before);\n }\n console.log(track.lastNodes, nextNodes);\n });\n } else {\n coerceArray(child).forEach((node, index) => {\n const newNode = coerceNode(node);\n const key = getKey(newNode, index);\n if (renderContext.isSSR) {\n track.lastNodes = reconcileChildren(parent, [newNode], before);\n } else {\n track.lastNodes.set(key, newNode);\n insertChild(parent, newNode, before);\n }\n });\n }\n}\nfunction reconcileChildren(parent, nextNodes, before) {\n const result = /* @__PURE__ */ new Map();\n const textNodes = Array.from(parent.childNodes).filter(\n (node) => {\n var _a, _b;\n return node.nodeType === Node.TEXT_NODE && ((_a = node.previousSibling) == null ? void 0 : _a.nodeType) === Node.COMMENT_NODE && ((_b = node.nextSibling) == null ? void 0 : _b.nodeType) === Node.COMMENT_NODE;\n }\n );\n nextNodes.forEach((node, index) => {\n const key = getKey(node, index);\n if (node.nodeType === Node.TEXT_NODE) {\n textNodes.forEach((ne) => {\n if (node.textContent === ne.textContent) {\n parent.replaceChild(node, ne);\n }\n });\n } else {\n insertChild(parent, node, before);\n }\n result.set(key, node);\n });\n return result;\n}\nfunction patchAttribute(track, node, attr, data) {\n const element = node;\n if (!element.setAttribute) {\n return;\n }\n if (isFunction(data)) {\n track.cleanup = useEffect(() => {\n setAttribute(element, attr, data());\n });\n } else {\n setAttribute(element, attr, data);\n }\n}\n\n// src/jsx-renderer.ts\nfunction h(template, props, key) {\n if (isString(template)) {\n if (isHtmlTagName(template)) {\n template = convertToHtmlTag(template);\n props = { \"1\": props };\n } else if (template === \"\") {\n props = { \"0\": props };\n }\n template = createTemplate(template);\n }\n return isFunction(template) ? new ComponentNode(template, props, key) : new TemplateNode(template, props, key);\n}\nfunction isComponent(node) {\n return node instanceof ComponentNode;\n}\nfunction isJsxElement(node) {\n return node instanceof ComponentNode || node instanceof TemplateNode;\n}\nfunction createTemplate(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = closeHtmlTags(html);\n return template;\n}\nfunction Fragment(props) {\n return h(\"\", {\n children: Array.isArray(props.children) ? props.children.filter(Boolean) : [props.children]\n });\n}\nfunction onMount(cb) {\n var _a;\n assertInsideComponent(\"onMounted\");\n (_a = LifecycleContext.ref) == null ? void 0 : _a.addHook(\"mounted\", cb);\n}\nfunction onDestroy(cb) {\n var _a;\n assertInsideComponent(\"onDestroy\");\n (_a = LifecycleContext.ref) == null ? void 0 : _a.addHook(\"destroy\", cb);\n}\nfunction assertInsideComponent(hookName, key) {\n if (!LifecycleContext.ref && true) {\n console.error(\n `\"${hookName}\"(key: ${isSymbol(key) ? key.toString() : key}) can only be called within the component function body\n and cannot be used in asynchronous or deferred calls.`\n );\n }\n}\nfunction useProvide(key, value) {\n var _a;\n assertInsideComponent(\"useProvide\", key);\n (_a = LifecycleContext.ref) == null ? void 0 : _a.setContext(key, value);\n}\nfunction useInject(key, defaultValue) {\n var _a;\n assertInsideComponent(\"useInject\", key);\n return ((_a = LifecycleContext.ref) == null ? void 0 : _a.getContext(key)) || defaultValue;\n}\nfunction useRef() {\n const ref = shallowSignal(null);\n return ref;\n}\n\n// src/hydration.ts\nfunction renderToString(component, props) {\n renderContext.setSSG();\n const ssrNode = new SSGNode(component, props || {});\n const html = ssrNode.mount();\n renderContext.setClient();\n return html;\n}\nfunction hydrate(component, container) {\n const rootElement = typeof container === \"string\" ? document.querySelector(container) : container;\n if (!rootElement) {\n throw new Error(`Could not find container: ${container}`);\n }\n renderContext.setSSR();\n h(component).mount(rootElement);\n renderContext.setClient();\n}\nfunction ssg(component, props) {\n if (renderContext.isSSG) {\n return new SSGNode(component, props);\n }\n return h(component, props);\n}\n\nexport { Fragment, h, hydrate, isComponent, isJsxElement, onDestroy, onMount, renderToString, ssg, createTemplate as template, useInject, useProvide, useRef };\n","import { essor_version } from './version';\n\nexport * from '@estjs/template';\nexport * from '@estjs/signal';\n\nif (globalThis) {\n globalThis.__essor_version__ = essor_version;\n}\n\nexport { essor_version };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/version.ts","../../shared/src/is.ts","../../shared/src/comm.ts","../../shared/src/name.ts","../../shared/src/console.ts","../../signal/dist/signal.dev.esm.js","../../template/dist/template.dev.esm.js","../src/index.ts"],"names":["essor_version","isObject","val","isArray","isString","isNull","isSymbol","isSet","_toString","isWeakMap","isWeakSet","isMap","isNil","x","isFunction","isFalsy","isPrimitive","isPlainObject","isStringNumber","hasOwnProperty","hasOwn","key","coerceArray","data","hasChanged","value","oldValue","noop","startsWith","str","searchString","escape","char","isExclude","exclude","kebabCase","string","match","offset","capitalizeFirstLetter","inputString","warn","msg","args","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","__spreadValues","a","b","prop","__spreadProps","queue","activePreFlushCbs","p","isFlushPending","nextTick","fn","queueJob","job","queueFlush","flushJobs","queuePreFlushCb","cb","queueCb","activeQueue","flushPreFlushCbs","createScheduler","effect","flush","activeEffect","triggerMap","reactiveMap","ReactiveSymbol","ReactivePeekSymbol","SignalValueKey","ComputedValueKey","reactiveArrayKey","ReactiveCollectionKey","ReactiveWeakCollectionKey","inBatch","batchQueue","track","target","depsMap","dep","trigger","Signal","shallow","reactive","newValue","isSignal","useSignal","useShallowSignal","shallowSignal","Computed","prev","useComputed","isComputed","useEffect","options","onTrack","onTrigger","effectFn","scheduler","signalObject","initialValues","acc","toRaw","isReactive","value2","useReactive","initialValue","shallowReactive","basicHandler","receiver","getValue","result","arrayInstrumentations","createArrayInstrumentations","instrumentations2","arr","l","res","ArrayHandler","collectionHandlers","instrumentations","weakCollectionHandlers","weakInstrumentations","hadKey","hadItems","callback","thisArg","handler","proxy","clearReactive","reactiveObj","useBatch","runBatch","useWatch","source","doWatch","INITIAL_WATCHER_VALUE","watcher","flushing","queueWatcher","flushWatchers","deep","immediate","getter","isMultiSource","s","resolveSource","baseGetter","depth","traverse","runCb","stop","seen","element","v","createOptionsStore","state","getters","actions","initState","reactiveState","subscriptions","actionCallbacks","default_actions","payload","index","store","action","createStore","storeDefinition","createClassStore","StoreClass","instance","descriptor","EVENT_PREFIX","UPDATE_PREFIX","CHILDREN_PROP","EMPTY_TEMPLATE","FRAGMENT_PROP_KEY","SINGLE_PROP_KEY","PLACEHOLDER","RenderContext","renderContext","componentMap","enterComponent","temp","getComponentIndex","_a","_LifecycleContext","hook","context","set","LifecycleContext","isSSGNode","node","SSGNode","componentIndex","template","props","htmlString","p1","p2","_","tagName","attrs","output","root","cur","children","findIndex","t","child","renderedChild","childResult","extractSignal","SELF_CLOSING_TAGS","HTML_TAGS","coerceNode","isJsxElement","text","insertChild","parent","before","beforeNode","ssr","removeChild","replaceChild","setAttribute","attr","setClassAttribute","setStyleAttribute","setGenericAttribute","bindNode","setter","addEventListener","eventName","closeHtmlTags","input","tagStack","tagPattern","lastIndex","fullMatch","isEndTag","unclosedTag","isHtmlTagName","convertToHtmlTag","signal","ComponentNode","_b","_c","_d","mountedNode","cleanup","trackKey","event","patchChildren","childrenMap","nextChildren","clearChildren","replaces","nextChildrenMap","mapKeys","childIndex","i","currChild","currKey","getKey","origChild","patch","placeholder","range","start","next","jsxKey","TemplateNode","createTemplate","cloneNode","firstChild","_a2","tree","handleNode","type","textNode","ci","hk","isRoot","item","path","listener","updateKey","triggerValue","cleanupBind","isComponent","trackLastNodes","nextNodes","newNode","textNodes","ne","h","htmlTemplate","html","Fragment","onMount","assertInsideComponent","onDestroy","hookName","useProvide","useInject","defaultValue","useRef","renderToString","component","hydrate","container","rootElement","ssg"],"mappings":"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","file":"essor.cjs.js","sourcesContent":["export const essor_version = '0.0.13';\n","import { _toString } from './comm';\n\nexport const isObject = (val: unknown): val is Record<any, any> =>\n val !== null && typeof val === 'object';\nexport function isPromise(val: any): val is Promise<any> {\n return _toString.call(val) === '[object Promise]';\n}\n\nexport const isArray = Array.isArray;\n\nexport function isString(val: unknown): val is string {\n return typeof val === 'string';\n}\nexport function isNull(val: any): val is null {\n return val === null;\n}\nexport function isSymbol(val: unknown): val is symbol {\n return typeof val === 'symbol';\n}\n\nexport function isSet(val: any): val is Set<any> {\n return _toString.call(val) === '[object Set]';\n}\nexport function isWeakMap(val: any): val is WeakMap<any, any> {\n return _toString.call(val) === '[object WeakMap]';\n}\nexport function isWeakSet(val: any): val is WeakSet<any> {\n return _toString.call(val) === '[object WeakSet]';\n}\n\nexport function isMap(val: unknown): val is Map<any, any> {\n return _toString.call(val) === '[object Map]';\n}\nexport function isNil(x: any): x is null | undefined {\n return x === null || x === undefined;\n}\n\nexport const isFunction = (val: unknown): val is Function => typeof val === 'function';\n\nexport function isFalsy(x: any): x is false | null | undefined {\n return x === false || x === null || x === undefined;\n}\n\nexport const isPrimitive = (\n val: unknown,\n): val is string | number | boolean | symbol | null | undefined =>\n ['string', 'number', 'boolean', 'symbol', 'undefined'].includes(typeof val) || isNull(val);\n\nexport function isHTMLElement(obj) {\n if (!obj) return false;\n return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n}\n\nexport const isPlainObject = (val: unknown): val is object =>\n _toString.call(val) === '[object Object]';\n\nexport type StringNumber = `${number}`;\nexport function isStringNumber(val: unknown): val is StringNumber {\n if (!isString(val)) {\n return false;\n }\n return !Number.isNaN(Number(val));\n}\n","import { isArray, isFunction, isString } from './is';\n\nexport const _toString = Object.prototype.toString;\nexport const extend = Object.assign;\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nexport const hasOwn = (val: object, key: string | symbol): key is keyof typeof val =>\n hasOwnProperty.call(val, key);\n\nexport function coerceArray<T>(data: T | T[]): T[] {\n return isArray(data) ? (data.flat() as T[]) : [data];\n}\nexport const hasChanged = (value, oldValue) =>\n value !== oldValue && (value === value || oldValue === oldValue);\nexport const noop = Function.prototype as () => void;\n\n/**\n * A function that checks if a string starts with a specific substring.\n * indexOf faster under normal circumstances\n * @see https://www.measurethat.net/Benchmarks/Show/12350/0/startswith-vs-test-vs-match-vs-indexof#latest_results_block\n\n * @param {string} str - The input string to check.\n * @param {string} searchString - The substring to check for at the beginning of the input string.\n * @return {boolean} Returns true if the input string starts with the specified substring, otherwise false.\n */\nexport function startsWith(str, searchString) {\n if (!isString(str)) {\n return false;\n }\n return str.indexOf(searchString) === 0;\n}\n\n/**\n * Escapes special HTML characters in a string.\n * @param str - The string to escape.\n * @returns The escaped string.\n */\nexport function escape(str: string): string {\n return str.replaceAll(/[\"&'<>]/g, char => {\n switch (char) {\n case '&':\n return '&';\n case '<':\n return '<';\n case '>':\n return '>';\n case '\"':\n return '"';\n case \"'\":\n return ''';\n default:\n return char;\n }\n });\n}\n\nexport type ExcludeType = ((key: string | symbol) => boolean) | (string | symbol)[];\n\n/**\n * Checks if a key should be excluded based on the provided exclude criteria.\n * @param key - The key to check.\n * @param exclude - The exclusion criteria.\n * @returns True if the key should be excluded, otherwise false.\n */\nexport function isExclude(key: string | symbol, exclude?: ExcludeType): boolean {\n return isArray(exclude) ? exclude.includes(key) : isFunction(exclude) ? exclude(key) : false;\n}\n\n/**\n * Generates a unique random 8 character string ID.\n * The generated IDs only contain alphanumeric characters.\n * @returns A unique random 8 character string ID.\n */\nexport function generateUniqueId() {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let result = '';\n const charactersLength = characters.length;\n for (let i = 0; i < 8; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n\n/**\n * Checks if the current environment is a browser.\n * @returns True if the current environment is a browser, otherwise false.\n */\nexport function isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n","export const kebabCase = (string: string): string => {\n return string.replaceAll(/[A-Z]+/g, (match, offset) => {\n return `${offset > 0 ? '-' : ''}${match.toLocaleLowerCase()}`;\n });\n};\n\nexport const camelCase = (str: string): string => {\n const s = str.replaceAll(/[\\s_-]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''));\n return s[0].toLowerCase() + s.slice(1);\n};\n/**\n * Capitalizes the first letter of a string.\n *\n * @param {string} inputString - The input string to capitalize the first letter.\n * @return {string} The string with the first letter capitalized.\n */\nexport const capitalizeFirstLetter = (inputString: string): string => {\n return inputString.charAt(0).toUpperCase() + inputString.slice(1);\n};\n","export function warn(msg: string, ..._args: any[]): void;\nexport function warn(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.warn.apply(console, [`[Essor warn]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function info(msg: string, ..._args: any[]): void;\nexport function info(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread, no-console\n console.info.apply(console, [`[Essor info]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function error(msg: string, ..._args: any[]): void;\nexport function error(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.error.apply(console, [`[Essor error]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n","import { isObject, warn, isExclude, isArray, isPlainObject, isSet, isMap, isWeakSet, isWeakMap, isFunction, noop, hasChanged, hasOwn, isStringNumber } from '@estjs/shared';\n\n/**\n* @estjs/signal v0.0.13\n* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>\n* @license MIT\n**/\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n\n// src/scheduler.ts\nvar queue = [];\nvar activePreFlushCbs = [];\nvar p = Promise.resolve();\nvar isFlushPending = false;\nfunction nextTick(fn) {\n return fn ? p.then(fn) : p;\n}\nfunction queueJob(job) {\n if (!queue.includes(job)) {\n queue.push(job);\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (isFlushPending) {\n return;\n }\n isFlushPending = true;\n nextTick(flushJobs);\n}\nfunction queuePreFlushCb(cb) {\n queueCb(cb, activePreFlushCbs);\n}\nfunction queueCb(cb, activeQueue) {\n if (!activeQueue.includes(cb)) {\n activeQueue.push(cb);\n queueFlush();\n }\n}\nfunction flushJobs() {\n isFlushPending = false;\n flushPreFlushCbs();\n let job;\n while (job = queue.shift()) {\n if (job) {\n job();\n }\n }\n}\nfunction flushPreFlushCbs() {\n while (activePreFlushCbs.length > 0) {\n const cb = activePreFlushCbs.shift();\n if (cb) {\n cb();\n }\n }\n}\nfunction createScheduler(effect, flush) {\n if (flush === \"sync\") {\n return () => effect();\n } else if (flush === \"pre\") {\n return () => queuePreFlushCb(effect);\n } else {\n return () => {\n nextTick(() => queueJob(effect));\n };\n }\n}\n\n// src/signal.ts\nvar activeEffect = null;\nvar triggerMap = /* @__PURE__ */ new WeakMap();\nvar reactiveMap = /* @__PURE__ */ new WeakMap();\nvar ReactiveSymbol = Symbol(\"ReactiveSymbol\" );\nvar ReactivePeekSymbol = Symbol(\"__raw\" );\nvar SignalValueKey = Symbol(\"SignalValueKey\" );\nvar ComputedValueKey = Symbol(\"ComputedValueKey\" );\nvar reactiveArrayKey = Symbol(\"ReactiveArrayKey\" );\nvar ReactiveCollectionKey = Symbol(\"ReactiveCollectionKey\" );\nvar ReactiveWeakCollectionKey = Symbol(\"ReactiveWeakCollectionKey\" );\nvar inBatch = false;\nvar batchQueue = /* @__PURE__ */ new Set();\nfunction track(target, key) {\n if (!activeEffect) return;\n let depsMap = triggerMap.get(target);\n if (!depsMap) {\n depsMap = /* @__PURE__ */ new Map();\n triggerMap.set(target, depsMap);\n }\n let dep = depsMap.get(key);\n if (!dep) {\n dep = /* @__PURE__ */ new Set();\n depsMap.set(key, dep);\n }\n dep.add(activeEffect);\n}\nfunction trigger(target, key) {\n const depsMap = triggerMap.get(target);\n if (!depsMap) return;\n const dep = depsMap.get(key);\n if (dep) {\n dep.forEach((effect) => {\n if (hasOwn(effect, \"active\") && !effect.active) {\n dep.delete(effect);\n return;\n }\n inBatch ? batchQueue.add(effect) : effect();\n });\n }\n}\nvar Signal = class {\n /**\n * Creates a new Signal instance.\n * @param {T} value - The initial value of the Signal.\n * @param {boolean} [shallow] - Whether to create a shallow Signal.\n */\n constructor(value, shallow = false) {\n // is should be read\n //@ts-ignore\n this.__signal = true;\n this.__shallow = shallow;\n this.__value = value;\n }\n /**\n * Gets the current value of the Signal.\n * @returns {T} The current value.\n */\n get value() {\n track(this, SignalValueKey);\n if (isObject(this.__value) && !this.__shallow) {\n return reactive(this.__value);\n }\n return this.__value;\n }\n /**\n * Sets a new value for the Signal.\n * @param {T} newValue - The new value to set.\n */\n set value(newValue) {\n if (isSignal(newValue)) {\n newValue = newValue.peek();\n }\n if (hasChanged(newValue, this.__value)) {\n this.__value = newValue;\n trigger(this, SignalValueKey);\n }\n }\n /**\n * Returns the current value without triggering reactivity.\n * @returns {T} The current value.\n */\n peek() {\n return this.__value;\n }\n};\nfunction useSignal(value) {\n if (isSignal(value)) {\n return value;\n }\n return new Signal(value);\n}\nfunction useShallowSignal(value) {\n return new Signal(value, true);\n}\nfunction shallowSignal(value) {\n return new Signal(value, true);\n}\nfunction isSignal(value) {\n return !!(value && (value == null ? void 0 : value.__signal));\n}\nvar Computed = class {\n constructor(fn) {\n this.fn = fn;\n //@ts-ignore\n this.__computed = true;\n const prev = activeEffect;\n activeEffect = this.run.bind(this);\n this.__value = this.fn();\n activeEffect = prev;\n }\n /**\n * Get the current computed value without tracking it.\n */\n peek() {\n return this.__value;\n }\n /**\n * Run the computed function and update the value if it has changed.\n */\n run() {\n const newValue = this.fn();\n if (hasChanged(newValue, this.__value)) {\n this.__value = newValue;\n trigger(this, ComputedValueKey);\n }\n }\n /**\n * Get the current computed value and track its usage.\n */\n get value() {\n track(this, ComputedValueKey);\n return this.__value;\n }\n};\nfunction useComputed(fn) {\n return new Computed(fn);\n}\nfunction isComputed(value) {\n return !!(value && value.__computed);\n}\nfunction useEffect(fn, options = {}) {\n const { flush = \"pre\", onTrack, onTrigger } = options;\n function effectFn() {\n const prev = activeEffect;\n activeEffect = effectFn.init ? effectFn : effectFn.scheduler;\n fn();\n onTrigger && onTrigger();\n activeEffect = prev;\n }\n const scheduler = createScheduler(effectFn, flush);\n effectFn.scheduler = scheduler;\n effectFn.init = true;\n effectFn.active = true;\n onTrack && onTrack();\n effectFn();\n return () => {\n effectFn.active = false;\n activeEffect = null;\n };\n}\nfunction signalObject(initialValues, exclude) {\n if (!initialValues || !isObject(initialValues)) {\n {\n warn(\"initialValues must be an object,will return initial value!\", initialValues);\n }\n return initialValues;\n }\n const signals = Object.entries(initialValues).reduce((acc, [key, value]) => {\n acc[key] = isExclude(key, exclude) || isSignal(value) ? value : useSignal(value);\n return acc;\n }, {});\n return signals;\n}\nfunction toRaw(value) {\n if (!value) return value;\n if (isReactive(value)) {\n return value[ReactivePeekSymbol];\n }\n if (isSignal(value)) {\n return value.peek();\n }\n if (isArray(value)) {\n return value.map((value2) => toRaw(value2));\n }\n if (isPlainObject(value)) {\n return Object.fromEntries(\n Object.entries(value).map(([key, value2]) => [key, toRaw(value2)])\n );\n }\n return value;\n}\nfunction isReactive(obj) {\n return !!(obj && typeof obj === \"object\" && obj[ReactiveSymbol]);\n}\nfunction useReactive(initialValue, exclude) {\n return reactive(initialValue, false, exclude);\n}\nfunction shallowReactive(initialValue, exclude) {\n return reactive(initialValue, true, exclude);\n}\nvar basicHandler = (shallow, exclude) => {\n return {\n get(target, key, receiver) {\n if (key === ReactiveSymbol) return true;\n if (key === ReactivePeekSymbol) return target;\n const getValue = Reflect.get(target, key, receiver);\n const value = isSignal(getValue) ? getValue.value : getValue;\n if (isExclude(key, exclude)) {\n return value;\n }\n track(target, key);\n if (isObject(value) && !shallow) {\n return reactive(value);\n }\n return value;\n },\n set(target, key, value, receiver) {\n if (isExclude(key, exclude)) {\n Reflect.set(target, key, value, receiver);\n return true;\n }\n let oldValue = Reflect.get(target, key, receiver);\n if (isSignal(oldValue)) {\n oldValue = oldValue.value;\n }\n if (isSignal(value)) {\n value = value.value;\n }\n const obj = Reflect.set(target, key, value, receiver);\n if (hasChanged(value, oldValue)) {\n trigger(target, key);\n }\n return obj;\n },\n // handle delete\n deleteProperty(target, key) {\n const oldValue = Reflect.get(target, key);\n const result = Reflect.deleteProperty(target, key);\n if (oldValue !== void 0) {\n trigger(target, key);\n }\n return result;\n }\n };\n};\nvar arrayInstrumentations = createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations2 = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations2[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, `${i}`);\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args);\n }\n return res;\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\", \"sort\", \"reverse\"].forEach((key) => {\n instrumentations2[key] = function(...args) {\n const arr = toRaw(this);\n const res = arr[key].apply(this, args);\n trigger(arr, reactiveArrayKey);\n return res;\n };\n });\n [\n \"forEach\",\n \"map\",\n \"filter\",\n \"reduce\",\n \"reduceRight\",\n \"some\",\n \"every\",\n \"find\",\n \"findIndex\",\n \"findLast\",\n \"findLastIndex\",\n \"entries\",\n \"keys\",\n \"values\"\n ].forEach((key) => {\n instrumentations2[key] = function(...args) {\n const arr = toRaw(this);\n track(arr, reactiveArrayKey);\n return arr[key].apply(this, args);\n };\n });\n return instrumentations2;\n}\nvar ArrayHandler = (shallow, exclude) => {\n return {\n get(target, key, receiver) {\n if (key === ReactiveSymbol) return true;\n if (key === ReactivePeekSymbol) return target;\n if (arrayInstrumentations.hasOwnProperty(key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const value = Reflect.get(target, key, receiver);\n if (isExclude(key, exclude)) {\n return value;\n }\n if (isStringNumber(key)) {\n track(target, key);\n }\n track(target, \"length\");\n if (isObject(value) && !shallow) {\n return reactive(value);\n }\n return value;\n },\n set(target, key, value, receiver) {\n const oldValue = Reflect.get(target, key, receiver);\n const result = Reflect.set(target, key, value, receiver);\n if (hasChanged(value, oldValue)) {\n if (isStringNumber(key)) {\n trigger(target, key);\n }\n if (key === \"length\" || !oldValue) {\n trigger(target, \"length\");\n }\n }\n return result;\n }\n };\n};\nvar collectionHandlers = {\n get(target, key) {\n if (key === ReactiveSymbol) return true;\n if (key === ReactivePeekSymbol) return target;\n if (key === Symbol.iterator || key === \"size\") {\n track(target, ReactiveCollectionKey);\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n target\n );\n }\n};\nvar weakCollectionHandlers = {\n get(target, key) {\n if (key === ReactiveSymbol) return true;\n if (key === ReactivePeekSymbol) return target;\n return Reflect.get(\n hasOwn(weakInstrumentations, key) && key in target ? weakInstrumentations : target,\n key,\n target\n );\n }\n};\nvar instrumentations = {\n get(key) {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.get(key);\n },\n set(key, value) {\n const target = toRaw(this);\n const result = target.set(key, value);\n trigger(target, ReactiveCollectionKey);\n return result;\n },\n add(value) {\n const target = toRaw(this);\n const result = target.add(value);\n trigger(target, ReactiveCollectionKey);\n return result;\n },\n has(key) {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.has(key);\n },\n delete(key) {\n const target = toRaw(this);\n const hadKey = target.has(key);\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, ReactiveCollectionKey);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size > 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, ReactiveCollectionKey);\n }\n return result;\n },\n forEach(callback, thisArg) {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n target.forEach((value, key) => {\n callback.call(thisArg, value, key, target);\n });\n },\n get size() {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.size;\n },\n keys() {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.keys();\n },\n values() {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.values();\n },\n entries() {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target.entries();\n },\n [Symbol.iterator]() {\n const target = toRaw(this);\n track(target, ReactiveCollectionKey);\n return target[Symbol.iterator]();\n }\n};\nvar weakInstrumentations = {\n get(key) {\n const target = toRaw(this);\n track(target, ReactiveWeakCollectionKey);\n return target.get(key);\n },\n set(key, value) {\n const target = toRaw(this);\n const result = target.set(key, value);\n trigger(target, ReactiveWeakCollectionKey);\n return result;\n },\n add(value) {\n const target = toRaw(this);\n const result = target.add(value);\n trigger(target, ReactiveWeakCollectionKey);\n return result;\n },\n has(key) {\n const target = toRaw(this);\n track(target, ReactiveWeakCollectionKey);\n return target.has(key);\n },\n delete(key) {\n const target = toRaw(this);\n const result = target.delete(key);\n trigger(target, ReactiveWeakCollectionKey);\n return result;\n }\n};\nfunction reactive(initialValue, shallow = false, exclude) {\n if (!isObject(initialValue)) {\n return initialValue;\n }\n if (isReactive(initialValue)) {\n return initialValue;\n }\n if (reactiveMap.has(initialValue)) {\n return reactiveMap.get(initialValue);\n }\n let handler;\n if (isArray(initialValue)) {\n track(initialValue, reactiveArrayKey);\n handler = ArrayHandler(shallow, exclude);\n } else if (isSet(initialValue) || isMap(initialValue)) {\n track(initialValue, ReactiveCollectionKey);\n handler = collectionHandlers;\n } else if (isWeakSet(initialValue) || isWeakMap(initialValue)) {\n track(initialValue, ReactiveWeakCollectionKey);\n handler = weakCollectionHandlers;\n } else {\n handler = basicHandler(shallow, exclude);\n }\n const proxy = new Proxy(initialValue, handler);\n reactiveMap.set(initialValue, proxy);\n return proxy;\n}\nfunction clearReactive(reactiveObj) {\n if (!isReactive(reactiveObj)) {\n {\n warn(\"clearReactive: argument must be a reactive object\");\n }\n return;\n }\n if (isWeakMap(reactiveObj) || isWeakSet(reactiveObj)) {\n {\n warn(\"clearReactive: WeakMap and WeakSet are not clearable\");\n }\n return;\n }\n useBatch(() => {\n if (isArray(reactiveObj)) {\n reactiveObj.length = 0;\n } else if (isSet(reactiveObj) || isMap(reactiveObj)) {\n reactiveObj.clear();\n } else if (isObject(reactiveObj)) {\n Object.keys(reactiveObj).forEach((key) => {\n delete reactiveObj[key];\n });\n }\n });\n}\nfunction useBatch(fn) {\n try {\n inBatch = true;\n fn();\n } finally {\n inBatch = false;\n runBatch();\n }\n}\nfunction runBatch() {\n if (batchQueue.size > 0) {\n batchQueue.forEach((effect) => effect());\n batchQueue.clear();\n }\n}\nfunction useWatch(source, cb, options) {\n return doWatch(source, cb, options);\n}\nvar INITIAL_WATCHER_VALUE = void 0;\nvar watcher;\nvar flushing = false;\nfunction queueWatcher(fn) {\n watcher = fn;\n if (!flushing) {\n flushing = true;\n nextTick(flushWatchers);\n }\n}\nfunction flushWatchers() {\n watcher == null ? void 0 : watcher();\n watcher = null;\n flushing = false;\n}\nfunction doWatch(source, cb, { deep, immediate } = {}) {\n let getter;\n const isMultiSource = isArray(source);\n if (isSignal(source) || isComputed(source)) {\n getter = () => source.value;\n } else if (isReactive(source)) {\n getter = () => __spreadValues({}, source);\n } else if (isMultiSource) {\n getter = () => source.map((s) => resolveSource(s));\n } else if (isFunction(source)) {\n getter = source;\n } else {\n warn(\"Invalid source type\", source);\n return noop;\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n let oldValue = isMultiSource ? Array.from({ length: source.length }).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n let runCb = false;\n const effectFn = () => {\n const newValue = getter();\n if (hasChanged(newValue, oldValue)) {\n if (immediate && cb) {\n cb(newValue, oldValue);\n oldValue = newValue;\n }\n if (runCb && cb) {\n queueWatcher(() => {\n cb(newValue, oldValue);\n oldValue = newValue;\n });\n }\n !runCb && (oldValue = newValue);\n }\n };\n const stop = useEffect(effectFn, { flush: \"sync\" });\n runCb = true;\n if (immediate) {\n effectFn();\n }\n return stop;\n}\nfunction resolveSource(s) {\n if (isSignal(s) || isComputed(s)) return s.value;\n if (isReactive(s)) return __spreadValues({}, s);\n if (isFunction(s)) return s();\n warn(\"Invalid source\", s);\n return noop;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value)) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isSignal(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (const element of value) {\n traverse(element, depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n }\n return value;\n}\n\n// src/store.ts\nfunction createOptionsStore(options) {\n const { state, getters, actions } = options;\n const initState = __spreadValues({}, state);\n const reactiveState = useReactive(state);\n const subscriptions = [];\n const actionCallbacks = [];\n const default_actions = {\n patch$(payload) {\n Object.assign(reactiveState, payload);\n subscriptions.forEach((callback) => callback(reactiveState));\n actionCallbacks.forEach((callback) => callback(reactiveState));\n },\n subscribe$(callback) {\n subscriptions.push(callback);\n },\n unsubscribe$(callback) {\n const index = subscriptions.indexOf(callback);\n if (index !== -1) {\n subscriptions.splice(index, 1);\n }\n },\n onAction$(callback) {\n actionCallbacks.push(callback);\n },\n reset$() {\n Object.assign(reactiveState, initState);\n }\n };\n const store = __spreadValues(__spreadProps(__spreadValues({}, reactiveState), {\n state: reactiveState\n }), default_actions);\n if (getters) {\n for (const key in getters) {\n const getter = getters[key];\n if (getter) {\n Object.defineProperty(store, key, {\n get() {\n return useComputed(() => getter.call(store, reactiveState)).value;\n },\n enumerable: true,\n configurable: true\n });\n }\n }\n }\n if (actions) {\n for (const key in actions) {\n const action = actions[key];\n if (action) {\n store[key] = function(...args) {\n const result = action.apply(reactiveState, args);\n actionCallbacks.forEach((callback) => callback(reactiveState));\n return result;\n };\n }\n }\n }\n return store;\n}\nfunction createStore(storeDefinition) {\n return function() {\n let options;\n if (typeof storeDefinition === \"function\") {\n options = createClassStore(storeDefinition);\n } else {\n options = storeDefinition;\n }\n const store = createOptionsStore(options);\n if (typeof storeDefinition === \"function\") {\n Object.keys(options.actions || {}).forEach((key) => {\n store[key] = options.actions[key].bind(store);\n });\n }\n return store;\n };\n}\nfunction createClassStore(StoreClass) {\n const instance = new StoreClass();\n const state = /* @__PURE__ */ Object.create(null);\n const getters = {};\n const actions = {};\n Object.getOwnPropertyNames(instance).forEach((key) => {\n state[key] = instance[key];\n });\n Object.getOwnPropertyNames(StoreClass.prototype).forEach((key) => {\n const descriptor = Object.getOwnPropertyDescriptor(StoreClass.prototype, key);\n if (descriptor) {\n if (typeof descriptor.get === \"function\") {\n getters[key] = function() {\n return descriptor.get.call(this);\n };\n } else if (typeof descriptor.value === \"function\" && key !== \"constructor\") {\n actions[key] = function(...args) {\n return descriptor.value.apply(this, args);\n };\n }\n }\n });\n return {\n state,\n getters,\n actions\n };\n}\n\nexport { clearReactive, createStore, isComputed, isReactive, isSignal, shallowReactive, shallowSignal, signalObject, toRaw, useBatch, useComputed, useEffect, useReactive, useShallowSignal, useSignal, useWatch };\n","import { isString, isFunction, isArray, isSymbol, escape, startsWith, isPrimitive, isNil, capitalizeFirstLetter, coerceArray, isFalsy, kebabCase } from '@estjs/shared';\nimport { shallowSignal, isSignal, useReactive, useEffect, useSignal } from '@estjs/signal';\n\n/**\n* @estjs/template v0.0.13\n* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>\n* @license MIT\n**/\n\n\n// src/shared-config.ts\nvar EVENT_PREFIX = \"on\";\nvar UPDATE_PREFIX = \"update\";\nvar CHILDREN_PROP = \"children\";\nvar EMPTY_TEMPLATE = \"\";\nvar FRAGMENT_PROP_KEY = \"0\";\nvar SINGLE_PROP_KEY = \"1\";\nvar PLACEHOLDER = \" __PLACEHOLDER__ \";\nvar RenderContext = class {\n constructor() {\n this.renderMode = 0 /* CLIENT */;\n }\n // Getter to check if the current mode is SSG\n get isSSG() {\n return this.renderMode === 1 /* SSG */;\n }\n // Getter to check if the current mode is SSR\n get isSSR() {\n return this.renderMode === 2 /* SSR */;\n }\n // Getter to check if the current mode is Client\n get isClient() {\n return this.renderMode === 0 /* CLIENT */;\n }\n // Set render mode to SSR\n setSSR() {\n this.renderMode = 2 /* SSR */;\n }\n // Set render mode to SSG\n setSSG() {\n this.renderMode = 1 /* SSG */;\n }\n // Set render mode to Client\n setClient() {\n this.renderMode = 0 /* CLIENT */;\n }\n};\nvar renderContext = new RenderContext();\nvar componentMap = /* @__PURE__ */ new Map();\nfunction enterComponent(temp, index) {\n componentMap.set(temp, {\n index\n });\n}\nfunction getComponentIndex(temp) {\n var _a;\n return (_a = componentMap.get(temp)) == null ? void 0 : _a.index;\n}\n\n// src/lifecycle-context.ts\nvar _LifecycleContext = class _LifecycleContext {\n constructor() {\n // Hooks for different lifecycle stages\n this.hooks = {\n mounted: /* @__PURE__ */ new Set(),\n destroy: /* @__PURE__ */ new Set()\n };\n }\n addEventListener() {\n }\n removeEventListener() {\n }\n // Add a hook for a specific lifecycle stage\n addHook(hook, cb) {\n var _a;\n (_a = this.hooks[hook]) == null ? void 0 : _a.add(cb);\n }\n // Get a value from the static context\n getContext(context) {\n return _LifecycleContext.context[context];\n }\n // Set a value in the static context\n setContext(context, value) {\n _LifecycleContext.context[context] = value;\n }\n // Initialize the static reference\n initRef() {\n _LifecycleContext.ref = this;\n }\n // Remove the static reference\n removeRef() {\n _LifecycleContext.ref = null;\n }\n // Clear all hooks\n clearHooks() {\n Object.values(this.hooks).forEach((set) => set.clear());\n }\n};\n// Static reference to the current context\n_LifecycleContext.ref = null;\n// Static context to store shared values\n_LifecycleContext.context = {};\nvar LifecycleContext = _LifecycleContext;\n\n// src/ssg-node.ts\nfunction isSSGNode(node) {\n return node instanceof SSGNode;\n}\nvar componentIndex = 1;\nvar SSGNode = class extends LifecycleContext {\n constructor(template, props = {}, key) {\n super();\n this.template = template;\n this.props = props;\n this.key = key;\n enterComponent(template, componentIndex);\n this.templates = this.processTemplate();\n }\n // Process the template and return an array of processed strings\n processTemplate() {\n if (isArray(this.template)) {\n const htmlString = this.template.join(PLACEHOLDER);\n const processedString = this.processHtmlString(htmlString);\n return processedString.split(PLACEHOLDER);\n }\n return [];\n }\n // Process HTML string by adding component index and handling text nodes\n processHtmlString(htmlString) {\n return htmlString.replaceAll(/(<[^>]+>)|([^<]+)/g, (match, p1, p2) => {\n if (p1) {\n if (p1.includes(\"data-ci\")) return match;\n return p1.replace(/<\\s*([\\da-z]+)(\\s[^>]*)?>/i, (_, tagName, attrs) => {\n return `<${tagName} data-ci=\"${componentIndex}\"${attrs || \"\"}>`;\n });\n } else if (p2 && p2.replace(PLACEHOLDER, \"\").trim()) {\n return `<!--${0 /* TEXT */}-${componentIndex}-->${p2}<!$>`;\n }\n return match;\n });\n }\n // Mount the SSGNode and return the rendered string\n mount() {\n this.initRef();\n const output = this.render();\n this.removeRef();\n return output;\n }\n // Render the SSGNode\n render() {\n if (isFunction(this.template)) {\n const root = this.template(this.props);\n if (isSSGNode(root)) {\n return root.mount();\n } else {\n return String(root);\n }\n }\n return this.renderTemplate();\n }\n // Render the template by processing props and children\n renderTemplate() {\n Object.entries(this.props).forEach(([key, cur]) => {\n const children = cur.children;\n this.normalizeProps(cur);\n const findIndex = this.templates.findIndex((t) => t.includes(`data-hk=\"${key}\"`));\n if (children) {\n this.renderChildren(children, findIndex);\n }\n this.templates[findIndex] = this.templates[findIndex].replace(\n `data-hk=\"${key}\"`,\n `data-hk=\"${key}\" ${this.generateAttributes(cur)}`\n );\n });\n return this.templates.join(\"\");\n }\n // Normalize props by removing children and handling signals\n normalizeProps(props) {\n Object.entries(props).forEach(([key, value]) => {\n if (key === \"children\") {\n delete props[key];\n } else if (isFunction(value)) {\n delete props[key];\n } else if (isSignal(value)) {\n props[key] = value.value;\n }\n });\n }\n // Generate HTML attributes string from props\n generateAttributes(props) {\n return Object.entries(props).filter(([key, value]) => key !== \"children\" && !isFunction(value)).map(([key, value]) => `${key}=\"${escape(String(value))}\"`).join(\" \");\n }\n // Render children and append them to the template\n renderChildren(children, findIndex) {\n children.forEach(([child]) => {\n componentIndex++;\n const renderedChild = this.renderChild(child);\n this.templates[findIndex] += renderedChild;\n });\n }\n // Render a single child node\n renderChild(child) {\n if (isFunction(child)) {\n return this.renderChild(child(this.props));\n } else if (isSignal(child)) {\n return `<!--${1 /* TEXT_COMPONENT */}-${componentIndex}-->${child.value}<!$>`;\n } else if (isSSGNode(child)) {\n const childResult = child.mount();\n return isFunction(childResult) ? childResult(this.props) : extractSignal(childResult);\n } else {\n return `<!--${1 /* TEXT_COMPONENT */}-${componentIndex}-->${child}<!$>`;\n }\n }\n};\n\n// src/utils.ts\nvar SELF_CLOSING_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\".split(\",\");\nvar HTML_TAGS = \"a,abbr,acronym,address,applet,area,article,aside,audio,b,base,basefont,bdi,bdo,bgsound,big,blink,blockquote,body,br,button,canvas,caption,center,cite,code,col,colgroup,command,content,data,datalist,dd,del,details,dfn,dialog,dir,div,dl,dt,em,embed,fieldset,figcaption,figure,font,footer,form,frame,frameset,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,i,iframe,image,img,input,ins,kbd,keygen,label,legend,li,link,listing,main,map,mark,marquee,menu,menuitem,meta,meter,nav,nobr,noframes,noscript,object,ol,optgroup,option,output,p,param,picture,plaintext,pre,progress,q,rb,rp,rt,rtc,ruby,s,samp,script,section,select,shadow,small,source,spacer,span,strike,strong,style,sub,summary,sup,table,tbody,td,template,textarea,tfoot,th,thead,time,title,tr,track,tt,u,ul,var,video,wbr,xmp\".split(\n \",\"\n);\nfunction coerceNode(data) {\n if (isJsxElement(data) || data instanceof Node || isSSGNode(data)) {\n return data;\n }\n const text = isFalsy(data) ? \"\" : String(data);\n return document.createTextNode(text);\n}\nfunction insertChild(parent, child, before = null) {\n const beforeNode = isJsxElement(before) ? before.firstChild : before;\n const ssr = renderContext.isSSR;\n if (isJsxElement(child)) {\n child.mount(parent, beforeNode);\n } else if (beforeNode && !ssr) {\n beforeNode.before(child);\n } else if (!ssr) {\n parent.append(child);\n }\n}\nfunction removeChild(child) {\n if (isJsxElement(child)) {\n child.unmount();\n } else {\n const parent = child.parentNode;\n if (parent) {\n child.remove();\n }\n }\n}\nfunction replaceChild(parent, node, child) {\n insertChild(parent, node, child);\n removeChild(child);\n}\nfunction setAttribute(element, attr, value) {\n if (attr === \"class\") {\n setClassAttribute(element, value);\n } else if (attr === \"style\") {\n setStyleAttribute(element, value);\n } else {\n setGenericAttribute(element, attr, value);\n }\n}\nfunction setClassAttribute(element, value) {\n if (typeof value === \"string\") {\n element.className = value;\n } else if (isArray(value)) {\n element.className = value.join(\" \");\n } else if (value && typeof value === \"object\") {\n element.className = Object.entries(value).reduce((acc, [key, value2]) => acc + (value2 ? ` ${key}` : \"\"), \"\").trim();\n }\n}\nfunction setStyleAttribute(element, value) {\n if (typeof value === \"string\") {\n element.style.cssText = value;\n } else if (value && typeof value === \"object\") {\n const obj = value;\n Object.entries(obj).forEach(([key, value2]) => {\n element.style.setProperty(kebabCase(key), String(value2));\n });\n }\n}\nfunction setGenericAttribute(element, attr, value) {\n if (isFalsy(value)) {\n element.removeAttribute(attr);\n } else if (value === true) {\n element.setAttribute(attr, \"\");\n } else {\n if (element instanceof HTMLInputElement && attr === \"value\") {\n element.value = String(value);\n } else {\n element.setAttribute(attr, String(value));\n }\n }\n}\nfunction bindNode(node, setter) {\n if (node instanceof HTMLInputElement) {\n switch (node.type) {\n case \"checkbox\":\n return addEventListener(node, \"change\", () => {\n setter(Boolean(node.checked));\n });\n case \"date\":\n return addEventListener(node, \"change\", () => {\n setter(node.value ? node.value : \"\");\n });\n case \"file\":\n return addEventListener(node, \"change\", () => {\n if (node.files) {\n setter(node.files);\n }\n });\n case \"number\":\n return addEventListener(node, \"input\", () => {\n const value = Number.parseFloat(node.value);\n setter(Number.isNaN(value) ? \"\" : String(value));\n });\n case \"radio\":\n return addEventListener(node, \"change\", () => {\n setter(node.checked ? node.value : \"\");\n });\n case \"text\":\n return addEventListener(node, \"input\", () => {\n setter(node.value);\n });\n }\n }\n if (node instanceof HTMLSelectElement) {\n return addEventListener(node, \"change\", () => {\n setter(node.value);\n });\n }\n if (node instanceof HTMLTextAreaElement) {\n return addEventListener(node, \"input\", () => {\n setter(node.value);\n });\n }\n}\nPromise.resolve();\nfunction addEventListener(node, eventName, handler) {\n node.addEventListener(eventName, handler);\n return () => node.removeEventListener(eventName, handler);\n}\nfunction closeHtmlTags(input) {\n const tagStack = [];\n const output = [];\n const tagPattern = /<\\/?([\\da-z-]+)([^>]*)>/gi;\n let lastIndex = 0;\n while (true) {\n const match = tagPattern.exec(input);\n if (!match) break;\n const [fullMatch, tagName] = match;\n const isEndTag = fullMatch[1] === \"/\";\n output.push(input.slice(lastIndex, match.index));\n lastIndex = match.index + fullMatch.length;\n if (isEndTag) {\n while (tagStack.length > 0 && tagStack[tagStack.length - 1] !== tagName) {\n const unclosedTag = tagStack.pop();\n if (unclosedTag) {\n output.push(`</${unclosedTag}>`);\n }\n }\n if (tagStack.length > 0) {\n tagStack.pop();\n }\n } else if (!SELF_CLOSING_TAGS.includes(tagName)) {\n tagStack.push(tagName);\n }\n output.push(fullMatch);\n }\n output.push(input.slice(lastIndex));\n while (tagStack.length > 0) {\n const unclosedTag = tagStack.pop();\n if (unclosedTag) {\n output.push(`</${unclosedTag}>`);\n }\n }\n return output.join(\"\");\n}\nfunction isHtmlTagName(tagName) {\n return HTML_TAGS.includes(tagName);\n}\nfunction convertToHtmlTag(tagName) {\n return SELF_CLOSING_TAGS.includes(tagName) ? `<${tagName}/>` : `<${tagName}></${tagName}>`;\n}\nfunction extractSignal(signal) {\n if (isSignal(signal)) {\n return signal.value;\n } else {\n return signal;\n }\n}\nvar ComponentNode = class extends LifecycleContext {\n constructor(template, props, key) {\n super();\n this.template = template;\n this.props = props;\n this.key = key;\n this.emitter = /* @__PURE__ */ new Set();\n this.rootNode = null;\n this.trackMap = /* @__PURE__ */ new Map();\n this.key || (this.key = props == null ? void 0 : props.key);\n this.proxyProps = this.createProxyProps(props);\n }\n // Create reactive props\n createProxyProps(props) {\n if (!props) return {};\n return useReactive(\n props,\n (key) => startsWith(key, EVENT_PREFIX) || startsWith(key, UPDATE_PREFIX) || key === CHILDREN_PROP\n );\n }\n // Getter for the first child node\n get firstChild() {\n var _a, _b;\n return (_b = (_a = this.rootNode) == null ? void 0 : _a.firstChild) != null ? _b : null;\n }\n // Getter to check if the node is connected to the DOM\n get isConnected() {\n var _a, _b;\n return (_b = (_a = this.rootNode) == null ? void 0 : _a.isConnected) != null ? _b : false;\n }\n // Method to mount the component to the DOM\n mount(parent, before) {\n var _a, _b, _c, _d;\n if (!isFunction(this.template)) {\n throw new Error(\"Template must be a function\");\n }\n if (this.isConnected) {\n return (_b = (_a = this.rootNode) == null ? void 0 : _a.mount(parent, before)) != null ? _b : [];\n }\n this.initRef();\n this.rootNode = this.template(this.proxyProps);\n const mountedNode = (_d = (_c = this.rootNode) == null ? void 0 : _c.mount(parent, before)) != null ? _d : [];\n this.callMountHooks();\n this.patchProps(this.props);\n this.removeRef();\n return mountedNode;\n }\n // Method to unmount the component from the DOM\n unmount() {\n var _a;\n this.callDestroyHooks();\n this.clearHooks();\n (_a = this.rootNode) == null ? void 0 : _a.unmount();\n this.rootNode = null;\n this.proxyProps = {};\n this.clearEmitter();\n }\n // Private method to call mount hooks\n callMountHooks() {\n this.hooks.mounted.forEach((handler) => handler());\n }\n // Private method to call destroy hooks\n callDestroyHooks() {\n this.hooks.destroy.forEach((handler) => handler());\n }\n // Private method to clear the event emitter\n clearEmitter() {\n for (const cleanup of this.emitter) {\n cleanup();\n }\n this.emitter.clear();\n }\n // Method to inherit properties from another ComponentNode\n inheritNode(node) {\n Object.assign(this.proxyProps, node.proxyProps);\n this.rootNode = node.rootNode;\n this.trackMap = node.trackMap;\n this.hooks = node.hooks;\n const props = this.props;\n this.props = node.props;\n this.patchProps(props);\n }\n // Private method to get or create a NodeTrack\n getNodeTrack(trackKey) {\n let track = this.trackMap.get(trackKey);\n if (!track) {\n track = { cleanup: () => {\n } };\n this.trackMap.set(trackKey, track);\n }\n track.cleanup();\n return track;\n }\n // Method to patch props onto the component\n patchProps(props) {\n var _a;\n if (!props) {\n return;\n }\n for (const [key, prop] of Object.entries(props)) {\n if (startsWith(key, EVENT_PREFIX) && ((_a = this.rootNode) == null ? void 0 : _a.firstChild)) {\n this.patchEventListener(key, prop);\n } else if (key === \"ref\") {\n this.patchRef(prop);\n } else if (startsWith(key, UPDATE_PREFIX)) {\n this.patchUpdateHandler(key, prop);\n } else if (key !== CHILDREN_PROP) {\n this.patchNormalProp(key, prop);\n }\n }\n this.props = props;\n }\n // Private method to patch event listeners\n patchEventListener(key, prop) {\n const event = key.slice(2).toLowerCase();\n const cleanup = addEventListener(this.rootNode.nodes[0], event, prop);\n this.emitter.add(cleanup);\n }\n // Private method to patch ref\n patchRef(prop) {\n var _a, _b;\n prop.value = (_b = (_a = this.rootNode) == null ? void 0 : _a.firstChild) != null ? _b : null;\n }\n // Private method to patch update handlers\n patchUpdateHandler(key, prop) {\n this.props[key] = extractSignal(prop);\n }\n // Private method to patch normal props\n patchNormalProp(key, prop) {\n const track = this.getNodeTrack(key);\n track.cleanup = useEffect(() => {\n this.proxyProps[key] = isFunction(prop) ? prop() : prop;\n });\n }\n};\n\n// src/patch.ts\nfunction patchChildren(parent, childrenMap, nextChildren, before) {\n const result = /* @__PURE__ */ new Map();\n const children = Array.from(childrenMap.values());\n if (children.length && nextChildren.length === 0) {\n clearChildren(parent, children, before);\n return result;\n }\n const replaces = [];\n const nextChildrenMap = mapKeys(nextChildren);\n let childIndex = 0;\n for (let [i, child] of nextChildren.entries()) {\n let currChild = children[childIndex];\n let currKey = getKey(currChild, i);\n while (currChild && !nextChildrenMap.has(currKey)) {\n removeChild(currChild);\n childrenMap.delete(currKey);\n currChild = children[++childIndex];\n currKey = getKey(currChild, i);\n }\n const key = getKey(child, i);\n const origChild = childrenMap.get(key);\n if (origChild) {\n child = patch(parent, origChild, child);\n }\n if (currChild) {\n if (currChild === origChild) {\n childIndex++;\n } else {\n const placeholder = document.createComment(\"\");\n insertChild(parent, placeholder, currChild);\n replaces.push([placeholder, child]);\n }\n } else {\n insertChild(parent, child, before);\n }\n result.set(key, child);\n }\n replaces.forEach(([placeholder, child]) => {\n replaceChild(parent, child, placeholder);\n });\n childrenMap.forEach((child, key) => {\n if (child.isConnected && !result.has(key)) {\n removeChild(child);\n }\n });\n return result;\n}\nfunction clearChildren(parent, children, before) {\n if (parent.childNodes.length === children.length + (before ? 1 : 0)) {\n parent.innerHTML = \"\";\n if (before) {\n insertChild(parent, before);\n }\n } else {\n const range = document.createRange();\n const child = children[0];\n const start = isJsxElement(child) ? child.firstChild : child;\n range.setStartBefore(start);\n if (before) {\n range.setEndBefore(before);\n } else {\n range.setEndAfter(parent);\n }\n range.deleteContents();\n }\n children.forEach((node) => {\n if (isJsxElement(node)) {\n node.unmount();\n }\n });\n}\nfunction patch(parent, node, next) {\n if (node === next) {\n return node;\n }\n if (isJsxElement(node) && isJsxElement(next) && node.template === next.template) {\n next.inheritNode(node);\n return next;\n }\n if (node instanceof Text && next instanceof Text) {\n if (node.textContent !== next.textContent) {\n node.textContent = next.textContent;\n }\n return node;\n }\n replaceChild(parent, next, node);\n return next;\n}\nfunction mapKeys(children) {\n const result = /* @__PURE__ */ new Map();\n for (const [i, child] of children.entries()) {\n const key = getKey(child, i);\n result.set(key, child);\n }\n return result;\n}\nfunction getKey(node, index) {\n if (isJsxElement(node)) {\n const jsxKey = node.key;\n if (jsxKey !== void 0 && jsxKey !== null) {\n return String(jsxKey);\n }\n }\n return `_$${index}$`;\n}\n\n// src/template-node.ts\nvar TemplateNode = class {\n constructor(template, props, key) {\n this.template = template;\n this.props = props;\n this.key = key;\n // Private properties for managing the node's state\n this.treeMap = /* @__PURE__ */ new Map();\n this.mounted = false;\n this.nodes = [];\n this.trackMap = /* @__PURE__ */ new Map();\n this.bindValueKeys = [];\n this.parent = null;\n this.key || (this.key = props == null ? void 0 : props.key);\n if (renderContext.isSSR) {\n this.componentIndex = getComponentIndex(this.template);\n }\n }\n // Getter for the first child node\n get firstChild() {\n var _a;\n return (_a = this.nodes[0]) != null ? _a : null;\n }\n // Getter to check if the node is connected to the DOM\n get isConnected() {\n return this.mounted;\n }\n // Placeholder methods for event handling\n addEventListener() {\n }\n removeEventListener() {\n }\n // Method to mount the node to the DOM\n mount(parent, before) {\n var _a;\n this.parent = parent;\n if (this.isConnected) {\n this.nodes.forEach((node) => insertChild(parent, node, before));\n return this.nodes;\n }\n if (isArray(this.template)) {\n this.template = createTemplate(this.template.join(\"\"));\n }\n const cloneNode = this.template.content.cloneNode(true);\n const firstChild = cloneNode.firstChild;\n if ((_a = firstChild == null ? void 0 : firstChild.hasAttribute) == null ? void 0 : _a.call(firstChild, \"_svg_\")) {\n firstChild.remove();\n firstChild == null ? void 0 : firstChild.childNodes.forEach((node) => {\n cloneNode.append(node);\n });\n }\n this.nodes = Array.from(cloneNode.childNodes);\n if (renderContext.isSSR) {\n this.mapSSGNodeTree(parent);\n } else {\n this.mapNodeTree(parent, cloneNode);\n }\n insertChild(parent, cloneNode, before);\n this.patchProps(this.props);\n this.mounted = true;\n return this.nodes;\n }\n // Method to unmount the node from the DOM\n unmount() {\n var _a, _b;\n this.trackMap.forEach((track) => {\n var _a2;\n (_a2 = track.cleanup) == null ? void 0 : _a2.call(track);\n });\n this.trackMap.clear();\n this.treeMap.clear();\n this.nodes.forEach((node) => removeChild(node));\n if (!this.template.innerHTML && !this.nodes.length) {\n const children = (_b = (_a = this.props) == null ? void 0 : _a[FRAGMENT_PROP_KEY]) == null ? void 0 : _b.children;\n if (children) {\n if (isArray(children)) {\n children.forEach((child) => {\n this.deleteFragmentTextNode(child);\n });\n } else {\n this.deleteFragmentTextNode(children);\n }\n }\n }\n this.nodes = [];\n this.mounted = false;\n }\n deleteFragmentTextNode(child) {\n var _a;\n if (isPrimitive(child)) {\n (_a = this.parent) == null ? void 0 : _a.childNodes.forEach((node) => {\n var _a2;\n if (node.nodeType === Node.TEXT_NODE && node.textContent === `${child}`) {\n (_a2 = this.parent) == null ? void 0 : _a2.removeChild(node);\n }\n });\n } else {\n removeChild(child);\n }\n }\n // Method to inherit properties from another TemplateNode\n inheritNode(node) {\n this.mounted = node.mounted;\n this.nodes = node.nodes;\n this.trackMap = node.trackMap;\n this.treeMap = node.treeMap;\n const props = this.props;\n this.props = node.props;\n this.patchProps(props);\n }\n // Private method to map SSG node tree\n mapSSGNodeTree(parent) {\n this.treeMap.set(0, parent);\n this.walkNodeTree(parent, this.handleSSGNode.bind(this));\n }\n // Private method to map node tree\n mapNodeTree(parent, tree) {\n let index = 1;\n this.treeMap.set(0, parent);\n const handleNode = (node) => {\n if (node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n this.treeMap.set(index++, node);\n }\n };\n this.walkNodeTree(tree, handleNode);\n }\n // Private method to walk through the node tree\n walkNodeTree(node, handler) {\n if (node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n handler(node);\n }\n let child = node.firstChild;\n while (child) {\n this.walkNodeTree(child, handler);\n child = child.nextSibling;\n }\n }\n // Private method to handle SSG nodes\n handleSSGNode(node) {\n var _a;\n if (node.nodeType === Node.COMMENT_NODE) {\n const [type, index] = ((_a = node.textContent) == null ? void 0 : _a.split(\"-\")) || [];\n if (0 /* TEXT */ === +type && +index === this.componentIndex) {\n const textNode = node.nextSibling;\n this.treeMap.set(+index, textNode);\n }\n } else if (node.nodeType !== Node.TEXT_NODE) {\n const { ci = \"-1\", hk } = (node == null ? void 0 : node.dataset) || {};\n if (hk && +ci === this.componentIndex) {\n this.treeMap.set(+hk, node);\n }\n }\n }\n // Method to patch props onto the node\n patchProps(props) {\n if (!props) return;\n Object.entries(props).forEach(([key, value]) => {\n const index = Number(key);\n const node = this.treeMap.get(index);\n if (node) {\n this.patchProp(key, node, value, index === 0);\n }\n });\n this.props = props;\n }\n // Private method to patch a single prop\n patchProp(key, node, props, isRoot) {\n if (!props) return;\n Object.entries(props).forEach(([attr, value]) => {\n if (attr === CHILDREN_PROP && value) {\n this.patchChildren(key, node, value, isRoot);\n } else if (attr === \"ref\") {\n props[attr].value = node;\n } else if (startsWith(attr, \"on\")) {\n this.patchEventListener(key, node, attr, value);\n } else {\n this.patchAttribute(key, node, attr, value);\n }\n });\n }\n // Private method to patch children\n patchChildren(key, node, children, isRoot) {\n if (!isArray(children)) {\n const trackKey = `${key}:${CHILDREN_PROP}:0`;\n const track = this.getNodeTrack(trackKey, true, isRoot);\n this.patchChild(track, node, children, null);\n } else {\n children.filter(Boolean).forEach((item, index) => {\n var _a;\n const [child, path] = isArray(item) ? item : [item, null];\n const before = isNil(path) ? null : (_a = this.treeMap.get(path)) != null ? _a : null;\n const trackKey = `${key}:${CHILDREN_PROP}:${index}`;\n const track = this.getNodeTrack(trackKey, true, isRoot);\n this.patchChild(track, node, child, before);\n });\n }\n }\n // Private method to patch event listeners\n patchEventListener(key, node, attr, listener) {\n const eventName = attr.slice(2).toLowerCase();\n const track = this.getNodeTrack(`${key}:${attr}`);\n track.cleanup = addEventListener(node, eventName, listener);\n }\n // Private method to patch attributes\n patchAttribute(key, element, attr, value) {\n var _a, _b;\n const updateKey = `update${capitalizeFirstLetter(attr)}`;\n if (this.bindValueKeys.includes(attr)) {\n return;\n }\n if ((_a = this.props) == null ? void 0 : _a[updateKey]) {\n this.bindValueKeys.push(updateKey);\n }\n const track = this.getNodeTrack(`${key}:${attr}`);\n const triggerValue = isSignal(value) ? value : useSignal(value);\n setAttribute(element, attr, triggerValue.value);\n const cleanup = useEffect(() => {\n triggerValue.value = isSignal(value) ? value.value : value;\n setAttribute(element, attr, triggerValue.value);\n });\n let cleanupBind;\n if (((_b = this.props) == null ? void 0 : _b[updateKey]) && !isComponent(attr)) {\n cleanupBind = bindNode(element, (value2) => {\n var _a2;\n (_a2 = this.props) == null ? void 0 : _a2[updateKey](value2);\n });\n }\n track.cleanup = () => {\n cleanup && cleanup();\n cleanupBind && cleanupBind();\n };\n }\n // Private method to get or create a NodeTrack\n getNodeTrack(trackKey, trackLastNodes, isRoot) {\n var _a;\n let track = this.trackMap.get(trackKey);\n if (!track) {\n track = { cleanup: () => {\n } };\n if (trackLastNodes) {\n track.lastNodes = /* @__PURE__ */ new Map();\n }\n if (isRoot) {\n track.isRoot = true;\n }\n this.trackMap.set(trackKey, track);\n }\n (_a = track.cleanup) == null ? void 0 : _a.call(track);\n return track;\n }\n // Private method to patch a child node\n patchChild(track, parent, child, before) {\n if (isFunction(child)) {\n track.cleanup = useEffect(() => {\n const nextNodes = coerceArray(child()).map(coerceNode);\n if (renderContext.isSSR) {\n track.lastNodes = this.reconcileChildren(parent, nextNodes, before);\n } else {\n track.lastNodes = patchChildren(parent, track.lastNodes, nextNodes, before);\n }\n });\n } else {\n coerceArray(child).forEach((node, index) => {\n const newNode = coerceNode(node);\n const key = getKey(newNode, index);\n if (renderContext.isSSR) {\n track.lastNodes = this.reconcileChildren(parent, [newNode], before);\n } else {\n track.lastNodes.set(key, newNode);\n insertChild(parent, newNode, before);\n }\n });\n }\n }\n // Private method to reconcile children nodes\n reconcileChildren(parent, nextNodes, before) {\n const result = /* @__PURE__ */ new Map();\n const textNodes = Array.from(parent.childNodes).filter(\n (node) => {\n var _a, _b;\n return node.nodeType === Node.TEXT_NODE && ((_a = node.previousSibling) == null ? void 0 : _a.nodeType) === Node.COMMENT_NODE && ((_b = node.nextSibling) == null ? void 0 : _b.nodeType) === Node.COMMENT_NODE;\n }\n );\n nextNodes.forEach((node, index) => {\n const key = getKey(node, index);\n if (node.nodeType === Node.TEXT_NODE) {\n textNodes.forEach((ne) => {\n if (node.textContent === ne.textContent) {\n parent.replaceChild(node, ne);\n }\n });\n } else {\n insertChild(parent, node, before);\n }\n result.set(key, node);\n });\n return result;\n }\n};\n\n// src/jsx-renderer.ts\nfunction h(template, props, key) {\n if (isString(template)) {\n if (isHtmlTagName(template)) {\n const htmlTemplate = convertToHtmlTag(template);\n props = { [SINGLE_PROP_KEY]: props };\n return new TemplateNode(createTemplate(htmlTemplate), props, key);\n } else if (template === EMPTY_TEMPLATE) {\n props = { [FRAGMENT_PROP_KEY]: props };\n return new TemplateNode(createTemplate(EMPTY_TEMPLATE), props, key);\n }\n }\n return isFunction(template) ? new ComponentNode(template, props, key) : new TemplateNode(template, props, key);\n}\nfunction isComponent(node) {\n return node instanceof ComponentNode;\n}\nfunction isJsxElement(node) {\n return node instanceof ComponentNode || node instanceof TemplateNode;\n}\nfunction createTemplate(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = closeHtmlTags(html);\n return template;\n}\nfunction Fragment(props) {\n return h(EMPTY_TEMPLATE, {\n children: isArray(props.children) ? props.children.filter(Boolean) : [props.children]\n });\n}\nfunction onMount(cb) {\n assertInsideComponent(\"onMounted\");\n LifecycleContext.ref && LifecycleContext.ref.addHook(\"mounted\", cb);\n}\nfunction onDestroy(cb) {\n assertInsideComponent(\"onDestroy\");\n LifecycleContext.ref && LifecycleContext.ref.addHook(\"destroy\", cb);\n}\nfunction assertInsideComponent(hookName, key) {\n if (!LifecycleContext.ref && true) {\n console.error(\n `\"${hookName}\"(key: ${isSymbol(key) ? key.toString() : key}) can only be called within the component function body\n and cannot be used in asynchronous or deferred calls.`\n );\n }\n}\nfunction useProvide(key, value) {\n assertInsideComponent(\"useProvide\", key);\n LifecycleContext.ref && LifecycleContext.ref.setContext(key, value);\n}\nfunction useInject(key, defaultValue) {\n var _a;\n assertInsideComponent(\"useInject\", key);\n return (_a = LifecycleContext.ref && LifecycleContext.ref.getContext(key)) != null ? _a : defaultValue;\n}\nfunction useRef() {\n return shallowSignal(null);\n}\n\n// src/server.ts\nfunction renderToString(component, props) {\n renderContext.setSSG();\n const ssrNode = new SSGNode(component, props || {});\n const html = ssrNode.mount();\n renderContext.setClient();\n return html;\n}\nfunction hydrate(component, container) {\n const rootElement = typeof container === \"string\" ? document.querySelector(container) : container;\n if (!rootElement) {\n throw new Error(`Could not find container: ${container}`);\n }\n renderContext.setSSR();\n h(component).mount(rootElement);\n renderContext.setClient();\n}\nfunction ssg(component, props) {\n if (renderContext.isSSG) {\n return new SSGNode(component, props);\n }\n return h(component, props);\n}\n\nexport { Fragment, h, hydrate, isComponent, isJsxElement, onDestroy, onMount, renderToString, ssg, createTemplate as template, useInject, useProvide, useRef };\n","import { essor_version } from './version';\n\nexport * from '@estjs/template';\nexport * from '@estjs/signal';\n\nif (globalThis) {\n globalThis.__essor_version__ = essor_version;\n}\n\nexport { essor_version };\n"]}
|