{"version":3,"file":"CatchBoundary.cjs","names":["<Solid.Errored\n      fallback={(error, reset) => {\n        const resolvedError = Solid.untrack(() => error() as Error)\n\n        props.onCatch?.(resolvedError)\n        resetBoundary = reset\n\n        return process.env.NODE_ENV !== 'production' ? (\n          renderInNonRouteComponentContext(\n            () => (\n              <Dynamic\n                component={props.errorComponent ?? ErrorComponent}\n                error={resolvedError}\n                reset={reset}\n              />\n            ),\n            'errorComponent',\n          )\n        ) : (\n          <Dynamic\n            component={props.errorComponent ?? ErrorComponent}\n            error={resolvedError}\n            reset={reset}\n          />\n        )\n      }}\n    >\n      <Solid.Show when={retryKey()} keyed>\n        {(_retryKey) => props.render?.() ?? props.children}\n      </Solid.Show>\n    </Solid.Errored>","Solid.Errored","fallback={(error, reset) => {\n        const resolvedError = Solid.untrack(() => error() as Error)\n\n        props.onCatch?.(resolvedError)\n        resetBoundary = reset\n\n        return process.env.NODE_ENV !== 'production' ? (\n          renderInNonRouteComponentContext(\n            () => (\n              <Dynamic\n                component={props.errorComponent ?? ErrorComponent}\n                error={resolvedError}\n                reset={reset}\n              />\n            ),\n            'errorComponent',\n          )\n        ) : (\n          <Dynamic\n            component={props.errorComponent ?? ErrorComponent}\n            error={resolvedError}\n            reset={reset}\n          />\n        )\n      }}","<Dynamic\n                component={props.errorComponent ?? ErrorComponent}\n                error={resolvedError}\n                reset={reset}\n              />","error={resolvedError}","<Dynamic\n            component={props.errorComponent ?? ErrorComponent}\n            error={resolvedError}\n            reset={reset}\n          />","<Solid.Show when={retryKey()} keyed>\n        {(_retryKey) => props.render?.() ?? props.children}\n      </Solid.Show>","Solid.Show","<strong style={{ 'font-size': '1rem' }}>Something went wrong!</strong>","<div style={{ height: '.25rem' }} />","<div style={{ padding: '.5rem', 'max-width': '100%' }}>\n      <div style={{ display: 'flex', 'align-items': 'center', gap: '.5rem' }}>\n        <strong style={{ 'font-size': '1rem' }}>Something went wrong!</strong>\n        <button\n          style={{\n            appearance: 'none',\n            'font-size': '.6em',\n            border: '1px solid currentColor',\n            padding: '.1rem .2rem',\n            'font-weight': 'bold',\n            'border-radius': '.25rem',\n          }}\n          onClick={() => setShow((d) => !d)}\n        >\n          {show() ? 'Hide Error' : 'Show Error'}\n        </button>\n      </div>\n      <div style={{ height: '.25rem' }} />\n      {show() ? (\n        <div>\n          <pre\n            style={{\n              'font-size': '.7em',\n              border: '1px solid red',\n              'border-radius': '.25rem',\n              padding: '.3rem',\n              color: 'red',\n              overflow: 'auto',\n            }}\n          >\n            {error.message ? <code>{error.message}</code> : null}\n          </pre>\n        </div>\n      ) : null}\n    </div>"],"sources":["../../src/CatchBoundary.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { Dynamic } from '@solidjs/web'\nimport { renderInNonRouteComponentContext } from './nonRouteComponentContext'\nimport type { ErrorRouteComponent } from './route'\nimport type { JSX } from '@solidjs/web'\n\nexport function CatchBoundary(\n  props: {\n    getResetKey: () => unknown\n    children?: JSX.Element\n    render?: () => JSX.Element\n    errorComponent?: ErrorRouteComponent\n    onCatch?: (error: Error) => void\n  } & Solid.ParentProps,\n) {\n  const [retryKey, setRetryKey] = Solid.createSignal<object>({})\n  let resetBoundary: (() => void) | undefined\n  let initialized = false\n  let previousKey: unknown\n\n  Solid.onCleanup(() => {\n    resetBoundary = undefined\n  })\n\n  Solid.createEffect(props.getResetKey, (key) => {\n    if (!initialized) {\n      initialized = true\n      previousKey = key\n      return\n    }\n\n    // The effect re-runs on every recompute of the key function, not only\n    // on value changes — gate on the value so an unchanged key can't\n    // recreate the retried subtree while it settles.\n    if (key === previousKey) {\n      return\n    }\n    previousKey = key\n\n    const reset = resetBoundary\n    if (reset) {\n      queueMicrotask(() => {\n        if (resetBoundary !== reset) {\n          return\n        }\n        setRetryKey({})\n        reset()\n        Solid.flush()\n      })\n    }\n  })\n\n  return (\n    <Solid.Errored\n      fallback={(error, reset) => {\n        const resolvedError = Solid.untrack(() => error() as Error)\n\n        props.onCatch?.(resolvedError)\n        resetBoundary = reset\n\n        return process.env.NODE_ENV !== 'production' ? (\n          renderInNonRouteComponentContext(\n            () => (\n              <Dynamic\n                component={props.errorComponent ?? ErrorComponent}\n                error={resolvedError}\n                reset={reset}\n              />\n            ),\n            'errorComponent',\n          )\n        ) : (\n          <Dynamic\n            component={props.errorComponent ?? ErrorComponent}\n            error={resolvedError}\n            reset={reset}\n          />\n        )\n      }}\n    >\n      <Solid.Show when={retryKey()} keyed>\n        {(_retryKey) => props.render?.() ?? props.children}\n      </Solid.Show>\n    </Solid.Errored>\n  )\n}\n\nexport function ErrorComponent({ error }: { error: any }) {\n  const [show, setShow] = Solid.createSignal(\n    process.env.NODE_ENV !== 'production',\n  )\n\n  return (\n    <div style={{ padding: '.5rem', 'max-width': '100%' }}>\n      <div style={{ display: 'flex', 'align-items': 'center', gap: '.5rem' }}>\n        <strong style={{ 'font-size': '1rem' }}>Something went wrong!</strong>\n        <button\n          style={{\n            appearance: 'none',\n            'font-size': '.6em',\n            border: '1px solid currentColor',\n            padding: '.1rem .2rem',\n            'font-weight': 'bold',\n            'border-radius': '.25rem',\n          }}\n          onClick={() => setShow((d) => !d)}\n        >\n          {show() ? 'Hide Error' : 'Show Error'}\n        </button>\n      </div>\n      <div style={{ height: '.25rem' }} />\n      {show() ? (\n        <div>\n          <pre\n            style={{\n              'font-size': '.7em',\n              border: '1px solid red',\n              'border-radius': '.25rem',\n              padding: '.3rem',\n              color: 'red',\n              overflow: 'auto',\n            }}\n          >\n            {error.message ? <code>{error.message}</code> : null}\n          </pre>\n        </div>\n      ) : null}\n    </div>\n  )\n}\n"],"mappings":";;;;;;;;;AAMA,SAAgB,cACd,OAOA;CACA,MAAM,CAAC,UAAU,eAAe,SAAM,aAAqB,CAAC,CAAC;CAC7D,IAAI;CACJ,IAAI,cAAc;CAClB,IAAI;CAEJ,SAAM,gBAAgB;EACpB,gBAAgB,KAAA;CAClB,CAAC;CAED,SAAM,aAAa,MAAM,cAAc,QAAQ;EAC7C,IAAI,CAAC,aAAa;GAChB,cAAc;GACd,cAAc;GACd;EACF;EAKA,IAAI,QAAQ,aACV;EAEF,cAAc;EAEd,MAAM,QAAQ;EACd,IAAI,OACF,qBAAqB;GACnB,IAAI,kBAAkB,OACpB;GAEF,YAAY,CAAC,CAAC;GACd,MAAM;GACN,SAAM,MAAM;EACd,CAAC;CAEL,CAAC;CAED,QAAA,GAAA,aAAA,iBACEA,SAACC,SAAD;EACEC,WAAW,OAAO,UAAU;GAC1B,MAAM,gBAAgB,SAAM,cAAc,MAAM,CAAU;GAE1D,MAAM,UAAU,aAAa;GAC7B,gBAAgB;GAEhB,OAAA,QAAA,IAAA,aAAgC,eAC9B,iCAAA,wCAAA,GAAA,aAAA,iBAEIC,aAAAA,SAAAA;IACE,IAAA,YAAA;YAAW,MAAM,kBAAkB;IAAc;IACjDC,OAAO;IACA;GACR,CAAA,GAEH,gBACF,KAAA,GAAA,aAAA,iBAEAC,aAAAA,SAAAA;IACE,IAAA,YAAA;YAAW,MAAM,kBAAkB;IAAc;IACjDD,OAAO;IACA;GACR,CAAA;EAEL;EAzBF,IAAA,WAAA;4CA2BEE,SAACC,MAAD;IAAY,IAAA,OAAA;YAAM,SAAS;IAAC;IAAE,OAAA;IAA9BD,WACI,cAAc,MAAM,SAAS,KAAK,MAAM;GAChC,CAAA;EACC;;AAEnB;AAEA,SAAgB,eAAe,EAAE,SAAyB;CACxD,MAAM,CAAC,MAAM,WAAW,SAAM,aAAA,QAAA,IAAA,aACH,YAC3B;CAGE,IAAA,OAAA,OAkCK;CAjCH,IAAA,QAAA,KAAA;CAEE,IAAA,QADAE,MAAAA,WACA;CAcFC,MAAAA;CALI,MAAA,gBAAe,SAAS,MAAM,CAAC,CAAC;CATlC,CAAA,GAAA,aAAA,QAAA,aAWE;SAAC,KAAK,IAAI,eAAe;CAAY,CAC/B;CAfZ,CAAA,GAAA,aAAA,QAAA,aAkBE;;YAAC,KAAK;EAeE,CAAA;EAfR,aAAA;cAeQ,WAdN;wBAaK;IAZH,IAAA,QAAA,MAAA;2CAUE;;eAAC,MAAM;KAA6C,CAAA;KAApD,aAAA;kBAAoD,WAAnC;2BAA2B;OAA3B,CAAA,GAAA,aAAA,QAAA,aAAM;eAAC,MAAM;OAAO,CAAO;OAA3B,OAAA;MAA2B,GAAA,IAAI;KAAI;OAAA,CACjD;IAZP,OAAA;GAaK,GAAA,IACH;EAAI;IAAA,GAjCV,IAkCK;CAnCP,OACEC;AAoCJ"}