{"version":3,"file":"lithentHelper.mjs","sources":["../src/hook/state.ts","../src/hook/lstate.ts","../src/hook/computed.ts","../src/hook/effect.ts","../src/hook/store.ts","../src/hook/lstore.ts","../src/hook/cacheUpdate.ts","../src/hook/nextTickRender.ts","../src/hook/context.tsx","../src/hook/lcontext.tsx","../src/utils/children.ts","../src/lifecycle/scope.ts","../src/lifecycle/latest.ts","../src/lifecycle/lithent.ts","../src/lifecycle/activity.ts","../src/lifecycle/scopedTask.ts","../src/lifecycle/renderProtocol.ts","../src/lifecycle/renderBoundary.ts","../src/lifecycle/retainedView.ts","../src/lifecycle/host.ts"],"sourcesContent":["export type State<T> = {\n  value: T;\n  v: T;\n};\n\nexport const state = <T>(value: T, renew: () => boolean): State<T> => {\n  let result = value;\n\n  return {\n    get value() {\n      return result;\n    },\n    get v() {\n      return result;\n    },\n    set value(newValue: T) {\n      result = newValue;\n      renew();\n    },\n    set v(newValue: T) {\n      result = newValue;\n      renew();\n    },\n  };\n};\n","import { useRenew } from 'lithent';\n\nexport type State<T> = {\n  value: T;\n  v: T;\n};\n\nexport const lstate = <T>(value: T): State<T> => {\n  let result = value;\n  const renew = useRenew();\n\n  return {\n    get value() {\n      return result;\n    },\n    get v() {\n      return result;\n    },\n    set value(newValue: T) {\n      result = newValue;\n      renew();\n    },\n    set v(newValue: T) {\n      result = newValue;\n      renew();\n    },\n  };\n};\n","export type Computed<T> = {\n  readonly value: T;\n  readonly v: T;\n};\n\nexport const computed = <T>(value: () => T): Computed<T> => {\n  let result = value;\n\n  return {\n    get value() {\n      return result();\n    },\n    get v() {\n      return result();\n    },\n    set value(_newValue: T) {\n      throw new Error(`You can't change 'computed'`);\n    },\n    set v(_newValue: T) {\n      throw new Error(`You can't change 'computed'`);\n    },\n  };\n};\n","import { updateCallback, mountCallback } from 'lithent';\n\nexport const effect = (\n  forward: () => (() => void) | void,\n  backward: () => (() => void) | void = () => {},\n  dependencies: () => any[] = () => []\n) => {\n  mountCallback(() => {\n    forward();\n\n    return backward;\n  });\n\n  updateCallback(() => {\n    if (backward) {\n      backward();\n    }\n\n    return forward;\n  }, dependencies);\n};\n","import * as lithentCore from 'lithent';\n/**\n * DataStore\n */\nexport type StoreRenew<T> = (store: T) => boolean | AbortSignal | void;\nexport type StoreType<V> = V extends { [key: string]: unknown }\n  ? V\n  : { value: V };\nexport type StoreObserver<T> = (store: T) => unknown[];\nexport type StoreOptions = { cache?: boolean };\n\ntype Run = () => boolean | AbortSignal | void;\ntype StoreValue = {\n  [key: string | symbol]: Set<Run>;\n};\n\nconst DEFAULT_OPTION = { cache: true };\n\n/**\n * 리액티브 스토어 생성\n */\nexport function store<V>(initialValue: V) {\n  type T = StoreType<V>;\n\n  const allowInitSetting = { value: false };\n  const isObjectTypeValue =\n    !Array.isArray(initialValue) &&\n    typeof initialValue === 'object' &&\n    initialValue !== null;\n  const value: T = isObjectTypeValue\n    ? (initialValue as T)\n    : ({ value: initialValue } as T);\n\n  const storeRenderList: Set<Run> = new Set();\n  const storeRenderObserveList: StoreValue[] = [];\n  const cacheMap = new WeakMap<StoreRenew<T>, T>();\n\n  return (\n    renew?: StoreRenew<T>,\n    makeObserver?: StoreObserver<T> | null,\n    userOption?: StoreOptions\n  ) => {\n    const { cache } = Object.assign({}, DEFAULT_OPTION, userOption || {});\n\n    if (cache && renew && cacheMap.has(renew)) {\n      return cacheMap.get(renew)!;\n    }\n\n    const storeRenderObserveMap: StoreValue = {};\n    const allowedAccessProp: Set<keyof T> = new Set();\n\n    let makedProxy: { value: null | T } = { value: null };\n    let run: Run = () => {};\n\n    storeRenderObserveList.push(storeRenderObserveMap);\n\n    if (renew && makeObserver) {\n      run = () => renew(makedProxy.value!);\n      makedProxy.value = updater<T>(\n        value,\n        allowInitSetting,\n        storeRenderList,\n        allowedAccessProp,\n        storeRenderObserveList,\n        run,\n        storeRenderObserveMap\n      );\n      allowInitSetting.value = true;\n      makeObserver(makedProxy.value);\n      allowInitSetting.value = false;\n    }\n\n    if (!makedProxy.value) {\n      makedProxy.value = updater<T>(\n        value,\n        allowInitSetting,\n        storeRenderList,\n        allowedAccessProp,\n        storeRenderObserveList\n      );\n\n      if (renew) {\n        run = () => renew(makedProxy.value!);\n        storeRenderList.add(run);\n      }\n    }\n\n    if (renew) {\n      runFirstEmit<T>(\n        run,\n        storeRenderList,\n        storeRenderObserveMap,\n        allowedAccessProp\n      );\n      cacheMap.set(renew, makedProxy.value);\n    }\n\n    return makedProxy.value;\n  };\n}\n\n/**\n * Tells a concurrent-capable core that store data moved (D6, DC-5).\n *\n * Deliberately a namespace lookup rather than a named import: this file has to\n * keep building and running against the frozen base core, which does not export\n * `notifyStoreWrite`. A named import would fail to link there; a missing\n * property on a module namespace is simply `undefined`, so on the base core\n * this is a no-op and the store behaves exactly as it always did.\n */\nconst notifyStoreWrite = () =>\n  (lithentCore as { notifyStoreWrite?: () => void }).notifyStoreWrite?.();\n\n/**\n * 사용자에게 노출될 프록시 개체 생성\n */\nfunction updater<T extends { [key: string | symbol]: unknown }>(\n  value: T,\n  allowInitSetting: { value: boolean },\n  storeRenderList: Set<Run>,\n  allowedAccessProp: Set<keyof T>,\n  storeRenderObserveList: StoreValue[],\n  run?: Run,\n  storeRenderObserveMap?: StoreValue\n) {\n  const result = new Proxy(value, {\n    get(target: T, prop: keyof T) {\n      if (run && storeRenderObserveMap && allowInitSetting.value) {\n        storeRenderObserveMap[prop] ??= new Set();\n\n        if (!storeRenderObserveMap[prop].has(run)) {\n          storeRenderObserveMap[prop].add(run);\n          allowedAccessProp.add(prop);\n        }\n      }\n\n      return target[prop];\n    },\n    set(target, prop: keyof T, value) {\n      if (target[prop] === value) {\n        return true;\n      }\n\n      target[prop] = value;\n\n      notifyStoreWrite();\n      execDependentCallbacks(storeRenderList, storeRenderObserveList, prop);\n\n      return true;\n    },\n  });\n\n  return result;\n}\n\n/**\n * 값 변경시 의존성이 있는 콜백을 찾아서 실행\n */\nfunction execDependentCallbacks<T>(\n  storeRenderList: Set<Run>,\n  storeRenderObserveList: StoreValue[] = [],\n  prop: keyof T\n) {\n  const trashCollections: Set<Run> = new Set();\n\n  // trashCollections.push(...runWithtrashCollectUnit(storeRenderList));\n  runWithtrashCollectUnit(storeRenderList).forEach(value =>\n    trashCollections.add(value)\n  );\n\n  (storeRenderObserveList || []).forEach(storeRenderObserveMap => {\n    const renderObserveList: Set<Run> =\n      storeRenderObserveMap[prop] || new Set<Run>();\n\n    runWithtrashCollectUnit(renderObserveList).forEach(value =>\n      trashCollections.add(value)\n    );\n\n    removeTrashCollect(trashCollections, renderObserveList);\n  });\n\n  removeTrashCollect(trashCollections, storeRenderList);\n}\n\n/**\n * 의미 없어진 구독 콜백 제거\n */\nfunction removeTrashCollect(trashCollections: Set<Run>, targetList: Set<Run>) {\n  trashCollections.forEach(deleteTarget => {\n    targetList.delete(deleteTarget);\n  });\n}\n\n/**\n * 단발성 구독 함수는 한번 실행 하고 제거\n */\nfunction runWithtrashCollectUnit(storeRenderList: Set<Run>) {\n  const trashes: Run[] = [];\n  storeRenderList.forEach(run => {\n    if (run() === false) {\n      trashes.push(run);\n    }\n  });\n  return trashes;\n}\n\n/**\n * 구독이 처음 실행되면 abort 이벤트 수집하여 바인딩\n */\nfunction runFirstEmit<T>(\n  run: () => boolean | void | AbortSignal,\n  storeRenderList: Set<Run>,\n  storeRenderObserveMap: StoreValue,\n  allowedAccessProp: Set<keyof T>\n) {\n  const renewResult = run();\n\n  if (renewResult instanceof AbortSignal) {\n    renewResult.addEventListener('abort', () => {\n      const renderObserveList: StoreValue = storeRenderObserveMap || {};\n\n      storeRenderList.delete(run);\n\n      Object.entries(renderObserveList).forEach(([key, item]) => {\n        item.delete(run);\n        allowedAccessProp.delete(key as keyof T);\n      });\n    });\n  }\n}\n","import { useRenew } from 'lithent';\nimport * as lithentCore from 'lithent';\n\n/**\n * DataStore for lmount components\n */\nexport type StoreRenew<T> = (store: T) => boolean | AbortSignal | void;\nexport type StoreType<V> = V extends { [key: string]: unknown }\n  ? V\n  : { value: V };\nexport type StoreObserver<T> = (store: T) => unknown[];\nexport type StoreOptions = { cache?: boolean };\n\ntype Run = () => boolean | AbortSignal | void;\ntype StoreValue = {\n  [key: string | symbol]: Set<Run>;\n};\n\nconst DEFAULT_OPTION = { cache: true };\n\n/**\n * 리액티브 스토어 생성 (lmount 전용)\n */\nexport function lstore<V>(initialValue: V) {\n  type T = StoreType<V>;\n\n  const allowInitSetting = { value: false };\n  const isObjectTypeValue =\n    !Array.isArray(initialValue) &&\n    typeof initialValue === 'object' &&\n    initialValue !== null;\n  const value: T = isObjectTypeValue\n    ? (initialValue as T)\n    : ({ value: initialValue } as T);\n\n  const storeRenderList: Set<Run> = new Set();\n  const storeRenderObserveList: StoreValue[] = [];\n  const cacheMap = new WeakMap<StoreRenew<T>, T>();\n\n  const internalStore = (\n    renew?: StoreRenew<T>,\n    makeObserver?: StoreObserver<T> | null,\n    userOption?: StoreOptions\n  ) => {\n    const { cache } = Object.assign({}, DEFAULT_OPTION, userOption || {});\n\n    if (cache && renew && cacheMap.has(renew)) {\n      return cacheMap.get(renew)!;\n    }\n\n    const storeRenderObserveMap: StoreValue = {};\n    const allowedAccessProp: Set<keyof T> = new Set();\n\n    let makedProxy: { value: null | T } = { value: null };\n    let run: Run = () => {};\n\n    storeRenderObserveList.push(storeRenderObserveMap);\n\n    if (renew && makeObserver) {\n      run = () => renew(makedProxy.value!);\n      makedProxy.value = updater<T>(\n        value,\n        allowInitSetting,\n        storeRenderList,\n        allowedAccessProp,\n        storeRenderObserveList,\n        run,\n        storeRenderObserveMap\n      );\n      allowInitSetting.value = true;\n      makeObserver(makedProxy.value);\n      allowInitSetting.value = false;\n    }\n\n    if (!makedProxy.value) {\n      makedProxy.value = updater<T>(\n        value,\n        allowInitSetting,\n        storeRenderList,\n        allowedAccessProp,\n        storeRenderObserveList\n      );\n\n      if (renew) {\n        run = () => renew(makedProxy.value!);\n        storeRenderList.add(run);\n      }\n    }\n\n    if (renew) {\n      runFirstEmit<T>(\n        run,\n        storeRenderList,\n        storeRenderObserveMap,\n        allowedAccessProp\n      );\n      cacheMap.set(renew, makedProxy.value);\n    }\n\n    return makedProxy.value;\n  };\n\n  return {\n    /**\n     * 자동으로 useRenew를 사용하여 구독 (lmount 컴포넌트에서 사용)\n     * makeObserver 없으면 전체 구독, 있으면 선택적 필드만 구독\n     */\n    useStore(\n      makeObserver?: StoreObserver<T> | null,\n      userOption?: StoreOptions\n    ): T {\n      const renew = useRenew();\n      return internalStore(renew, makeObserver, userOption);\n    },\n\n    /**\n     * 수동으로 renew를 제공하여 구독 (mount 컴포넌트에서 사용)\n     * renew 없이 호출하면 구독 없이 현재 값만 참조\n     */\n    watch(\n      renew?: StoreRenew<T>,\n      makeObserver?: StoreObserver<T> | null,\n      userOption?: StoreOptions\n    ): T {\n      return internalStore(renew, makeObserver, userOption);\n    },\n  };\n}\n\n/**\n * Tells a concurrent-capable core that store data moved (D6, DC-5).\n *\n * Deliberately a namespace lookup rather than a named import: this file has to\n * keep building and running against the frozen base core, which does not export\n * `notifyStoreWrite`. A named import would fail to link there; a missing\n * property on a module namespace is simply `undefined`, so on the base core\n * this is a no-op and the store behaves exactly as it always did.\n */\nconst notifyStoreWrite = () =>\n  (lithentCore as { notifyStoreWrite?: () => void }).notifyStoreWrite?.();\n\n/**\n * 사용자에게 노출될 프록시 개체 생성\n */\nfunction updater<T extends { [key: string | symbol]: unknown }>(\n  value: T,\n  allowInitSetting: { value: boolean },\n  storeRenderList: Set<Run>,\n  allowedAccessProp: Set<keyof T>,\n  storeRenderObserveList: StoreValue[],\n  run?: Run,\n  storeRenderObserveMap?: StoreValue\n) {\n  const result = new Proxy(value, {\n    get(target: T, prop: keyof T) {\n      if (run && storeRenderObserveMap && allowInitSetting.value) {\n        storeRenderObserveMap[prop] ??= new Set();\n\n        if (!storeRenderObserveMap[prop].has(run)) {\n          storeRenderObserveMap[prop].add(run);\n          allowedAccessProp.add(prop);\n        }\n      }\n\n      return target[prop];\n    },\n    set(target, prop: keyof T, value) {\n      if (target[prop] === value) {\n        return true;\n      }\n\n      target[prop] = value;\n\n      notifyStoreWrite();\n      execDependentCallbacks(storeRenderList, storeRenderObserveList, prop);\n\n      return true;\n    },\n  });\n\n  return result;\n}\n\n/**\n * 값 변경시 의존성이 있는 콜백을 찾아서 실행\n */\nfunction execDependentCallbacks<T>(\n  storeRenderList: Set<Run>,\n  storeRenderObserveList: StoreValue[] = [],\n  prop: keyof T\n) {\n  const trashCollections: Set<Run> = new Set();\n\n  runWithtrashCollectUnit(storeRenderList).forEach(value =>\n    trashCollections.add(value)\n  );\n\n  (storeRenderObserveList || []).forEach(storeRenderObserveMap => {\n    const renderObserveList: Set<Run> =\n      storeRenderObserveMap[prop] || new Set<Run>();\n\n    runWithtrashCollectUnit(renderObserveList).forEach(value =>\n      trashCollections.add(value)\n    );\n\n    removeTrashCollect(trashCollections, renderObserveList);\n  });\n\n  removeTrashCollect(trashCollections, storeRenderList);\n}\n\n/**\n * 의미 없어진 구독 콜백 제거\n */\nfunction removeTrashCollect(trashCollections: Set<Run>, targetList: Set<Run>) {\n  trashCollections.forEach(deleteTarget => {\n    targetList.delete(deleteTarget);\n  });\n}\n\n/**\n * 단발성 구독 함수는 한번 실행 하고 제거\n */\nfunction runWithtrashCollectUnit(storeRenderList: Set<Run>) {\n  const trashes: Run[] = [];\n  storeRenderList.forEach(run => {\n    if (run() === false) {\n      trashes.push(run);\n    }\n  });\n  return trashes;\n}\n\n/**\n * 구독이 처음 실행되면 abort 이벤트 수집하여 바인딩\n */\nfunction runFirstEmit<T>(\n  run: () => boolean | void | AbortSignal,\n  storeRenderList: Set<Run>,\n  storeRenderObserveMap: StoreValue,\n  allowedAccessProp: Set<keyof T>\n) {\n  const renewResult = run();\n\n  if (renewResult instanceof AbortSignal) {\n    renewResult.addEventListener('abort', () => {\n      const renderObserveList: StoreValue = storeRenderObserveMap || {};\n\n      storeRenderList.delete(run);\n\n      Object.entries(renderObserveList).forEach(([key, item]) => {\n        item.delete(run);\n        allowedAccessProp.delete(key as keyof T);\n      });\n    });\n  }\n}\n","import { WDom, Props } from 'lithent';\n\nexport const cacheUpdate = (\n  checkFunction: () => unknown[],\n  updater: (props: Props) => WDom\n) => {\n  let originalDefs: unknown[] = [];\n  let originalUpdater: WDom | null = null;\n\n  return (props: Props) => {\n    const newDefs = checkFunction();\n    const isSame =\n      originalDefs.length === newDefs.length &&\n      originalDefs.every((def, index) => def === newDefs[index]);\n\n    originalDefs = newDefs;\n\n    if (isSame && originalUpdater) {\n      return originalUpdater;\n    }\n\n    const newUpdater = updater(props);\n    originalUpdater = newUpdater;\n\n    return newUpdater;\n  };\n};\n","import { render, WDom, nextTick } from 'lithent';\n\nexport const nextTickRender = (\n  wDomMaker: () => WDom,\n  wrapElement: HTMLElement | null,\n  afterElement?: HTMLElement | null\n) => {\n  let destroy = () => {};\n\n  nextTick().then(() => {\n    destroy = render(wDomMaker(), wrapElement, afterElement);\n  });\n\n  return () => destroy();\n};\n","import {\n  h,\n  Fragment,\n  mount,\n  getComponentKey,\n  getComponentSubInfo,\n  mountReadyCallback,\n} from 'lithent';\nimport type { WDom, Renew } from 'lithent';\n\nconst INJECT = Symbol('INJECT');\nconst ADDRENEW = Symbol('ADDRENEW');\n\nexport type ContextState<T> = {\n  value: T;\n  [INJECT]: (value: T) => void;\n  [ADDRENEW]: (renewFn: (newValue: T) => boolean) => boolean;\n};\n\nexport type ProviderProps<T> =\n  T extends Record<string, unknown>\n    ? { children?: any } & { [K in keyof T]: ContextState<T[K]> }\n    : never;\n\ntype ProviderComponent<T> = ReturnType<typeof mount<ProviderPropsInternal<T>>>;\n\nexport type Context<T> = {\n  Provider: ProviderComponent<T>;\n  contextState: <V>(value?: V, renew?: Renew) => ContextState<V>;\n  useContext: (\n    context: Context<T>,\n    renew: Renew,\n    subscribeKeys?: string[]\n  ) => T extends Record<string, unknown> ? ProviderProps<T> : ContextState<T>;\n};\n\nconst providerSymbol = Symbol('Provider');\n\ntype ProviderPropsInternal<T> = ProviderProps<T> & {\n  [providerSymbol]?: boolean;\n};\n\nexport function createContext<T>(): Context<T> {\n  const Provider = mount<ProviderPropsInternal<T>>(\n    (_renew, props, children: WDom[]) => {\n      // Store Provider identifier\n      props[providerSymbol] = true;\n\n      return () => <Fragment>{children}</Fragment>;\n    }\n  );\n\n  const useContext = (\n    context: Context<T>,\n    renew: Renew,\n    subscribeKeys?: string[]\n  ) => {\n    const targetProvider = context.Provider;\n\n    if (targetProvider !== Provider) {\n      throw new Error('Context mismatch: Provider does not match');\n    }\n\n    // Store compKey at the time of useContext call\n    const myCompKey = getComponentKey();\n\n    const cStateMap: Record<string, ContextState<unknown>> = {};\n\n    const createStateForKey = (key: string) => {\n      cStateMap[key] = createContextState();\n    };\n\n    // If subscribeKeys are provided, create states for those keys in advance\n    if (subscribeKeys) {\n      subscribeKeys.forEach(key => createStateForKey(key));\n    }\n\n    // Find Provider in tree (search towards parent)\n    const findProviderInTree = (\n      wdom?: WDom\n    ): ProviderPropsInternal<T> | null => {\n      if (!wdom) {\n        const vdRef =\n          myCompKey &&\n          (getComponentSubInfo(myCompKey, 'vd') as {\n            value: WDom;\n          } | null);\n        return vdRef?.value ? findProviderInTree(vdRef.value) : null;\n      }\n\n      // Check if it's a Provider\n      if (\n        wdom.compProps &&\n        (wdom.compProps as ProviderPropsInternal<T>)[providerSymbol]\n      ) {\n        return wdom.compProps as ProviderPropsInternal<T>;\n      }\n\n      // Move to parent\n      const parent = wdom.getParent?.();\n      return parent ? findProviderInTree(parent) : null;\n    };\n\n    // Find and connect to Provider after WDom tree is complete (before DOM rendering)\n    mountReadyCallback(() => {\n      const providerProps = findProviderInTree();\n\n      if (providerProps) {\n        const keysToConnect =\n          subscribeKeys ||\n          Object.keys(providerProps).filter(\n            k =>\n              typeof k === 'string' &&\n              k !== 'children' &&\n              providerProps[k as keyof ProviderPropsInternal<T>] &&\n              typeof (\n                providerProps[\n                  k as keyof ProviderPropsInternal<T>\n                ] as ContextState<unknown>\n              )[ADDRENEW] === 'function'\n          );\n\n        keysToConnect.forEach((key: string) => {\n          // Create state if it doesn't exist yet\n          if (!cStateMap[key]) {\n            createStateForKey(key);\n          }\n\n          const providerState = providerProps[\n            key as keyof ProviderPropsInternal<T>\n          ] as ContextState<unknown> | undefined;\n\n          // Skip if Provider doesn't have this key\n          if (!providerState) return;\n\n          const cState = cStateMap[key];\n\n          // Set initial value\n          cState[INJECT](providerState.value);\n\n          // 1. Synchronize Provider → Consumer\n          const wrapRenew = (newValue: unknown) => {\n            cState[INJECT](newValue);\n            return renew();\n          };\n\n          providerState[ADDRENEW](wrapRenew);\n\n          // 2. Synchronize Consumer → Provider\n          cState[ADDRENEW]((newValue: unknown) => {\n            providerState.value = newValue;\n            return true;\n          });\n        });\n\n        // Initial values are filled, so call renew() to reflect on screen\n        renew();\n      }\n    });\n\n    return cStateMap as T extends Record<string, unknown>\n      ? ProviderProps<T>\n      : ContextState<T>;\n  };\n\n  return {\n    Provider,\n    contextState: createContextState,\n    useContext,\n  };\n}\n\nconst createContextState = <T,>(value?: T, renew?: Renew): ContextState<T> => {\n  let result = value as T;\n  let renewlist: Array<(value: T) => boolean> = [];\n\n  // If renew is provided, add it to renewlist by default\n  if (renew) {\n    renewlist.push(() => {\n      return renew();\n    });\n  }\n\n  return {\n    get value() {\n      return result;\n    },\n    set value(newValue: T) {\n      result = newValue;\n      if (renewlist.length) {\n        renewlist = renewlist.filter(wrapRenew => wrapRenew(result));\n      }\n    },\n    [INJECT](newValue: T) {\n      result = newValue;\n    },\n    [ADDRENEW](wrapRenew: (value: T) => boolean) {\n      renewlist.push(wrapRenew);\n      return true;\n    },\n  };\n};\n","import {\n  h,\n  Fragment,\n  lmount,\n  getComponentKey,\n  getComponentSubInfo,\n  mountReadyCallback,\n  useRenew,\n} from 'lithent';\nimport type { WDom } from 'lithent';\n\nconst INJECT = Symbol('INJECT');\nconst ADDRENEW = Symbol('ADDRENEW');\n\nexport type ContextState<T> = {\n  value: T;\n  [INJECT]: (value: T) => void;\n  [ADDRENEW]: (renewFn: (newValue: T) => boolean) => boolean;\n};\n\nexport type ProviderProps<T> =\n  T extends Record<string, unknown>\n    ? {\n        [K in keyof T]: ContextState<T[K]>;\n      }\n    : never;\n\nexport type LContext<T> = {\n  Provider: ReturnType<typeof lmount<ProviderProps<T>>>;\n  contextState: <V>(value?: V) => ContextState<V>;\n  useContext: (\n    context: LContext<T>,\n    subscribeKeys?: string[]\n  ) => T extends Record<string, unknown> ? ProviderProps<T> : ContextState<T>;\n};\n\nconst providerSymbol = Symbol('Provider');\n\ntype ProviderPropsInternal<T> = ProviderProps<T> & {\n  [providerSymbol]?: boolean;\n};\n\nexport function createLContext<T>(): LContext<T> {\n  const Provider = lmount<ProviderPropsInternal<T>>(\n    (props, children: WDom[]) => {\n      // Store Provider identifier\n      props[providerSymbol] = true;\n\n      return () => <Fragment>{children}</Fragment>;\n    }\n  );\n\n  const useContext = (context: LContext<T>, subscribeKeys?: string[]) => {\n    const targetProvider = context.Provider;\n\n    if (targetProvider !== Provider) {\n      throw new Error('Context mismatch: Provider does not match');\n    }\n\n    // Auto use renew from useRenew hook\n    const renew = useRenew();\n\n    // Store compKey at the time of useContext call\n    const myCompKey = getComponentKey();\n\n    const cStateMap: Record<string, ContextState<unknown>> = {};\n\n    const createStateForKey = (key: string) => {\n      cStateMap[key] = createContextState();\n    };\n\n    // If subscribeKeys are provided, create states for those keys in advance\n    if (subscribeKeys) {\n      subscribeKeys.forEach(key => createStateForKey(key));\n    }\n\n    // Find Provider in tree (search towards parent)\n    const findProviderInTree = (\n      wdom?: WDom\n    ): ProviderPropsInternal<T> | null => {\n      if (!wdom) {\n        const vdRef =\n          myCompKey &&\n          (getComponentSubInfo(myCompKey, 'vd') as {\n            value: WDom;\n          } | null);\n        return vdRef?.value ? findProviderInTree(vdRef.value) : null;\n      }\n\n      // Check if it's a Provider\n      if (\n        wdom.compProps &&\n        (wdom.compProps as ProviderPropsInternal<T>)[providerSymbol]\n      ) {\n        return wdom.compProps as ProviderPropsInternal<T>;\n      }\n\n      // Move to parent\n      const parent = wdom.getParent?.();\n      return parent ? findProviderInTree(parent) : null;\n    };\n\n    // Find and connect to Provider after WDom tree is complete (before DOM rendering)\n    mountReadyCallback(() => {\n      const providerProps = findProviderInTree();\n\n      if (providerProps) {\n        const keysToConnect =\n          subscribeKeys ||\n          Object.keys(providerProps).filter(\n            k =>\n              typeof k === 'string' &&\n              k !== 'children' &&\n              providerProps[k as keyof ProviderPropsInternal<T>] &&\n              typeof (\n                providerProps[\n                  k as keyof ProviderPropsInternal<T>\n                ] as ContextState<unknown>\n              )[ADDRENEW] === 'function'\n          );\n\n        keysToConnect.forEach((key: string) => {\n          // Create state if it doesn't exist yet\n          if (!cStateMap[key]) {\n            createStateForKey(key);\n          }\n\n          const providerState = providerProps[\n            key as keyof ProviderPropsInternal<T>\n          ] as ContextState<unknown> | undefined;\n\n          // Skip if Provider doesn't have this key\n          if (!providerState) return;\n\n          const cState = cStateMap[key];\n\n          // Set initial value\n          cState[INJECT](providerState.value);\n\n          // 1. Synchronize Provider → Consumer\n          const wrapRenew = (newValue: unknown) => {\n            cState[INJECT](newValue);\n            return renew();\n          };\n\n          providerState[ADDRENEW](wrapRenew);\n\n          // 2. Synchronize Consumer → Provider\n          cState[ADDRENEW]((newValue: unknown) => {\n            providerState.value = newValue;\n            return true;\n          });\n        });\n\n        // Initial values are filled, so call renew() to reflect on screen\n        renew();\n      }\n    });\n\n    return cStateMap as T extends Record<string, unknown>\n      ? ProviderProps<T>\n      : ContextState<T>;\n  };\n\n  return {\n    Provider,\n    contextState: createContextState,\n    useContext,\n  };\n}\n\nconst createContextState = <T,>(value?: T): ContextState<T> => {\n  let result = value as T;\n  let renewlist: Array<(value: T) => boolean> = [];\n\n  // Note: No renew parameter - contextState is passive by default\n  // Consumers add their renew via ADDRENEW when subscribing\n\n  return {\n    get value() {\n      return result;\n    },\n    set value(newValue: T) {\n      result = newValue;\n      if (renewlist.length) {\n        renewlist = renewlist.filter(wrapRenew => wrapRenew(result));\n      }\n    },\n    [INJECT](newValue: T) {\n      result = newValue;\n    },\n    [ADDRENEW](wrapRenew: (value: T) => boolean) {\n      renewlist.push(wrapRenew);\n      return true;\n    },\n  };\n};\n","import type { PropChildren, PropSingleChild } from '@/utils/types';\n\n/**\n * Expose prop children as the original value when only one child exists.\n * Falls back to the original array (or undefined) in every other case.\n */\nexport const unwrapChildren = <T = unknown>(\n  children: PropChildren<T> | undefined\n): PropSingleChild<T> | PropChildren<T> | undefined => {\n  if (!children || children.length === 0) {\n    return undefined;\n  }\n\n  return children.length === 1 ? children[0] : children;\n};\n","/** Instance ownership. Creation itself starts no external work. */\nexport type Cleanup = () => void;\nexport type CleanupErrorReporter = (error: unknown) => void;\n\nexport interface OwnerScope {\n  readonly disposed: boolean;\n  own(cleanup: Cleanup): Cleanup;\n  dispose(): void;\n}\n\nexport const createOwnerScope = (): OwnerScope => {\n  let disposed = false;\n  const cleanups = new Set<Cleanup>();\n\n  const own = (cleanup: Cleanup): Cleanup => {\n    let live = true;\n    const release = () => {\n      if (!live) return;\n      live = false;\n      cleanups.delete(release);\n      cleanup();\n    };\n    if (disposed) release();\n    else cleanups.add(release);\n    return release;\n  };\n\n  return {\n    get disposed() {\n      return disposed;\n    },\n    own,\n    dispose() {\n      if (disposed) return;\n      disposed = true;\n      const pending = [...cleanups];\n      cleanups.clear();\n      const errors: unknown[] = [];\n      for (const cleanup of pending) {\n        try {\n          cleanup();\n        } catch (error) {\n          errors.push(error);\n        }\n      }\n      if (errors.length)\n        throw new AggregateError(errors, 'Owner cleanup failed');\n    },\n  };\n};\n","import type { OwnerScope } from './scope';\n\nexport interface TaskHandlers<T> {\n  success?: (value: T) => void;\n  error?: (error: unknown) => void;\n  pending?: (pending: boolean) => void;\n}\n\nexport type TaskOutcome<T> =\n  | { status: 'success'; value: T }\n  | { status: 'error'; error: unknown }\n  | { status: 'stale' };\n\nexport type TaskWork<T> = (signal: AbortSignal) => T | PromiseLike<T>;\n\nexport interface LatestTask {\n  cancel(): void;\n  run<T>(\n    work: TaskWork<T>,\n    handlers?: TaskHandlers<T>\n  ): Promise<TaskOutcome<T>>;\n}\n\n/** One latest-only group. Create separate groups for independent operations. */\nexport const createLatestTask = (\n  scope: Pick<OwnerScope, 'disposed' | 'own'>\n): LatestTask => {\n  let current: AbortController | undefined;\n\n  const cancel = () => {\n    const previous = current;\n    current = undefined;\n    previous?.abort();\n  };\n  scope.own(cancel);\n\n  return {\n    cancel,\n    async run<T>(\n      work: TaskWork<T>,\n      handlers: TaskHandlers<T> = {}\n    ): Promise<TaskOutcome<T>> {\n      if (scope.disposed) return { status: 'stale' };\n      const previous = current;\n      const controller = new AbortController();\n      current = controller;\n      // Publish the new identity before abort: abort listeners can re-enter run.\n      previous?.abort();\n      const valid = () => !scope.disposed && current === controller;\n      if (!valid()) return { status: 'stale' };\n\n      try {\n        handlers.pending?.(true);\n        if (!valid()) return { status: 'stale' };\n        let value: T;\n        try {\n          value = await work(controller.signal);\n        } catch (error) {\n          if (!valid()) return { status: 'stale' };\n          handlers.error?.(error);\n          return { status: 'error', error };\n        }\n        if (!valid()) return { status: 'stale' };\n        handlers.success?.(value);\n        return { status: 'success', value };\n      } finally {\n        if (valid()) {\n          try {\n            handlers.pending?.(false);\n          } finally {\n            // A pending observer may itself have started the next request.\n            if (current === controller) current = undefined;\n          }\n        }\n      }\n    },\n  };\n};\n","import { mountCallback } from 'lithent';\nimport { createOwnerScope } from './scope';\nimport type { CleanupErrorReporter, OwnerScope } from './scope';\n\n/** Call once in a mounter; start external work in mountCallback or events. */\nexport const useOwnerScope = (\n  reportCleanupError: CleanupErrorReporter = error => console.error(error)\n): OwnerScope => {\n  const scope = createOwnerScope();\n  mountCallback(() => () => {\n    try {\n      scope.dispose();\n    } catch (error) {\n      // Keep this component's failure from interrupting other core cleanups.\n      // A custom reporter must not throw.\n      reportCleanupError(error);\n    }\n  });\n  return scope;\n};\n","import { createOwnerScope } from './scope';\nimport type { Cleanup, OwnerScope } from './scope';\n\nexport interface Activity extends Pick<OwnerScope, 'disposed' | 'own'> {\n  readonly signal: AbortSignal;\n}\n\nexport interface ActivityScope extends OwnerScope {\n  readonly active: boolean;\n  readonly activity: Activity | undefined;\n  activate(): void;\n  deactivate(): void;\n  onActive(start: (activity: Activity) => void | Cleanup): Cleanup;\n}\n\ntype Registration = {\n  start: (activity: Activity) => void | Cleanup;\n  session?: Activity;\n  release?: Cleanup;\n};\ntype Session = Activity & Pick<OwnerScope, 'dispose'>;\n\n/** Initially inactive. Instance resources and activity resources are separate. */\nexport const createActivityScope = (): ActivityScope => {\n  const owner = createOwnerScope();\n  const registrations = new Set<Registration>();\n  let current: Session | undefined;\n  let requested = false;\n  let changing = false;\n\n  const stop = () => {\n    const previous = current;\n    current = undefined;\n    for (const entry of registrations) {\n      if (entry.session === previous) {\n        entry.session = undefined;\n        entry.release = undefined;\n      }\n    }\n    previous?.dispose();\n  };\n\n  const reconcile = () => {\n    if (changing) return;\n    changing = true;\n    const errors: unknown[] = [];\n    try {\n      while (requested && !owner.disposed) {\n        if (!current) {\n          const session = createOwnerScope();\n          const controller = new AbortController();\n          session.own(() => controller.abort());\n          current = {\n            get disposed() {\n              return session.disposed;\n            },\n            signal: controller.signal,\n            own: session.own,\n            dispose: session.dispose,\n          };\n        }\n        const session = current;\n        for (const entry of registrations) {\n          if (current !== session || !requested || owner.disposed) break;\n          if (entry.session === session) continue;\n          entry.session = session;\n          try {\n            const cleanup = entry.start(session);\n            if (cleanup) {\n              const release = session.own(cleanup);\n              if (\n                registrations.has(entry) &&\n                current === session &&\n                !session.disposed\n              )\n                entry.release = release;\n              else release();\n            }\n          } catch (error) {\n            errors.push(error);\n            requested = false;\n            try {\n              stop();\n            } catch (failure) {\n              errors.push(failure);\n            }\n            requested = false;\n            break;\n          }\n        }\n        if (current === session) break;\n      }\n    } finally {\n      changing = false;\n    }\n    if (errors.length)\n      throw new AggregateError(errors, 'Activity start failed');\n  };\n\n  const deactivate = () => {\n    requested = false;\n    const wasChanging = changing;\n    changing = true;\n    const errors: unknown[] = [];\n    try {\n      stop();\n    } catch (error) {\n      errors.push(error);\n    } finally {\n      changing = wasChanging;\n    }\n    // Re-entrant activation waits until every old cleanup has finished.\n    try {\n      reconcile();\n    } catch (error) {\n      errors.push(error);\n    }\n    if (errors.length) throw new AggregateError(errors, 'Activity stop failed');\n  };\n\n  owner.own(() => {\n    try {\n      deactivate();\n    } finally {\n      registrations.clear();\n    }\n  });\n\n  return {\n    get disposed() {\n      return owner.disposed;\n    },\n    get active() {\n      return current !== undefined;\n    },\n    get activity() {\n      return current;\n    },\n    own: owner.own,\n    dispose: owner.dispose,\n    activate() {\n      if (owner.disposed) return;\n      requested = true;\n      reconcile();\n    },\n    deactivate,\n    onActive(start) {\n      if (owner.disposed) return () => {};\n      const entry: Registration = { start };\n      registrations.add(entry);\n      const unregister = owner.own(() => {\n        registrations.delete(entry);\n        entry.release?.();\n      });\n      try {\n        reconcile();\n      } catch (error) {\n        unregister();\n        throw error;\n      }\n      return unregister;\n    },\n  };\n};\n","import { createLatestTask } from './latest';\nimport type { LatestTask, TaskHandlers, TaskOutcome, TaskWork } from './latest';\nimport type { ActivityScope } from './activity';\n\nexport type TaskLifetime = 'activity' | 'instance';\n\n/** Activity work gets a fresh group each activation; instance work survives hiding. */\nexport const createScopedTask = (\n  scope: ActivityScope,\n  lifetime: TaskLifetime = 'activity'\n): LatestTask => {\n  if (lifetime === 'instance') return createLatestTask(scope);\n  let current: LatestTask | undefined;\n  scope.onActive(activity => {\n    const task = createLatestTask(activity);\n    current = task;\n    return () => {\n      if (current === task) current = undefined;\n    };\n  });\n  return {\n    cancel() {\n      current?.cancel();\n    },\n    run<T>(\n      work: TaskWork<T>,\n      handlers: TaskHandlers<T> = {}\n    ): Promise<TaskOutcome<T>> {\n      // The session is cleared before abort listeners run, even though the\n      // onActive cleanup clearing this group runs a little later.\n      if (!scope.active || !current)\n        return Promise.resolve({ status: 'stale' });\n      return current.run(work, handlers);\n    },\n  };\n};\n","import { componentMap } from 'lithent';\nimport type { Props, WDom } from 'lithent';\n\n// Structural read of the Concurrent lifecycle capability, outside the base public types.\nexport const getRenderProtocol = () =>\n  (\n    componentMap as typeof componentMap & {\n      renderGate?: {\n        boundaryOwner?: (node: WDom) => boolean;\n        blocks?: (node: WDom) => boolean;\n        reparent?: (node: WDom) => void;\n        settle?: (key?: Props) => void;\n        beforePause: (key?: Props) => void;\n      };\n    }\n  ).renderGate;\n\nexport const supportsRenderBoundary = (): boolean => {\n  const protocol = getRenderProtocol();\n  return (\n    typeof protocol?.beforePause === 'function' &&\n    typeof protocol.settle === 'function'\n  );\n};\n","import { componentMap, getComponentKey, mountCallback } from 'lithent';\nimport type { Props, WDom } from 'lithent';\nimport { getRenderProtocol } from './renderProtocol';\n\nexport interface RenderBoundary {\n  readonly active: boolean;\n  readonly disposed: boolean;\n  pause(): void;\n  resume(): void;\n  dispose(): void;\n}\n\ntype Entry = { active: boolean; dirty: boolean };\nconst entries = new WeakMap<Props, Entry>();\nconst requested = new WeakSet<Props>();\nlet count = 0;\nlet paused = 0;\nlet memberships = new WeakMap<Props, Entry[]>();\n\n// Membership outlives a component's replaced WDOM. Cache by its stable key;\n// a retained node being reparented can change the ancestry of its descendants.\nconst reparent = () => {\n  memberships = new WeakMap();\n};\n\nconst ownersOf = (node: WDom): Entry[] => {\n  const key = node.compKey;\n  const cached = key && memberships.get(key);\n  if (cached) return cached;\n  const owners: Entry[] = [];\n  const visited = new Set<WDom>();\n  let current: WDom | undefined = node;\n  while (current && !visited.has(current)) {\n    visited.add(current);\n    const entry = current.compKey && entries.get(current.compKey);\n    if (entry) owners.push(entry);\n    current = current.getParent?.();\n  }\n  if (key) memberships.set(key, owners);\n  return owners;\n};\n\nconst blocks = (node: WDom) => {\n  if (!paused) return false;\n  let blocked = false;\n  for (const entry of ownersOf(node)) {\n    if (!entry.active) {\n      entry.dirty = true;\n      blocked = true;\n    }\n  }\n  return blocked;\n};\n\n/** Call in a mounter. Initial construction is allowed, even if inactive. */\nexport const useRenderBoundary = (initialActive = true): RenderBoundary => {\n  const key = getComponentKey();\n  const protocol = getRenderProtocol();\n  if (!protocol?.beforePause || typeof protocol.settle !== 'function')\n    throw new Error('Child freezing requires the Concurrent lifecycle core');\n  if (!key) throw new Error('Use render boundary in a component mounter');\n  if (requested.has(key))\n    throw new Error('Use one render boundary per component');\n  requested.add(key);\n  const entry: Entry = { active: initialActive, dirty: false };\n  let disposed = false;\n  let registered = false;\n  const releasePauseHooks = () => {\n    if (paused) return;\n    memberships = new WeakMap();\n    if (protocol.blocks === blocks) delete protocol.blocks;\n    if (protocol.reparent === reparent) delete protocol.reparent;\n  };\n  const dispose = () => {\n    if (disposed) return;\n    disposed = true;\n    requested.delete(key);\n    if (registered) {\n      entries.delete(key);\n      memberships = new WeakMap();\n      count--;\n      if (!entry.active) paused--;\n      releasePauseHooks();\n      if (!count && protocol.boundaryOwner === blocks)\n        delete protocol.boundaryOwner;\n    }\n  };\n  // Register only after commit: failed construction and SSR own no gate.\n  mountCallback(() => {\n    if (disposed) return;\n    if (\n      (protocol.boundaryOwner && protocol.boundaryOwner !== blocks) ||\n      (protocol.blocks && protocol.blocks !== blocks)\n    )\n      throw new Error('A different render boundary adapter is installed');\n    entries.set(key, entry);\n    memberships = new WeakMap();\n    count++;\n    if (!entry.active) paused++;\n    if (paused) {\n      protocol.blocks = blocks;\n      protocol.reparent = reparent;\n    }\n    registered = true;\n    // Reserve the adapter independently of the callbacks used by rendering.\n    protocol.boundaryOwner = blocks;\n    return dispose;\n  });\n  return {\n    get active() {\n      return !disposed && entry.active;\n    },\n    get disposed() {\n      return disposed;\n    },\n    pause() {\n      if (disposed || !entry.active) return;\n      protocol.beforePause(key);\n      entry.active = false;\n      if (registered) {\n        paused++;\n        protocol.blocks = blocks;\n        protocol.reparent = reparent;\n      }\n    },\n    resume() {\n      if (disposed || entry.active) return;\n      entry.active = true;\n      if (registered) paused--;\n      releasePauseHooks();\n      if (entry.dirty) {\n        entry.dirty = false;\n        componentMap.get(key)?.up();\n      }\n    },\n    dispose,\n  };\n};\n","import { h, mount, render } from 'lithent';\nimport type { MiddleStateWDom, Renew, WDom } from 'lithent';\nimport { createActivityScope } from './activity';\nimport type { ActivityScope } from './activity';\nimport { useRenderBoundary } from './renderBoundary';\nimport type { RenderBoundary } from './renderBoundary';\nimport { supportsRenderBoundary } from './renderProtocol';\n\nexport interface RetainedViewOptions {\n  freezeChildren?: boolean;\n}\n\nexport type RetainedViewInitializer = (\n  renew: Renew,\n  scope: ActivityScope\n) => () => MiddleStateWDom;\n\nexport interface RetainedView {\n  readonly scope: ActivityScope;\n  show(): void;\n  hide(): void;\n  dispose(): void;\n}\n\n/** Explicit retained root, initially hidden. Child freezing is opt-in. */\nexport const createRetainedView = (\n  host: HTMLElement,\n  initialize: RetainedViewInitializer,\n  options: RetainedViewOptions = {}\n): RetainedView => {\n  if (options.freezeChildren && !supportsRenderBoundary())\n    throw new Error('Child freezing requires the Concurrent lifecycle core');\n  const scope = createActivityScope();\n  const container = document.createElement('div');\n  container.hidden = true;\n  let dirty = false;\n  let queued = false;\n  let disposed = false;\n  let update!: Renew;\n  let boundary: RenderBoundary | undefined;\n\n  const renew: Renew = () => {\n    if (scope.disposed) return false;\n    dirty = true;\n    if (scope.active && !queued) {\n      queued = true;\n      queueMicrotask(() => {\n        queued = false;\n        if (scope.active && !scope.disposed && dirty) update();\n      });\n    }\n    return true;\n  };\n\n  const Root = mount(nativeRenew => {\n    update = nativeRenew;\n    if (options.freezeChildren) boundary = useRenderBoundary(false);\n    const draw = initialize(renew, scope);\n    let previous: WDom | undefined;\n    return () => {\n      if (!previous || scope.active) {\n        dirty = false;\n        // Always keep a concrete root: diff mutates its children to the\n        // resolved tree, so the cached object is the actual retained subtree.\n        previous = h('div', {}, draw()) as WDom;\n      } else {\n        // A core redraw might already be queued when hide() is called.\n        dirty = true;\n      }\n      return previous;\n    };\n  });\n\n  host.appendChild(container);\n  let destroy: () => void;\n  try {\n    destroy = render(h(Root, {}), container);\n  } catch (error) {\n    const errors = [error];\n    try {\n      scope.dispose();\n    } catch (failure) {\n      errors.push(failure);\n    } finally {\n      container.remove();\n    }\n    if (errors.length > 1)\n      throw new AggregateError(errors, 'Retained view initialization failed');\n    throw error;\n  }\n\n  return {\n    scope,\n    show() {\n      if (scope.disposed) return;\n      try {\n        scope.activate();\n      } finally {\n        container.hidden = !scope.active;\n      }\n      if (dirty) renew();\n      if (scope.active) boundary?.resume();\n    },\n    hide() {\n      boundary?.pause();\n      try {\n        scope.deactivate();\n      } finally {\n        container.hidden = !scope.active;\n      }\n    },\n    dispose() {\n      if (disposed) return;\n      disposed = true;\n      const errors: unknown[] = [];\n      try {\n        scope.dispose();\n      } catch (error) {\n        errors.push(error);\n      }\n      try {\n        destroy();\n      } catch (error) {\n        errors.push(error);\n      }\n      container.remove();\n      if (errors.length)\n        throw new AggregateError(errors, 'Retained view cleanup failed');\n    },\n  };\n};\n","import { h, mount, mountCallback, updateCallback } from 'lithent';\nimport { createRetainedView } from './retainedView';\nimport type {\n  RetainedView,\n  RetainedViewInitializer,\n  RetainedViewOptions,\n} from './retainedView';\nimport type { CleanupErrorReporter } from './scope';\nimport { useOwnerScope } from './lithent';\nimport { supportsRenderBoundary } from './renderProtocol';\n\nexport type RetainedHostProps = {\n  active?: boolean;\n};\n\n/** A committed host owns a separate retained root; removal still disposes it. */\nexport const createRetainedHost = (\n  initialize: RetainedViewInitializer,\n  reportCleanupError: CleanupErrorReporter = console.error,\n  options: RetainedViewOptions = {}\n) => {\n  if (options.freezeChildren && !supportsRenderBoundary())\n    throw new Error('Child freezing requires the Concurrent lifecycle core');\n  return mount<RetainedHostProps>((_renew, initial) => {\n    const owner = useOwnerScope(reportCleanupError);\n    const slot: { value?: HTMLElement } = {};\n    let active = initial.active === true;\n    let view: RetainedView | undefined;\n    const sync = () => {\n      if (owner.disposed) return;\n      if (active) view?.show();\n      else view?.hide();\n    };\n\n    mountCallback(() => {\n      // Defer the nested render until the outer mount queue has finished.\n      // This also guards a host removed before its deferred creation.\n      queueMicrotask(() => {\n        if (owner.disposed) return;\n        const created = createRetainedView(slot.value!, initialize, options);\n        owner.own(created.dispose);\n        view = created;\n        sync();\n      });\n    });\n    // updateCallback queues its returned function for the DOM commit.\n    updateCallback(() => sync);\n    return props => {\n      active = props.active === true;\n      return h('div', { ref: slot });\n    };\n  });\n};\n"],"names":["state","value","renew","result","newValue","lstate","useRenew","computed","_newValue","effect","forward","backward","dependencies","mountCallback","updateCallback","DEFAULT_OPTION","store","initialValue","allowInitSetting","storeRenderList","storeRenderObserveList","cacheMap","makeObserver","userOption","cache","storeRenderObserveMap","allowedAccessProp","makedProxy","run","updater","runFirstEmit","notifyStoreWrite","_a","lithentCore","target","prop","execDependentCallbacks","trashCollections","runWithtrashCollectUnit","renderObserveList","removeTrashCollect","targetList","deleteTarget","trashes","renewResult","key","item","lstore","internalStore","cacheUpdate","checkFunction","originalDefs","originalUpdater","props","newDefs","isSame","def","index","newUpdater","nextTickRender","wDomMaker","wrapElement","afterElement","destroy","nextTick","render","INJECT","ADDRENEW","providerSymbol","createContext","Provider","mount","_renew","children","h","Fragment","createContextState","context","subscribeKeys","myCompKey","getComponentKey","cStateMap","createStateForKey","findProviderInTree","wdom","vdRef","getComponentSubInfo","parent","mountReadyCallback","providerProps","k","providerState","cState","wrapRenew","renewlist","createLContext","lmount","unwrapChildren","createOwnerScope","disposed","cleanups","cleanup","live","release","pending","errors","error","createLatestTask","scope","current","cancel","previous","work","handlers","controller","valid","_b","_c","_d","useOwnerScope","reportCleanupError","createActivityScope","owner","registrations","requested","changing","stop","entry","reconcile","session","failure","deactivate","wasChanging","start","unregister","createScopedTask","lifetime","activity","task","getRenderProtocol","componentMap","supportsRenderBoundary","protocol","entries","count","paused","memberships","reparent","ownersOf","node","cached","owners","visited","blocks","blocked","useRenderBoundary","initialActive","registered","releasePauseHooks","dispose","createRetainedView","host","initialize","options","container","dirty","queued","update","boundary","Root","nativeRenew","draw","createRetainedHost","initial","slot","active","view","sync","created"],"mappings":"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"}