{
  "version": 3,
  "sources": ["../src/hydrate.ts"],
  "sourcesContent": ["import { Tonic } from './index.js'\n\n/**\n * Hydrate server-rendered Tonic components.\n *\n * Call this to wrap component registration so that existing\n * server-rendered DOM is preserved instead of being re-rendered.\n * Event handlers are still attached, props are parsed from\n * attributes, and lifecycle hooks (`willConnect`, `connected`)\n * are called.\n *\n * If a `<script type=\"application/json\" data-tonic-ssr>` tag\n * exists in the document, its JSON content is parsed and used\n * to restore complex props (objects, arrays) for components\n * with matching `id` attributes.\n *\n * @param callback Register your components inside this callback\n * @returns The parsed SSR state, or null if none was embedded\n *\n * @example\n * ```ts\n * import { hydrate } from '@substrate-system/tonic/hydrate'\n * import { Tonic } from '@substrate-system/tonic'\n * import { MyApp } from './components.js'\n *\n * const state = hydrate(() => {\n *     Tonic.add(MyApp)\n * })\n * ```\n */\nexport function hydrate (\n    callback:() => void\n):Record<string, any>|null {\n    const script = document.querySelector(\n        'script[data-tonic-ssr]'\n    )\n\n    const state:Record<string, any>|null = script ?\n        JSON.parse(script.textContent || '{}') :\n        null\n\n    Tonic._ssrState = state\n    Tonic._hydrating = true\n\n    callback()\n\n    Tonic._hydrating = false\n    Tonic._ssrState = null\n\n    return state\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AA8Bf,SAAS,QACZ,UACuB;AACvB,QAAM,SAAS,SAAS;AAAA,IACpB;AAAA,EACJ;AAEA,QAAM,QAAiC,SACnC,KAAK,MAAM,OAAO,eAAe,IAAI,IACrC;AAEJ,qBAAM,YAAY;AAClB,qBAAM,aAAa;AAEnB,WAAS;AAET,qBAAM,aAAa;AACnB,qBAAM,YAAY;AAElB,SAAO;AACX;AApBgB;",
  "names": []
}
