{"version":3,"file":"lithentHelper.cjs","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","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","_a","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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"}