{"version":3,"file":"TanStackRouterDevtools.cjs","names":["useRouter","useRouterState","TanStackRouterDevtoolsCore","createEffect","createSignal","onCleanup","onMount","AnyRouter","Component","JSX","TanStackRouterDevtoolsOptions","initialIsOpen","panelProps","HTMLAttributes","HTMLDivElement","closeButtonProps","ButtonHTMLAttributes","HTMLButtonElement","toggleButtonProps","position","containerElement","router","shadowDOMTarget","ShadowRoot","TanStackRouterDevtools","props","Element","activeRouter","activeRouterState","usedProps","routerState","devToolRef","devtools","setRouter","setRouterState","setOptions","mount","unmount","_el$","_tmpl$","_ref$","_$use"],"sources":["../../src/TanStackRouterDevtools.tsx"],"sourcesContent":["import { useRouter, useRouterState } from '@tanstack/solid-router'\nimport { TanStackRouterDevtoolsCore } from '@tanstack/router-devtools-core'\nimport { createEffect, createSignal, onCleanup, onMount } from 'solid-js'\nimport type { AnyRouter } from '@tanstack/solid-router'\nimport type { Component, JSX } from 'solid-js'\n\nexport interface TanStackRouterDevtoolsOptions {\n  /**\n   * Set this true if you want the dev tools to default to being open\n   */\n  initialIsOpen?: boolean\n  /**\n   * Use this to add props to the panel. For example, you can add className, style (merge and override default style), etc.\n   */\n  panelProps?: JSX.HTMLAttributes<HTMLDivElement>\n  /**\n   * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n   */\n  closeButtonProps?: JSX.ButtonHTMLAttributes<HTMLButtonElement>\n  /**\n   * Use this to add props to the toggle button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n   */\n  toggleButtonProps?: JSX.ButtonHTMLAttributes<HTMLButtonElement>\n  /**\n   * The position of the TanStack Router logo to open and close the devtools panel.\n   * Defaults to 'bottom-left'.\n   */\n  position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n  /**\n   * Use this to render the devtools inside a different type of container element for a11y purposes.\n   * Any string which corresponds to a valid intrinsic JSX element is allowed.\n   * Defaults to 'footer'.\n   */\n  containerElement?: string | any\n  /**\n   * The router instance to use for the devtools.\n   */\n  router?: AnyRouter\n  /**\n   * Use this to attach the devtool's styles to specific element in the DOM.\n   */\n  shadowDOMTarget?: ShadowRoot\n}\n\nexport const TanStackRouterDevtools: Component<\n  TanStackRouterDevtoolsOptions\n> = (props): JSX.Element | null => {\n  const activeRouter = props.router ?? useRouter()\n  const activeRouterState = useRouterState({ router: activeRouter })\n\n  const usedProps = {\n    ...props,\n    router: activeRouter,\n    routerState: activeRouterState,\n  }\n\n  let devToolRef: HTMLDivElement | undefined\n  const [devtools] = createSignal(new TanStackRouterDevtoolsCore(usedProps))\n\n  // Update devtools when props change\n  createEffect(() => {\n    devtools().setRouter(usedProps.router)\n  })\n\n  createEffect(() => {\n    devtools().setRouterState(usedProps.routerState)\n  })\n\n  createEffect(() => {\n    devtools().setOptions({\n      initialIsOpen: usedProps.initialIsOpen,\n      panelProps: usedProps.panelProps,\n      closeButtonProps: usedProps.closeButtonProps,\n      toggleButtonProps: usedProps.toggleButtonProps,\n      position: usedProps.position,\n      containerElement: usedProps.containerElement,\n      shadowDOMTarget: usedProps.shadowDOMTarget,\n    })\n  })\n\n  onMount(() => {\n    if (devToolRef) {\n      devtools().mount(devToolRef)\n\n      onCleanup(() => {\n        devtools().unmount()\n      })\n    }\n  })\n\n  return (\n    <>\n      <div ref={devToolRef} />\n    </>\n  )\n}\n"],"mappings":";;;;;;AA4CA,IAAawB,0BAERC,UAA8B;CACjC,MAAME,eAAeF,MAAMJ,WAAAA,GAAAA,uBAAAA,WAAoB;CAC/C,MAAMO,qBAAAA,GAAAA,uBAAAA,gBAAmC,EAAEP,QAAQM,aAAa,CAAC;CAEjE,MAAME,YAAY;EAChB,GAAGJ;EACHJ,QAAQM;EACRG,aAAaF;CACf;CAEA,IAAIG;CACJ,MAAM,CAACC,aAAAA,GAAAA,SAAAA,cAAyB,IAAI9B,+BAAAA,2BAA2B2B,SAAS,CAAC;CAGzE1B,CAAAA,GAAAA,SAAAA,oBAAmB;EACjB6B,SAAS,EAAEC,UAAUJ,UAAUR,MAAM;CACvC,CAAC;CAEDlB,CAAAA,GAAAA,SAAAA,oBAAmB;EACjB6B,SAAS,EAAEE,eAAeL,UAAUC,WAAW;CACjD,CAAC;CAED3B,CAAAA,GAAAA,SAAAA,oBAAmB;EACjB6B,SAAS,EAAEG,WAAW;GACpBxB,eAAekB,UAAUlB;GACzBC,YAAYiB,UAAUjB;GACtBG,kBAAkBc,UAAUd;GAC5BG,mBAAmBW,UAAUX;GAC7BC,UAAUU,UAAUV;GACpBC,kBAAkBS,UAAUT;GAC5BE,iBAAiBO,UAAUP;EAC7B,CAAC;CACH,CAAC;CAEDhB,CAAAA,GAAAA,SAAAA,eAAc;EACZ,IAAIyB,YAAY;GACdC,SAAS,EAAEI,MAAML,UAAU;GAE3B1B,CAAAA,GAAAA,SAAAA,iBAAgB;IACd2B,SAAS,EAAEK,QAAQ;GACrB,CAAC;EACH;CACF,CAAC;CAED,cAAA;EAAA,IAAAC,OAAAC,OAAA;EAAA,IAAAC,QAEcT;EAAU,OAAAS,UAAA,cAAA,GAAA,aAAA,KAAAA,OAAAF,IAAA,IAAVP,aAAUO;EAAA,OAAAA;CAAA,GAAA;AAG1B"}