@powerhousedao/connect-core 6.2.3-dev.78 → 6.2.3-dev.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/{index-Cm8rYUhs.d.ts → index-Bfl1VYdj.d.ts} +21 -2
  2. package/dist/index-Bfl1VYdj.d.ts.map +1 -0
  3. package/dist/{index-q4bHCPoJ.d.ts → index-r46ba0Kx.d.ts} +9 -6
  4. package/dist/index-r46ba0Kx.d.ts.map +1 -0
  5. package/dist/index.d.ts +3 -3
  6. package/dist/index.js +9 -9
  7. package/dist/{multi-reactor-CCMzwoMi.js → multi-reactor-D_2B4jmu.js} +2 -2
  8. package/dist/multi-reactor-D_2B4jmu.js.map +1 -0
  9. package/dist/{plugin-host-HhfxwUZN.js → plugin-host-D_EW56IQ.js} +2 -2
  10. package/dist/{plugin-host-HhfxwUZN.js.map → plugin-host-D_EW56IQ.js.map} +1 -1
  11. package/dist/{plugin-ui-W0ma6oKJ.js → plugin-ui-fDXhKTCK.js} +3 -3
  12. package/dist/{plugin-ui-W0ma6oKJ.js.map → plugin-ui-fDXhKTCK.js.map} +1 -1
  13. package/dist/plugins.js +2 -2
  14. package/dist/route-tree.d.ts +16 -16
  15. package/dist/route-tree.d.ts.map +1 -1
  16. package/dist/{router-DHL9GT3P.js → router-wVNdTI-Y.js} +10 -4
  17. package/dist/router-wVNdTI-Y.js.map +1 -0
  18. package/dist/router.d.ts +2 -2
  19. package/dist/router.js +4 -4
  20. package/dist/routes/__root.d.ts +3 -3
  21. package/dist/routes/__root.d.ts.map +1 -1
  22. package/dist/routes/__root.js +3 -3
  23. package/dist/routes/__root.js.map +1 -1
  24. package/dist/routes/_app/$.d.ts +3 -3
  25. package/dist/routes/_app/$.d.ts.map +1 -1
  26. package/dist/routes/_app/$.js +3 -3
  27. package/dist/routes/_app/$.js.map +1 -1
  28. package/dist/routes/_app/d/$driveSlug/{-$nodeSlug}.d.ts +5 -5
  29. package/dist/routes/_app/d/$driveSlug/{-$nodeSlug}.d.ts.map +1 -1
  30. package/dist/routes/_app/d/$driveSlug/{-$nodeSlug}.js +3 -3
  31. package/dist/routes/_app/d/$driveSlug/{-$nodeSlug}.js.map +1 -1
  32. package/dist/routes/_app/d/$driveSlug.d.ts +4 -4
  33. package/dist/routes/_app/d/$driveSlug.d.ts.map +1 -1
  34. package/dist/routes/_app/d/$driveSlug.js +3 -3
  35. package/dist/routes/_app/d/$driveSlug.js.map +1 -1
  36. package/dist/routes/_app/index.d.ts +41 -2
  37. package/dist/routes/_app/index.d.ts.map +1 -1
  38. package/dist/routes/_app/index.js +2 -2
  39. package/dist/routes/_app/index.js.map +1 -1
  40. package/dist/routes/_app/settings/appearance.d.ts +3 -3
  41. package/dist/routes/_app/settings/appearance.d.ts.map +1 -1
  42. package/dist/routes/_app/settings/appearance.js +3 -3
  43. package/dist/routes/_app/settings/appearance.js.map +1 -1
  44. package/dist/routes/_app/settings/packages.d.ts +3 -3
  45. package/dist/routes/_app/settings/packages.d.ts.map +1 -1
  46. package/dist/routes/_app/settings/packages.js +3 -3
  47. package/dist/routes/_app/settings/packages.js.map +1 -1
  48. package/dist/routes/_app/settings.d.ts +3 -3
  49. package/dist/routes/_app/settings.d.ts.map +1 -1
  50. package/dist/routes/_app/settings.js +3 -3
  51. package/dist/routes/_app/settings.js.map +1 -1
  52. package/dist/routes/_app.d.ts +41 -2
  53. package/dist/routes/_app.d.ts.map +1 -1
  54. package/dist/routes/_app.js +2 -2
  55. package/dist/routes/_app.js.map +1 -1
  56. package/dist/{runtime-D5hpzfgT.js → runtime-BUG9vT2E.js} +20 -8
  57. package/dist/runtime-BUG9vT2E.js.map +1 -0
  58. package/dist/runtime-config.js +4 -4
  59. package/dist/{runtime-flag-U8y14Nth.js → runtime-flag-Bp6QasS8.js} +2 -2
  60. package/dist/{runtime-flag-U8y14Nth.js.map → runtime-flag-Bp6QasS8.js.map} +1 -1
  61. package/dist/runtime.d.ts +2 -2
  62. package/dist/runtime.js +4 -4
  63. package/dist/{sidebar-CRv_DvBV.js → sidebar-C2y4mZnX.js} +13 -2
  64. package/dist/{sidebar-CRv_DvBV.js.map → sidebar-C2y4mZnX.js.map} +1 -1
  65. package/dist/{views-anOyTI7u.js → views-Ba9OeN3c.js} +2 -2
  66. package/dist/{views-anOyTI7u.js.map → views-Ba9OeN3c.js.map} +1 -1
  67. package/dist/views.js +1 -1
  68. package/package.json +8 -8
  69. package/src/router/index.ts +14 -2
  70. package/src/router/route-options.ts +16 -0
  71. package/src/router/sidebar.ts +22 -0
  72. package/src/routes/__root.tsx +3 -2
  73. package/src/routes/_app/$.tsx +3 -2
  74. package/src/routes/_app/d/$driveSlug/{-$nodeSlug}.tsx +3 -2
  75. package/src/routes/_app/d/$driveSlug.tsx +3 -2
  76. package/src/routes/_app/index.tsx +2 -2
  77. package/src/routes/_app/settings/appearance.tsx +3 -3
  78. package/src/routes/_app/settings/packages.tsx +3 -3
  79. package/src/routes/_app/settings.tsx +3 -2
  80. package/src/routes/_app.tsx +2 -2
  81. package/src/runtime/graphql-routable-backend.ts +2 -2
  82. package/src/runtime/index.ts +5 -1
  83. package/src/runtime/reactor-client-mode.ts +26 -9
  84. package/dist/index-Cm8rYUhs.d.ts.map +0 -1
  85. package/dist/index-q4bHCPoJ.d.ts.map +0 -1
  86. package/dist/multi-reactor-CCMzwoMi.js.map +0 -1
  87. package/dist/router-DHL9GT3P.js.map +0 -1
  88. package/dist/runtime-D5hpzfgT.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-wVNdTI-Y.js","names":[],"sources":["../src/router/perf-marks.ts","../src/router/scroll.ts","../src/router/search.ts","../src/router/navigation.ts","../src/router/connect-router.ts","../src/router/app-router.ts","../src/router/core-app.tsx","../src/router/route-options.ts"],"sourcesContent":["import type { AnyRouter } from \"@tanstack/react-router\";\n\n/** `localStorage[PERF_STORAGE_KEY] = \"1\"` or `?perf=1` turns the marks on in production. */\nexport const PERF_STORAGE_KEY = \"ph:perf\";\n\n/** The measures each navigation writes, as the bench reads them. */\nexport const ROUTER_MEASURES = {\n /** `navigation.open` to the router starting the navigation. */\n click: \"nav click\",\n /** Route loaders, until the router commits the matches. */\n loader: \"nav loader\",\n /** The commit until React has rendered it. */\n commit: \"nav commit\",\n /** The click (or the navigation's start) to the next frame after render. */\n total: \"nav total\",\n} as const;\n\n// Chrome's Performance panel shows these as \"Connect › Router\".\nconst DETAIL = {\n devtools: { dataType: \"track-entry\", track: \"Router\", trackGroup: \"Connect\" },\n} as const;\n\nlet marking = 0;\nlet clickedAt: number | undefined;\n\n/** On in dev builds; elsewhere only with the runtime flag. */\nexport function routerPerfEnabled(dev = !!import.meta.env?.DEV) {\n if (dev) return true;\n try {\n return (\n new URLSearchParams(location.search).get(\"perf\") === \"1\" ||\n localStorage.getItem(PERF_STORAGE_KEY) === \"1\"\n );\n } catch {\n return false;\n }\n}\n\n/** Marks a navigation's click; a no-op unless a router is being marked. */\nexport function markNavigationClick() {\n if (!marking) return;\n clickedAt = performance.now();\n performance.mark(\"nav:click\", { detail: DETAIL });\n}\n\nfunction measure(name: string, start: number | undefined, end: number) {\n if (start === undefined) return;\n performance.measure(name, { start, end, detail: DETAIL });\n}\n\n/** Writes each navigation's phases as performance measures; returns the unsubscribe. */\nexport function markRouterNavigations(\n router: Pick<AnyRouter, \"subscribe\">,\n enabled = routerPerfEnabled(),\n) {\n if (!enabled) return () => {};\n marking++;\n let generation = 0;\n let clicked: number | undefined;\n let navigated: number | undefined;\n let loading: number | undefined;\n let loaded: number | undefined;\n const unsubscribes = [\n router.subscribe(\"onBeforeNavigate\", () => {\n generation++;\n navigated = performance.now();\n clicked = clickedAt;\n clickedAt = undefined;\n measure(ROUTER_MEASURES.click, clicked, navigated);\n loading = loaded = undefined;\n }),\n router.subscribe(\"onBeforeLoad\", () => {\n loading = performance.now();\n }),\n router.subscribe(\"onLoad\", () => {\n loaded = performance.now();\n measure(ROUTER_MEASURES.loader, loading, loaded);\n }),\n router.subscribe(\"onRendered\", () => {\n measure(ROUTER_MEASURES.commit, loaded, performance.now());\n const current = generation;\n const start = clicked ?? navigated;\n // The frame after render, as close to paint as a script sees.\n requestAnimationFrame(() =>\n setTimeout(() => {\n if (current === generation) {\n measure(ROUTER_MEASURES.total, start, performance.now());\n }\n }),\n );\n }),\n ];\n return () => {\n marking--;\n for (const unsubscribe of unsubscribes) unsubscribe();\n };\n}\n","import type {\n AnyRouter,\n ParsedLocation,\n RouterHistory,\n} from \"@tanstack/react-router\";\n\ntype ScrollRouter = Pick<AnyRouter, \"subscribe\" | \"_scroll\" | \"options\"> & {\n history: RouterHistory;\n};\n\nconst TRAVERSALS = new Set([\"BACK\", \"FORWARD\", \"GO\"]);\nconst traversals = new WeakMap<object, { traversal: boolean }>();\n\n/** The router's `scrollRestoration`: on for back/forward only; other\n * navigations reset the content view in `bindConnectScroll`. */\nexport function connectScrollRestoration() {\n // The first load restores a reloaded page's scroll.\n const state = { traversal: true };\n const restore = ({ location }: { location: ParsedLocation }) =>\n state.traversal || !!location.hash;\n traversals.set(restore, state);\n return restore;\n}\n\n/** Tracks history actions, and resets a scrolled content view on new views. */\nexport function bindConnectScroll(router: ScrollRouter, contentViewId: string) {\n const state = traversals.get(router.options.scrollRestoration as object);\n if (!state) return () => {};\n const unsubscribeHistory = router.history.subscribe(({ action }) => {\n state.traversal = TRAVERSALS.has(action.type);\n });\n if (typeof document === \"undefined\") return unsubscribeHistory;\n\n // Read in the scroll event, where layout is clean, not at navigation.\n let scrolledView: Element | undefined;\n let windowScrolled = false;\n const onScroll = (event: Event) => {\n const target = event.target;\n if (target === document) {\n windowScrolled = window.scrollY > 0 || window.scrollX > 0;\n } else if (target instanceof Element && target.id === contentViewId) {\n scrolledView = target.scrollTop > 0 ? target : undefined;\n }\n };\n document.addEventListener(\"scroll\", onScroll, {\n capture: true,\n passive: true,\n });\n\n let resetScroll = true;\n const unsubscribes = [\n unsubscribeHistory,\n // The navigation's `resetScroll`, before the router clears it on render.\n router.subscribe(\"onBeforeRouteMount\", () => {\n resetScroll = router._scroll.n;\n }),\n router.subscribe(\"onRendered\", ({ toLocation }) => {\n if (state.traversal || toLocation.hash || !resetScroll) return;\n if (scrolledView?.isConnected) scrolledView.scrollTo(0, 0);\n if (windowScrolled) window.scrollTo(0, 0);\n scrolledView = undefined;\n windowScrolled = false;\n }),\n ];\n return () => {\n document.removeEventListener(\"scroll\", onScroll, { capture: true });\n for (const unsubscribe of unsubscribes) unsubscribe();\n };\n}\n","import {\n FEATURE_FLAG_PARAM_PREFIX,\n GLOBAL_SEARCH_PARAMS,\n parseRevisionHistoryPage,\n REVISION_HISTORY_PAGE_PARAM,\n REVISION_HISTORY_PARAM,\n searchParamsToString,\n} from \"@powerhousedao/reactor-browser\";\nimport type { SearchMiddleware } from \"@tanstack/react-router\";\nimport { retainSearchParams } from \"@tanstack/react-router\";\n\n// Shared with reactor-browser's fallback navigation.\nexport { FEATURE_FLAG_PARAM_PREFIX, GLOBAL_SEARCH_PARAMS };\n\n/** Connect's query params: plain strings, as in the URL. */\nexport type ConnectSearch = Record<string, string | undefined>;\n\nconst retainFeatureFlags: SearchMiddleware<ConnectSearch> = ({\n search,\n next,\n}) => {\n const result = { ...next(search) };\n for (const [key, value] of Object.entries(search)) {\n if (key.startsWith(FEATURE_FLAG_PARAM_PREFIX) && !(key in result)) {\n result[key] = value;\n }\n }\n return result;\n};\n\n/** The root route's middlewares; they apply to every navigation and redirect. */\nexport const connectSearchMiddlewares: SearchMiddleware<ConnectSearch>[] = [\n retainSearchParams<ConnectSearch>([...GLOBAL_SEARCH_PARAMS]),\n retainFeatureFlags,\n];\n\n/** Lets every param through; routes add none of their own. */\nexport function validateConnectSearch(\n search: Record<string, unknown>,\n): ConnectSearch {\n return search as ConnectSearch;\n}\n\n/** Parses a query string into plain string values, unlike the JSON default. */\nexport function parseConnectSearch(searchStr: string): ConnectSearch {\n return Object.fromEntries(new URLSearchParams(searchStr));\n}\n\n/** Writes plain `key=value` pairs, so other readers of the URL see strings. */\nexport function stringifyConnectSearch(search: Record<string, unknown>) {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(search)) {\n if (value === undefined || value === null) continue;\n params.set(key, typeof value === \"string\" ? value : JSON.stringify(value));\n }\n const searchStr = searchParamsToString(params);\n return searchStr ? `?${searchStr}` : \"\";\n}\n\n/** The drive route's params: `?history` opens the document's revision history,\n * and `historyPage` (a positive integer; 1 is dropped) pages it. */\nexport function validateDriveSearch(\n search: Record<string, unknown>,\n): ConnectSearch {\n const result = { ...search } as ConnectSearch;\n if (result[REVISION_HISTORY_PARAM] === undefined) return result;\n result[REVISION_HISTORY_PARAM] = \"\";\n const page = parseRevisionHistoryPage(result[REVISION_HISTORY_PAGE_PARAM]);\n if (page > 1) result[REVISION_HISTORY_PAGE_PARAM] = String(page);\n // Undefined, not deleted: a route's search is merged over its parent's.\n else result[REVISION_HISTORY_PAGE_PARAM] = undefined;\n return result;\n}\n\n/** The defined values of `search`, for callers that take plain records. */\nexport function definedSearch(search: object): Record<string, string> {\n const record: Record<string, string> = {};\n for (const [key, value] of Object.entries(search)) {\n if (typeof value === \"string\") record[key] = value;\n else if (value !== undefined && value !== null) {\n record[key] = JSON.stringify(value);\n }\n }\n return record;\n}\n","import type {\n PHDriveTarget,\n PHNavigation,\n PHNavigationTarget,\n PHSettingsTarget,\n SetSearchParams,\n} from \"@powerhousedao/reactor-browser\";\nimport {\n applySearchUpdate,\n findDriveBySlugOrId,\n isSettingsTarget,\n makeDriveSlug,\n OPENED_FROM_STATE_KEY,\n openedFromIndex,\n resolveSearchUpdate,\n} from \"@powerhousedao/reactor-browser\";\nimport type {\n AnyRouter,\n HistoryState,\n MakeRouteMatchUnion,\n} from \"@tanstack/react-router\";\nimport { useRouterState } from \"@tanstack/react-router\";\nimport { useMemo } from \"react\";\nimport type { ConnectRouterBundle } from \"./connect-router.js\";\nimport { markNavigationClick } from \"./perf-marks.js\";\nimport { definedSearch } from \"./search.js\";\nimport { keepOpenedFrom, settingsTabs } from \"./settings.js\";\n\n// Hover intent: a pointer passing over cards doesn't preload each of them.\nconst PRELOAD_DELAY_MS = 50;\n\n/** The PH navigation backed by `router`; its hooks take the router directly,\n * so they work outside the RouterProvider. */\nexport function createConnectNavigation(\n connectRouter: ConnectRouterBundle,\n): PHNavigation & { dispose(): void } {\n const { router, homeRoute, nodeRoute, settingsRoute } = connectRouter;\n // Settings tabs can come from a project's routes, unknown to Connect's types.\n const anyRouter = router as unknown as AnyRouter;\n\n // A listed drive is addressed by its canonical slug, whatever form came in.\n const driveParams = (target: PHDriveTarget) => {\n const drive = findDriveBySlugOrId(\n router.options.context.store,\n target.driveSlug,\n );\n return {\n driveSlug: drive ? makeDriveSlug(drive) : target.driveSlug,\n nodeSlug: target.nodeSlug || undefined,\n };\n };\n\n // `true` is the first tab, so the URL names a tab without a redirect.\n const settingsPath = ({ settings }: PHSettingsTarget) => {\n const tab =\n settings === true ? settingsTabs(anyRouter).at(0)?.id : settings;\n return tab ? `${settingsRoute.fullPath}/${tab}` : settingsRoute.fullPath;\n };\n\n // In-document writes keep the entry's state, so its opened-from index too.\n const setSearch: PHNavigation[\"setSearch\"] = (update, options) => {\n void router.navigate({\n to: \".\",\n search: (prev) => applySearchUpdate({}, update(definedSearch(prev))),\n state: true,\n replace: options?.replace,\n resetScroll: false,\n });\n };\n\n const showsSettings = () =>\n router.state.matches.some((match) => match.routeId === settingsRoute.id);\n\n // A push remembers the entry it leaves; a replace keeps what that one had,\n // as does a move between settings tabs.\n const openedFromState = (\n replace: boolean | undefined,\n target: PHNavigationTarget | undefined,\n ) => {\n const { state } = router.history.location;\n const next =\n replace || (isSettingsTarget(target) && showsSettings())\n ? keepOpenedFrom(state)\n : ({\n [OPENED_FROM_STATE_KEY]: state.__TSR_index,\n } as unknown as HistoryState);\n return () => next;\n };\n\n const targetKey = (target: PHNavigationTarget | undefined) => {\n if (!target) return homeRoute.id;\n if (isSettingsTarget(target)) return settingsPath(target);\n const { driveSlug, nodeSlug } = driveParams(target);\n return JSON.stringify([driveSlug, nodeSlug ?? \"\"]);\n };\n let keyedMatches: readonly MakeRouteMatchUnion[] | undefined;\n let matchesKey: string | undefined;\n const currentKey = (matches: readonly MakeRouteMatchUnion[]) => {\n if (matches === keyedMatches) return matchesKey;\n keyedMatches = matches;\n const drive = matches.find((match) => match.routeId === nodeRoute.id);\n const settings = matches.some(\n (match) => match.routeId === settingsRoute.id,\n );\n if (drive) {\n matchesKey = targetKey(drive.params as PHDriveTarget);\n } else if (settings) {\n // A tab's key is its path, as settingsPath builds it.\n matchesKey = matches.at(-1)?.fullPath.replace(/\\/$/, \"\");\n } else {\n matchesKey = matches.find(\n (match) => match.routeId === homeRoute.id,\n )?.routeId;\n }\n return matchesKey;\n };\n\n // Hrefs depend only on the target and the global params of the current search.\n const hrefs = new Map<string, string>();\n let hrefsSearch: string | undefined;\n\n const setSearchParams: SetSearchParams = (update, options) =>\n setSearch((prev) => resolveSearchUpdate(prev, update), options);\n\n let preloadTimer: ReturnType<typeof setTimeout> | undefined;\n return {\n location: () => router.history.location,\n // The root route's middlewares add the global params to `search`.\n open: (target, options) => {\n markNavigationClick();\n const search = applySearchUpdate({}, options?.search ?? {});\n const replace = options?.replace;\n const state = openedFromState(replace, target);\n if (!target) {\n void router.navigate({\n to: homeRoute.fullPath,\n search,\n replace,\n state,\n });\n return;\n }\n if (isSettingsTarget(target)) {\n void anyRouter.navigate({\n to: settingsPath(target),\n search,\n replace,\n state,\n });\n return;\n }\n void router.navigate({\n to: nodeRoute.fullPath,\n params: driveParams(target),\n search,\n replace,\n state,\n });\n },\n // The public href, base path included; global params as `open` keeps them.\n hrefFor: (target) => {\n const { searchStr } = router.latestLocation;\n if (searchStr !== hrefsSearch) {\n hrefs.clear();\n hrefsSearch = searchStr;\n }\n const key = targetKey(target);\n let href = hrefs.get(key);\n if (href === undefined) {\n const location = !target\n ? router.buildLocation({ to: homeRoute.fullPath, search: {} })\n : isSettingsTarget(target)\n ? anyRouter.buildLocation({ to: settingsPath(target), search: {} })\n : router.buildLocation({\n to: nodeRoute.fullPath,\n params: driveParams(target),\n search: {},\n });\n href = location.publicHref;\n hrefs.set(key, href);\n }\n return href;\n },\n // One key per shown matches, so each link's selector is a string compare.\n useIsCurrent: (target) => {\n // The settings page itself is current on any of its tabs.\n const anyTab = isSettingsTarget(target) && target.settings === true;\n const key = anyTab ? `${settingsRoute.fullPath}/` : targetKey(target);\n return useRouterState({\n router,\n select: (state) => {\n const current = currentKey(state.matches);\n return anyTab ? !!current?.startsWith(key) : current === key;\n },\n });\n },\n preload: (target) => {\n clearTimeout(preloadTimer);\n if (!target) return;\n preloadTimer = setTimeout(() => {\n const preloading = isSettingsTarget(target)\n ? anyRouter.preloadRoute({ to: settingsPath(target) })\n : router.preloadRoute({\n to: nodeRoute.fullPath,\n params: driveParams(target),\n });\n preloading.catch(() => undefined);\n }, PRELOAD_DELAY_MS);\n },\n setSearch,\n // The presented matches' params, else the location's.\n useSearchParams() {\n const search = useRouterState({\n router,\n select: (state) =>\n state.matches.at(-1)?.search ?? state.location.search,\n });\n return useMemo(() => definedSearch(search), [search]);\n },\n useSetSearchParams: () => setSearchParams,\n closeOpened: () => {\n const { state } = router.history.location;\n const from = openedFromIndex(state, state.__TSR_index);\n if (from === undefined) return false;\n router.history.go(from - state.__TSR_index);\n return true;\n },\n dispose: () => clearTimeout(preloadTimer),\n };\n}\n","import type { DriveArrivals, PHStore } from \"@powerhousedao/reactor-browser\";\nimport {\n getPHStoreSubscribe,\n isRoutedModal,\n modalFromSearch,\n} from \"@powerhousedao/reactor-browser\";\nimport type {\n AnyRoute,\n ErrorRouteComponent,\n NotFoundRouteComponent,\n RouteComponent,\n Router,\n RouterHistory,\n} from \"@tanstack/react-router\";\nimport { createRouter } from \"@tanstack/react-router\";\nimport type { ErrorInfo, PropsWithChildren, ReactElement } from \"react\";\nimport type { ConnectPluginUiSet } from \"../plugins/plugin-ui.js\";\nimport { applyConnectPluginUi } from \"../plugins/plugin-ui.js\";\nimport { markRouterNavigations } from \"./perf-marks.js\";\nimport { bindConnectScroll, connectScrollRestoration } from \"./scroll.js\";\nimport type { DriveRouteData } from \"./drive-route-loader.js\";\nimport type { ConnectRootRoute, ConnectRoutes } from \"./route-tree.js\";\nimport { createConnectNavigation } from \"./navigation.js\";\nimport { CoreError, CoreNotFound } from \"./core-views.js\";\nimport { CONTENT_VIEW_ID } from \"./route-components.js\";\nimport { addConnectRoutes, connectRoutes } from \"./route-tree.js\";\nimport { setSettingsRoute } from \"./settings.js\";\nimport { parseConnectSearch, stringifyConnectSearch } from \"./search.js\";\nimport { driveTitle } from \"./titles.js\";\n\nexport type ConnectRouterOptions = {\n store: PHStore;\n arrivals?: DriveArrivals;\n basepath?: string;\n history?: RouterHistory;\n InnerWrap?: (props: PropsWithChildren) => ReactElement;\n /** Shown while a route's loader or chunks are pending, after the router's `pendingMs`. */\n pendingComponent?: RouteComponent;\n /** Any route's loader or render error; the plugins', else core's error view. */\n errorComponent?: ErrorRouteComponent;\n /** The active plugins' UI, set on the routes that show core's views. */\n pluginUi?: ConnectPluginUiSet;\n /** Loaders' notFound(), e.g. a missing drive's; core's page by default. */\n notFoundComponent?: NotFoundRouteComponent;\n /** The tree to route with: `@powerhousedao/connect/route-tree`, core's or a project's. */\n routeTree: AnyRoute;\n /** Code routes added to the file routes; see `addConnectRoutes`. A function\n * receives the tree's core routes to attach to. */\n routes?:\n | readonly AnyRoute[]\n | ((routes: ConnectRoutes) => readonly AnyRoute[]);\n /** Reports a route's loader or render error; logged by default. */\n onCatch?: (error: unknown, info?: ErrorInfo) => void;\n /** Ends every document title; \"Connect\" without one. */\n appName?: string;\n /** Renders the loading shell: layouts show their pendingComponent, not their page. */\n shell?: boolean;\n};\n\nfunction reportRouteError(error: unknown, info?: ErrorInfo) {\n console.error(error, info?.componentStack ?? \"\");\n}\n\n/** The router over `TRouteTree`; a project's generated tree registers its own. */\nexport type ConnectRouterFor<TRouteTree extends AnyRoute> = Router<\n TRouteTree,\n \"never\",\n false,\n RouterHistory,\n Record<string, any>\n>;\n// Written out, not inferred; see ConnectRootRoute.\nexport type ConnectRouter = ConnectRouterFor<ConnectRootRoute>;\nexport type ConnectRouterBundle = Pick<\n ConnectRoutes,\n \"homeRoute\" | \"driveRoute\" | \"nodeRoute\" | \"settingsRoute\"\n> & { router: ConnectRouter };\n\nexport function createConnectRouter(\n options: ConnectRouterOptions,\n): ConnectRouterBundle {\n const { routeTree, homeRoute, driveRoute, nodeRoute, settingsRoute } =\n connectRoutes(options.routeTree);\n if (options.pluginUi) applyConnectPluginUi(routeTree, options.pluginUi);\n if (options.routes) {\n addConnectRoutes(\n typeof options.routes === \"function\"\n ? options.routes(connectRoutes(routeTree))\n : options.routes,\n );\n }\n setSettingsRoute(settingsRoute);\n const router = createRouter({\n routeTree,\n basepath: options.basepath,\n history: options.history,\n context: {\n store: options.store,\n arrivals: options.arrivals,\n appName: options.appName,\n shell: options.shell,\n },\n parseSearch: parseConnectSearch,\n stringifySearch: stringifyConnectSearch,\n scrollRestoration: connectScrollRestoration(),\n scrollToTopSelectors: [`#${CONTENT_VIEW_ID}`],\n InnerWrap: options.InnerWrap,\n defaultPendingComponent: options.pendingComponent,\n defaultErrorComponent:\n options.errorComponent ?? options.pluginUi?.errorComponent ?? CoreError,\n // Not per route: a route's notFoundComponent mounts a boundary that\n // re-renders on every navigation.\n defaultNotFoundComponent: options.notFoundComponent ?? CoreNotFound,\n defaultOnCatch: options.onCatch ?? reportRouteError,\n });\n return { router, homeRoute, driveRoute, nodeRoute, settingsRoute };\n}\n\nfunction writeSelection(store: PHStore, data: DriveRouteData | undefined) {\n // Drive first: a new drive resets the node.\n store.selectedDriveId = data?.driveId;\n store.selectedNodeId = data?.nodeId;\n}\n\n/** Makes `router` the store's navigation and writes the selection it commits. */\nexport function bindConnectRouter(\n connectRouter: ConnectRouterBundle,\n store: PHStore,\n) {\n const { router, nodeRoute } = connectRouter;\n\n // Only committed matches select; pending ones keep the open view.\n const commitSelection = () => {\n const matches = router.state.matches;\n const drive = matches.find((match) => match.routeId === nodeRoute.id);\n if (drive) {\n if (drive.status === \"success\" && drive.loaderData) {\n writeSelection(store, drive.loaderData);\n } else if (matches.some((match) => match.status === \"notFound\")) {\n // The drive's 404 page shows no drive.\n writeSelection(store, undefined);\n }\n return;\n }\n // Any other page (home, settings, a project's, a 404) shows no drive.\n const shown = matches.at(-1)?.status;\n if (shown === \"success\" || shown === \"notFound\") {\n writeSelection(store, undefined);\n }\n };\n\n // A routed modal is the URL's: the store holds what the location names,\n // unless a confirmation is open over it.\n const syncModal = () => {\n const routed = modalFromSearch(router.state.location.search);\n if (store.modal && !isRoutedModal(store.modal)) return;\n if (routed) {\n if (JSON.stringify(store.modal) !== JSON.stringify(routed)) {\n store.modal = routed;\n }\n } else if (isRoutedModal(store.modal)) {\n store.modal = undefined;\n }\n };\n\n // Set once, before the first render; selection setters navigate from the start.\n const navigation = createConnectNavigation(connectRouter);\n store.navigation = navigation;\n\n // The node route's head reads names from the store; a rename re-runs it.\n const shownTitle = () => {\n const node = router.state.matches.find((m) => m.routeId === nodeRoute.id);\n return driveTitle(store, node?.loaderData, router.options.context.appName);\n };\n let title = shownTitle();\n const retitle = () => {\n const next = shownTitle();\n if (next === title) return;\n title = next;\n void router.invalidate({ filter: (m) => m.routeId === nodeRoute.id });\n };\n\n // Before mount, so the view and scroll restoration see the new selection.\n const unsubscribes = [\n router.subscribe(\"onBeforeRouteMount\", commitSelection),\n router.subscribe(\"onResolved\", commitSelection),\n router.subscribe(\"onResolved\", () => {\n title = shownTitle();\n }),\n router.subscribe(\"onResolved\", syncModal),\n getPHStoreSubscribe(store, \"drives\")(retitle),\n getPHStoreSubscribe(store, \"driveNodes\")(retitle),\n markRouterNavigations(router),\n ];\n const unbindScroll = bindConnectScroll(router, CONTENT_VIEW_ID);\n commitSelection();\n syncModal();\n\n return () => {\n navigation.dispose();\n unbindScroll();\n for (const unsubscribe of unsubscribes) unsubscribe();\n if (store.navigation === navigation) store.navigation = undefined;\n };\n}\n","import type { PHStore } from \"@powerhousedao/reactor-browser\";\nimport { createDriveArrivals } from \"@powerhousedao/reactor-browser\";\nimport { getConnectPluginUi } from \"../plugins/plugin-ui.js\";\nimport { getConnectRegistry } from \"../registry.js\";\nimport type {\n ConnectRouterBundle,\n ConnectRouterOptions,\n} from \"./connect-router.js\";\nimport { bindConnectRouter, createConnectRouter } from \"./connect-router.js\";\nimport { resolveConnectRoutes } from \"./route-tree.js\";\n\nexport type ConnectAppRouterOptions = Omit<\n ConnectRouterOptions,\n \"store\" | \"arrivals\"\n>;\n\n/** The app's one router over `store`; created, and made the store's navigation,\n * on first use. Registered routes join `options.routes`. */\nexport function getConnectAppRouter(\n store: PHStore,\n options: () => ConnectAppRouterOptions,\n): ConnectRouterBundle {\n const registry = getConnectRegistry();\n const current = registry.app;\n if (current) {\n if (import.meta.env?.DEV && current.store !== store) {\n throw new Error(\"Connect's router is already bound to another PH store\");\n }\n return current.bundle;\n }\n const { routes, ...rest } = options();\n const bundle = createConnectRouter({\n store,\n arrivals: createDriveArrivals(store),\n pluginUi: getConnectPluginUi(),\n ...rest,\n routes: (tree) => [\n ...(routes ? resolveConnectRoutes(routes, tree.routeTree) : []),\n ...registry.routes.flatMap((entry) => {\n entry.added = [\n ...resolveConnectRoutes(entry.registration, tree.routeTree),\n ];\n return entry.added;\n }),\n ],\n });\n registry.app = { store, bundle, unbind: bindConnectRouter(bundle, store) };\n return bundle;\n}\n\n/** Stops the app's router writing the selection, e.g. on HMR. */\nexport function disposeConnectAppRouter() {\n const registry = getConnectRegistry();\n registry.app?.unbind();\n registry.app = undefined;\n}\n","import type { PHStore } from \"@powerhousedao/reactor-browser\";\nimport { PHStoreProvider } from \"@powerhousedao/reactor-browser\";\nimport type { AnyRoute } from \"@tanstack/react-router\";\nimport { RouterProvider } from \"@tanstack/react-router\";\nimport type { ConnectAppRouterOptions } from \"./app-router.js\";\nimport { getConnectAppRouter } from \"./app-router.js\";\n\n/** A core-only app: `routeTree`'s views over `store`. */\nexport function ConnectCoreApp(props: {\n store: PHStore;\n routeTree: AnyRoute;\n basepath?: string;\n options?: () => Omit<ConnectAppRouterOptions, \"routeTree\">;\n}) {\n const { router } = getConnectAppRouter(props.store, () => ({\n basepath: props.basepath,\n ...props.options?.(),\n routeTree: props.routeTree,\n }));\n return (\n <PHStoreProvider store={props.store}>\n <RouterProvider router={router} />\n </PHStoreProvider>\n );\n}\n","import type { AnyRoute } from \"@tanstack/react-router\";\n\ntype RouteOptionKey = keyof AnyRoute[\"options\"];\n\n/** A core route's `options`: what it sets, as it sets it, and every other\n * route option, unset. */\nexport type CoreRouteOptions<T extends object> = T & {\n [K in Exclude<RouteOptionKey, keyof T>]?: undefined;\n};\n\n/** Types a core route file's exported `options` as {@link CoreRouteOptions}. */\nexport function coreRouteOptions<T extends object>(\n options: T,\n): CoreRouteOptions<T> {\n return options as CoreRouteOptions<T>;\n}\n"],"mappings":";;;;;;;;;;AAGA,MAAa,mBAAmB;;AAGhC,MAAa,kBAAkB;;CAE7B,OAAO;;CAEP,QAAQ;;CAER,QAAQ;;CAER,OAAO;AACT;AAGA,MAAM,SAAS,EACb,UAAU;CAAE,UAAU;CAAe,OAAO;CAAU,YAAY;AAAU,EAC9E;AAEA,IAAI,UAAU;AACd,IAAI;;AAGJ,SAAgB,kBAAkB,MAAM,CAAC,CAAC,YAAY,KAAK,KAAK;CAC9D,IAAI,KAAK,OAAO;CAChB,IAAI;EACF,OACE,IAAI,gBAAgB,SAAS,MAAM,CAAC,CAAC,IAAI,MAAM,MAAM,OACrD,aAAa,QAAA,SAAwB,MAAM;CAE/C,QAAQ;EACN,OAAO;CACT;AACF;;AAGA,SAAgB,sBAAsB;CACpC,IAAI,CAAC,SAAS;CACd,YAAY,YAAY,IAAI;CAC5B,YAAY,KAAK,aAAa,EAAE,QAAQ,OAAO,CAAC;AAClD;AAEA,SAAS,QAAQ,MAAc,OAA2B,KAAa;CACrE,IAAI,UAAU,KAAA,GAAW;CACzB,YAAY,QAAQ,MAAM;EAAE;EAAO;EAAK,QAAQ;CAAO,CAAC;AAC1D;;AAGA,SAAgB,sBACd,QACA,UAAU,kBAAkB,GAC5B;CACA,IAAI,CAAC,SAAS,aAAa,CAAC;CAC5B;CACA,IAAI,aAAa;CACjB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM,eAAe;EACnB,OAAO,UAAU,0BAA0B;GACzC;GACA,YAAY,YAAY,IAAI;GAC5B,UAAU;GACV,YAAY,KAAA;GACZ,QAAQ,gBAAgB,OAAO,SAAS,SAAS;GACjD,UAAU,SAAS,KAAA;EACrB,CAAC;EACD,OAAO,UAAU,sBAAsB;GACrC,UAAU,YAAY,IAAI;EAC5B,CAAC;EACD,OAAO,UAAU,gBAAgB;GAC/B,SAAS,YAAY,IAAI;GACzB,QAAQ,gBAAgB,QAAQ,SAAS,MAAM;EACjD,CAAC;EACD,OAAO,UAAU,oBAAoB;GACnC,QAAQ,gBAAgB,QAAQ,QAAQ,YAAY,IAAI,CAAC;GACzD,MAAM,UAAU;GAChB,MAAM,QAAQ,WAAW;GAEzB,4BACE,iBAAiB;IACf,IAAI,YAAY,YACd,QAAQ,gBAAgB,OAAO,OAAO,YAAY,IAAI,CAAC;GAE3D,CAAC,CACH;EACF,CAAC;CACH;CACA,aAAa;EACX;EACA,KAAK,MAAM,eAAe,cAAc,YAAY;CACtD;AACF;;;ACtFA,MAAM,6BAAa,IAAI,IAAI;CAAC;CAAQ;CAAW;AAAI,CAAC;AACpD,MAAM,6BAAa,IAAI,QAAwC;;;AAI/D,SAAgB,2BAA2B;CAEzC,MAAM,QAAQ,EAAE,WAAW,KAAK;CAChC,MAAM,WAAW,EAAE,eACjB,MAAM,aAAa,CAAC,CAAC,SAAS;CAChC,WAAW,IAAI,SAAS,KAAK;CAC7B,OAAO;AACT;;AAGA,SAAgB,kBAAkB,QAAsB,eAAuB;CAC7E,MAAM,QAAQ,WAAW,IAAI,OAAO,QAAQ,iBAA2B;CACvE,IAAI,CAAC,OAAO,aAAa,CAAC;CAC1B,MAAM,qBAAqB,OAAO,QAAQ,WAAW,EAAE,aAAa;EAClE,MAAM,YAAY,WAAW,IAAI,OAAO,IAAI;CAC9C,CAAC;CACD,IAAI,OAAO,aAAa,aAAa,OAAO;CAG5C,IAAI;CACJ,IAAI,iBAAiB;CACrB,MAAM,YAAY,UAAiB;EACjC,MAAM,SAAS,MAAM;EACrB,IAAI,WAAW,UACb,iBAAiB,OAAO,UAAU,KAAK,OAAO,UAAU;OACnD,IAAI,kBAAkB,WAAW,OAAO,OAAO,eACpD,eAAe,OAAO,YAAY,IAAI,SAAS,KAAA;CAEnD;CACA,SAAS,iBAAiB,UAAU,UAAU;EAC5C,SAAS;EACT,SAAS;CACX,CAAC;CAED,IAAI,cAAc;CAClB,MAAM,eAAe;EACnB;EAEA,OAAO,UAAU,4BAA4B;GAC3C,cAAc,OAAO,QAAQ;EAC/B,CAAC;EACD,OAAO,UAAU,eAAe,EAAE,iBAAiB;GACjD,IAAI,MAAM,aAAa,WAAW,QAAQ,CAAC,aAAa;GACxD,IAAI,cAAc,aAAa,aAAa,SAAS,GAAG,CAAC;GACzD,IAAI,gBAAgB,OAAO,SAAS,GAAG,CAAC;GACxC,eAAe,KAAA;GACf,iBAAiB;EACnB,CAAC;CACH;CACA,aAAa;EACX,SAAS,oBAAoB,UAAU,UAAU,EAAE,SAAS,KAAK,CAAC;EAClE,KAAK,MAAM,eAAe,cAAc,YAAY;CACtD;AACF;;;ACnDA,MAAM,sBAAuD,EAC3D,QACA,WACI;CACJ,MAAM,SAAS,EAAE,GAAG,KAAK,MAAM,EAAE;CACjC,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,GAC9C,IAAI,IAAI,WAAW,yBAAyB,KAAK,EAAE,OAAO,SACxD,OAAO,OAAO;CAGlB,OAAO;AACT;;AAGA,MAAa,2BAA8D,CACzE,mBAAkC,CAAC,GAAG,oBAAoB,CAAC,GAC3D,kBACF;;AAGA,SAAgB,sBACd,QACe;CACf,OAAO;AACT;;AAGA,SAAgB,mBAAmB,WAAkC;CACnE,OAAO,OAAO,YAAY,IAAI,gBAAgB,SAAS,CAAC;AAC1D;;AAGA,SAAgB,uBAAuB,QAAiC;CACtE,MAAM,SAAS,IAAI,gBAAgB;CACnC,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,GAAG;EACjD,IAAI,UAAU,KAAA,KAAa,UAAU,MAAM;EAC3C,OAAO,IAAI,KAAK,OAAO,UAAU,WAAW,QAAQ,KAAK,UAAU,KAAK,CAAC;CAC3E;CACA,MAAM,YAAY,qBAAqB,MAAM;CAC7C,OAAO,YAAY,IAAI,cAAc;AACvC;;;AAIA,SAAgB,oBACd,QACe;CACf,MAAM,SAAS,EAAE,GAAG,OAAO;CAC3B,IAAI,OAAO,4BAA4B,KAAA,GAAW,OAAO;CACzD,OAAO,0BAA0B;CACjC,MAAM,OAAO,yBAAyB,OAAO,4BAA4B;CACzE,IAAI,OAAO,GAAG,OAAO,+BAA+B,OAAO,IAAI;MAE1D,OAAO,+BAA+B,KAAA;CAC3C,OAAO;AACT;;AAGA,SAAgB,cAAc,QAAwC;CACpE,MAAM,SAAiC,CAAC;CACxC,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,GAC9C,IAAI,OAAO,UAAU,UAAU,OAAO,OAAO;MACxC,IAAI,UAAU,KAAA,KAAa,UAAU,MACxC,OAAO,OAAO,KAAK,UAAU,KAAK;CAGtC,OAAO;AACT;;;ACvDA,MAAM,mBAAmB;;;AAIzB,SAAgB,wBACd,eACoC;CACpC,MAAM,EAAE,QAAQ,WAAW,WAAW,kBAAkB;CAExD,MAAM,YAAY;CAGlB,MAAM,eAAe,WAA0B;EAC7C,MAAM,QAAQ,oBACZ,OAAO,QAAQ,QAAQ,OACvB,OAAO,SACT;EACA,OAAO;GACL,WAAW,QAAQ,cAAc,KAAK,IAAI,OAAO;GACjD,UAAU,OAAO,YAAY,KAAA;EAC/B;CACF;CAGA,MAAM,gBAAgB,EAAE,eAAiC;EACvD,MAAM,MACJ,aAAa,OAAO,aAAa,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK;EAC1D,OAAO,MAAM,GAAG,cAAc,SAAS,GAAG,QAAQ,cAAc;CAClE;CAGA,MAAM,aAAwC,QAAQ,YAAY;EAChE,OAAY,SAAS;GACnB,IAAI;GACJ,SAAS,SAAS,kBAAkB,CAAC,GAAG,OAAO,cAAc,IAAI,CAAC,CAAC;GACnE,OAAO;GACP,SAAS,SAAS;GAClB,aAAa;EACf,CAAC;CACH;CAEA,MAAM,sBACJ,OAAO,MAAM,QAAQ,MAAM,UAAU,MAAM,YAAY,cAAc,EAAE;CAIzE,MAAM,mBACJ,SACA,WACG;EACH,MAAM,EAAE,UAAU,OAAO,QAAQ;EACjC,MAAM,OACJ,WAAY,iBAAiB,MAAM,KAAK,cAAc,IAClD,eAAe,KAAK,IACnB,GACE,wBAAwB,MAAM,YACjC;EACN,aAAa;CACf;CAEA,MAAM,aAAa,WAA2C;EAC5D,IAAI,CAAC,QAAQ,OAAO,UAAU;EAC9B,IAAI,iBAAiB,MAAM,GAAG,OAAO,aAAa,MAAM;EACxD,MAAM,EAAE,WAAW,aAAa,YAAY,MAAM;EAClD,OAAO,KAAK,UAAU,CAAC,WAAW,YAAY,EAAE,CAAC;CACnD;CACA,IAAI;CACJ,IAAI;CACJ,MAAM,cAAc,YAA4C;EAC9D,IAAI,YAAY,cAAc,OAAO;EACrC,eAAe;EACf,MAAM,QAAQ,QAAQ,MAAM,UAAU,MAAM,YAAY,UAAU,EAAE;EACpE,MAAM,WAAW,QAAQ,MACtB,UAAU,MAAM,YAAY,cAAc,EAC7C;EACA,IAAI,OACF,aAAa,UAAU,MAAM,MAAuB;OAC/C,IAAI,UAET,aAAa,QAAQ,GAAG,EAAE,CAAC,EAAE,SAAS,QAAQ,OAAO,EAAE;OAEvD,aAAa,QAAQ,MAClB,UAAU,MAAM,YAAY,UAAU,EACzC,CAAC,EAAE;EAEL,OAAO;CACT;CAGA,MAAM,wBAAQ,IAAI,IAAoB;CACtC,IAAI;CAEJ,MAAM,mBAAoC,QAAQ,YAChD,WAAW,SAAS,oBAAoB,MAAM,MAAM,GAAG,OAAO;CAEhE,IAAI;CACJ,OAAO;EACL,gBAAgB,OAAO,QAAQ;EAE/B,OAAO,QAAQ,YAAY;GACzB,oBAAoB;GACpB,MAAM,SAAS,kBAAkB,CAAC,GAAG,SAAS,UAAU,CAAC,CAAC;GAC1D,MAAM,UAAU,SAAS;GACzB,MAAM,QAAQ,gBAAgB,SAAS,MAAM;GAC7C,IAAI,CAAC,QAAQ;IACX,OAAY,SAAS;KACnB,IAAI,UAAU;KACd;KACA;KACA;IACF,CAAC;IACD;GACF;GACA,IAAI,iBAAiB,MAAM,GAAG;IAC5B,UAAe,SAAS;KACtB,IAAI,aAAa,MAAM;KACvB;KACA;KACA;IACF,CAAC;IACD;GACF;GACA,OAAY,SAAS;IACnB,IAAI,UAAU;IACd,QAAQ,YAAY,MAAM;IAC1B;IACA;IACA;GACF,CAAC;EACH;EAEA,UAAU,WAAW;GACnB,MAAM,EAAE,cAAc,OAAO;GAC7B,IAAI,cAAc,aAAa;IAC7B,MAAM,MAAM;IACZ,cAAc;GAChB;GACA,MAAM,MAAM,UAAU,MAAM;GAC5B,IAAI,OAAO,MAAM,IAAI,GAAG;GACxB,IAAI,SAAS,KAAA,GAAW;IAUtB,QATiB,CAAC,SACd,OAAO,cAAc;KAAE,IAAI,UAAU;KAAU,QAAQ,CAAC;IAAE,CAAC,IAC3D,iBAAiB,MAAM,IACrB,UAAU,cAAc;KAAE,IAAI,aAAa,MAAM;KAAG,QAAQ,CAAC;IAAE,CAAC,IAChE,OAAO,cAAc;KACnB,IAAI,UAAU;KACd,QAAQ,YAAY,MAAM;KAC1B,QAAQ,CAAC;IACX,CAAC,EAAA,CACS;IAChB,MAAM,IAAI,KAAK,IAAI;GACrB;GACA,OAAO;EACT;EAEA,eAAe,WAAW;GAExB,MAAM,SAAS,iBAAiB,MAAM,KAAK,OAAO,aAAa;GAC/D,MAAM,MAAM,SAAS,GAAG,cAAc,SAAS,KAAK,UAAU,MAAM;GACpE,OAAO,eAAe;IACpB;IACA,SAAS,UAAU;KACjB,MAAM,UAAU,WAAW,MAAM,OAAO;KACxC,OAAO,SAAS,CAAC,CAAC,SAAS,WAAW,GAAG,IAAI,YAAY;IAC3D;GACF,CAAC;EACH;EACA,UAAU,WAAW;GACnB,aAAa,YAAY;GACzB,IAAI,CAAC,QAAQ;GACb,eAAe,iBAAiB;IAO9B,CANmB,iBAAiB,MAAM,IACtC,UAAU,aAAa,EAAE,IAAI,aAAa,MAAM,EAAE,CAAC,IACnD,OAAO,aAAa;KAClB,IAAI,UAAU;KACd,QAAQ,YAAY,MAAM;IAC5B,CAAC,EAAA,CACM,YAAY,KAAA,CAAS;GAClC,GAAG,gBAAgB;EACrB;EACA;EAEA,kBAAkB;GAChB,MAAM,SAAS,eAAe;IAC5B;IACA,SAAS,UACP,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,UAAU,MAAM,SAAS;GACnD,CAAC;GACD,OAAO,cAAc,cAAc,MAAM,GAAG,CAAC,MAAM,CAAC;EACtD;EACA,0BAA0B;EAC1B,mBAAmB;GACjB,MAAM,EAAE,UAAU,OAAO,QAAQ;GACjC,MAAM,OAAO,gBAAgB,OAAO,MAAM,WAAW;GACrD,IAAI,SAAS,KAAA,GAAW,OAAO;GAC/B,OAAO,QAAQ,GAAG,OAAO,MAAM,WAAW;GAC1C,OAAO;EACT;EACA,eAAe,aAAa,YAAY;CAC1C;AACF;;;AC1KA,SAAS,iBAAiB,OAAgB,MAAkB;CAC1D,QAAQ,MAAM,OAAO,MAAM,kBAAkB,EAAE;AACjD;AAiBA,SAAgB,oBACd,SACqB;CACrB,MAAM,EAAE,WAAW,WAAW,YAAY,WAAW,kBACnD,cAAc,QAAQ,SAAS;CACjC,IAAI,QAAQ,UAAU,qBAAqB,WAAW,QAAQ,QAAQ;CACtE,IAAI,QAAQ,QACV,iBACE,OAAO,QAAQ,WAAW,aACtB,QAAQ,OAAO,cAAc,SAAS,CAAC,IACvC,QAAQ,MACd;CAEF,iBAAiB,aAAa;CAwB9B,OAAO;EAAE,QAvBM,aAAa;GAC1B;GACA,UAAU,QAAQ;GAClB,SAAS,QAAQ;GACjB,SAAS;IACP,OAAO,QAAQ;IACf,UAAU,QAAQ;IAClB,SAAS,QAAQ;IACjB,OAAO,QAAQ;GACjB;GACA,aAAa;GACb,iBAAiB;GACjB,mBAAmB,yBAAyB;GAC5C,sBAAsB,CAAC,IAAI,iBAAiB;GAC5C,WAAW,QAAQ;GACnB,yBAAyB,QAAQ;GACjC,uBACE,QAAQ,kBAAkB,QAAQ,UAAU,kBAAkB;GAGhE,0BAA0B,QAAQ,qBAAqB;GACvD,gBAAgB,QAAQ,WAAW;EACrC,CACc;EAAG;EAAW;EAAY;EAAW;CAAc;AACnE;AAEA,SAAS,eAAe,OAAgB,MAAkC;CAExE,MAAM,kBAAkB,MAAM;CAC9B,MAAM,iBAAiB,MAAM;AAC/B;;AAGA,SAAgB,kBACd,eACA,OACA;CACA,MAAM,EAAE,QAAQ,cAAc;CAG9B,MAAM,wBAAwB;EAC5B,MAAM,UAAU,OAAO,MAAM;EAC7B,MAAM,QAAQ,QAAQ,MAAM,UAAU,MAAM,YAAY,UAAU,EAAE;EACpE,IAAI,OAAO;GACT,IAAI,MAAM,WAAW,aAAa,MAAM,YACtC,eAAe,OAAO,MAAM,UAAU;QACjC,IAAI,QAAQ,MAAM,UAAU,MAAM,WAAW,UAAU,GAE5D,eAAe,OAAO,KAAA,CAAS;GAEjC;EACF;EAEA,MAAM,QAAQ,QAAQ,GAAG,EAAE,CAAC,EAAE;EAC9B,IAAI,UAAU,aAAa,UAAU,YACnC,eAAe,OAAO,KAAA,CAAS;CAEnC;CAIA,MAAM,kBAAkB;EACtB,MAAM,SAAS,gBAAgB,OAAO,MAAM,SAAS,MAAM;EAC3D,IAAI,MAAM,SAAS,CAAC,cAAc,MAAM,KAAK,GAAG;EAChD,IAAI,QACE;OAAA,KAAK,UAAU,MAAM,KAAK,MAAM,KAAK,UAAU,MAAM,GACvD,MAAM,QAAQ;EAAA,OAEX,IAAI,cAAc,MAAM,KAAK,GAClC,MAAM,QAAQ,KAAA;CAElB;CAGA,MAAM,aAAa,wBAAwB,aAAa;CACxD,MAAM,aAAa;CAGnB,MAAM,mBAAmB;EACvB,MAAM,OAAO,OAAO,MAAM,QAAQ,MAAM,MAAM,EAAE,YAAY,UAAU,EAAE;EACxE,OAAO,WAAW,OAAO,MAAM,YAAY,OAAO,QAAQ,QAAQ,OAAO;CAC3E;CACA,IAAI,QAAQ,WAAW;CACvB,MAAM,gBAAgB;EACpB,MAAM,OAAO,WAAW;EACxB,IAAI,SAAS,OAAO;EACpB,QAAQ;EACR,OAAY,WAAW,EAAE,SAAS,MAAM,EAAE,YAAY,UAAU,GAAG,CAAC;CACtE;CAGA,MAAM,eAAe;EACnB,OAAO,UAAU,sBAAsB,eAAe;EACtD,OAAO,UAAU,cAAc,eAAe;EAC9C,OAAO,UAAU,oBAAoB;GACnC,QAAQ,WAAW;EACrB,CAAC;EACD,OAAO,UAAU,cAAc,SAAS;EACxC,oBAAoB,OAAO,QAAQ,CAAC,CAAC,OAAO;EAC5C,oBAAoB,OAAO,YAAY,CAAC,CAAC,OAAO;EAChD,sBAAsB,MAAM;CAC9B;CACA,MAAM,eAAe,kBAAkB,QAAQ,eAAe;CAC9D,gBAAgB;CAChB,UAAU;CAEV,aAAa;EACX,WAAW,QAAQ;EACnB,aAAa;EACb,KAAK,MAAM,eAAe,cAAc,YAAY;EACpD,IAAI,MAAM,eAAe,YAAY,MAAM,aAAa,KAAA;CAC1D;AACF;;;;;AC1LA,SAAgB,oBACd,OACA,SACqB;CACrB,MAAM,WAAW,mBAAmB;CACpC,MAAM,UAAU,SAAS;CACzB,IAAI,SAAS;EACX,IAAI,YAAY,KAAK,OAAO,QAAQ,UAAU,OAC5C,MAAM,IAAI,MAAM,uDAAuD;EAEzE,OAAO,QAAQ;CACjB;CACA,MAAM,EAAE,QAAQ,GAAG,SAAS,QAAQ;CACpC,MAAM,SAAS,oBAAoB;EACjC;EACA,UAAU,oBAAoB,KAAK;EACnC,UAAU,mBAAmB;EAC7B,GAAG;EACH,SAAS,SAAS,CAChB,GAAI,SAAS,qBAAqB,QAAQ,KAAK,SAAS,IAAI,CAAC,GAC7D,GAAG,SAAS,OAAO,SAAS,UAAU;GACpC,MAAM,QAAQ,CACZ,GAAG,qBAAqB,MAAM,cAAc,KAAK,SAAS,CAC5D;GACA,OAAO,MAAM;EACf,CAAC,CACH;CACF,CAAC;CACD,SAAS,MAAM;EAAE;EAAO;EAAQ,QAAQ,kBAAkB,QAAQ,KAAK;CAAE;CACzE,OAAO;AACT;;AAGA,SAAgB,0BAA0B;CACxC,MAAM,WAAW,mBAAmB;CACpC,SAAS,KAAK,OAAO;CACrB,SAAS,MAAM,KAAA;AACjB;;;;AC/CA,SAAgB,eAAe,OAK5B;CACD,MAAM,EAAE,WAAW,oBAAoB,MAAM,cAAc;EACzD,UAAU,MAAM;EAChB,GAAG,MAAM,UAAU;EACnB,WAAW,MAAM;CACnB,EAAE;CACF,OACE,oBAAC,iBAAD;EAAiB,OAAO,MAAM;EAC5B,UAAA,oBAAC,gBAAD,EAAwB,OAAS,CAAA;CAClB,CAAA;AAErB;;;;ACbA,SAAgB,iBACd,SACqB;CACrB,OAAO;AACT"}
package/dist/router.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { A as useDriveRouteData, C as holdConnectRoutes, D as DRIVE_ROUTE_ID, E as removeConnectRoutes, F as DriveRouteData, I as DriveRouteParams, J as ConnectModals, L as isDriveNotFound, M as ConnectRouterContext, N as DriveLoaderOptions, O as DriveRouteView, P as DriveNotFoundData, R as loadDrive, S as connectRoutesSettled, T as registerPackageRoutes, Y as ModalOutlet, _ as ConnectRoutes, a as bindConnectRouter, b as addConnectRoutes, g as ConnectRootRoute, h as APP_ROUTE_ID, i as ConnectRouterOptions, j as useDriveRouteIds, k as NODE_ROUTE_ID, m as ConnectRouteRegistration, n as ConnectRouterBundle, o as createConnectRouter, q as CORE_MODAL_VIEWS, r as ConnectRouterFor, t as ConnectRouter, v as HOME_ROUTE_ID, w as registerConnectRoutes, x as connectRoutes, y as PackageRoute, z as loadNode } from "./connect-router-11uRIT3z.js";
2
2
  import { a as DrivePending, i as DocumentViewProps, n as ContentOutlet, o as DriveViewProps, r as DRIVE_PENDING_MS, t as CONTENT_VIEW_ID } from "./route-components-1XyfosoL.js";
3
- import { $ as useCreateDocumentTarget, A as validateDriveSearch, B as coreView, C as FEATURE_FLAG_PARAM_PREFIX, D as parseConnectSearch, E as definedSearch, F as useModalFrame, G as markRouterNavigations, H as PERF_STORAGE_KEY, I as ConnectCoreApp, J as ConnectAppRouterOptions, K as routerPerfEnabled, L as CoreError, M as connectScrollRestoration, N as ModalDialog, O as stringifyConnectSearch, P as ModalFrameProps, Q as CreateDocumentTarget, R as CoreNotFound, S as ConnectSearch, T as connectSearchMiddlewares, U as ROUTER_MEASURES, V as isCoreView, W as markNavigationClick, X as getConnectAppRouter, Y as disposeConnectAppRouter, Z as useIsColdStart, _ as NavRouteEntry, a as SETTINGS_ROUTE_ID, b as useNavRoutes, c as redirectToSettingsTab, d as settingsTabsOf, f as settingsTitle, g as ConnectNavItem, h as useSettingsTabs, i as ConnectSettingsTab, j as bindConnectScroll, k as validateConnectSearch, l as setSettingsRoute, m as useForgetSettingsOpenedFrom, n as driveTitle, o as SettingsTabEntry, p as showsSettingsTab, q as createConnectNavigation, r as notFoundTitle, s as keepOpenedFrom, t as appTitle, u as settingsTabs, v as SidebarMode, w as GLOBAL_SEARCH_PARAMS, x as useSidebarMode, y as navRoutes, z as coreModals } from "./index-Cm8rYUhs.js";
4
- export { APP_ROUTE_ID, CONTENT_VIEW_ID, CORE_MODAL_VIEWS, type ConnectAppRouterOptions, ConnectCoreApp, type ConnectModals, type ConnectNavItem, type ConnectRootRoute, type ConnectRouteRegistration, type ConnectRouter, type ConnectRouterBundle, type ConnectRouterContext, type ConnectRouterFor, type ConnectRouterOptions, type ConnectRoutes, type ConnectSearch, type ConnectSettingsTab, ContentOutlet, CoreError, CoreNotFound, type CreateDocumentTarget, DRIVE_PENDING_MS, DRIVE_ROUTE_ID, type DocumentViewProps, type DriveLoaderOptions, type DriveNotFoundData, DrivePending, type DriveRouteData, type DriveRouteParams, type DriveRouteView, type DriveViewProps, FEATURE_FLAG_PARAM_PREFIX, GLOBAL_SEARCH_PARAMS, HOME_ROUTE_ID, ModalDialog, type ModalFrameProps, ModalOutlet, NODE_ROUTE_ID, type NavRouteEntry, PERF_STORAGE_KEY, type PackageRoute, ROUTER_MEASURES, SETTINGS_ROUTE_ID, type SettingsTabEntry, type SidebarMode, addConnectRoutes, appTitle, bindConnectRouter, bindConnectScroll, connectRoutes, connectRoutesSettled, connectScrollRestoration, connectSearchMiddlewares, coreModals, coreView, createConnectNavigation, createConnectRouter, definedSearch, disposeConnectAppRouter, driveTitle, getConnectAppRouter, holdConnectRoutes, isCoreView, isDriveNotFound, keepOpenedFrom, loadDrive, loadNode, markNavigationClick, markRouterNavigations, navRoutes, notFoundTitle, parseConnectSearch, redirectToSettingsTab, registerConnectRoutes, registerPackageRoutes, removeConnectRoutes, routerPerfEnabled, setSettingsRoute, settingsTabs, settingsTabsOf, settingsTitle, showsSettingsTab, stringifyConnectSearch, useCreateDocumentTarget, useDriveRouteData, useDriveRouteIds, useForgetSettingsOpenedFrom, useIsColdStart, useModalFrame, useNavRoutes, useSettingsTabs, useSidebarMode, validateConnectSearch, validateDriveSearch };
3
+ import { $ as disposeConnectAppRouter, A as stringifyConnectSearch, B as ConnectCoreApp, C as useSidebarMode, D as connectSearchMiddlewares, E as GLOBAL_SEARCH_PARAMS, F as CoreRouteOptions, G as isCoreView, H as CoreNotFound, I as coreRouteOptions, J as markNavigationClick, K as PERF_STORAGE_KEY, L as ModalDialog, M as validateDriveSearch, N as bindConnectScroll, O as definedSearch, P as connectScrollRestoration, Q as ConnectAppRouterOptions, R as ModalFrameProps, S as useNavRoutes, T as FEATURE_FLAG_PARAM_PREFIX, U as coreModals, V as CoreError, W as coreView, X as routerPerfEnabled, Y as markRouterNavigations, Z as createConnectNavigation, _ as ConnectNavItem, a as SETTINGS_ROUTE_ID, b as navRoutes, c as redirectToSettingsTab, d as settingsTabsOf, et as getConnectAppRouter, f as settingsTitle, g as ConnectChrome, h as useSettingsTabs, i as ConnectSettingsTab, j as validateConnectSearch, k as parseConnectSearch, l as setSettingsRoute, m as useForgetSettingsOpenedFrom, n as driveTitle, nt as CreateDocumentTarget, o as SettingsTabEntry, p as showsSettingsTab, q as ROUTER_MEASURES, r as notFoundTitle, rt as useCreateDocumentTarget, s as keepOpenedFrom, t as appTitle, tt as useIsColdStart, u as settingsTabs, v as NavRouteEntry, w as ConnectSearch, x as useConnectChrome, y as SidebarMode, z as useModalFrame } from "./index-Bfl1VYdj.js";
4
+ export { APP_ROUTE_ID, CONTENT_VIEW_ID, CORE_MODAL_VIEWS, type ConnectAppRouterOptions, type ConnectChrome, ConnectCoreApp, type ConnectModals, type ConnectNavItem, type ConnectRootRoute, type ConnectRouteRegistration, type ConnectRouter, type ConnectRouterBundle, type ConnectRouterContext, type ConnectRouterFor, type ConnectRouterOptions, type ConnectRoutes, type ConnectSearch, type ConnectSettingsTab, ContentOutlet, CoreError, CoreNotFound, type CoreRouteOptions, type CreateDocumentTarget, DRIVE_PENDING_MS, DRIVE_ROUTE_ID, type DocumentViewProps, type DriveLoaderOptions, type DriveNotFoundData, DrivePending, type DriveRouteData, type DriveRouteParams, type DriveRouteView, type DriveViewProps, FEATURE_FLAG_PARAM_PREFIX, GLOBAL_SEARCH_PARAMS, HOME_ROUTE_ID, ModalDialog, type ModalFrameProps, ModalOutlet, NODE_ROUTE_ID, type NavRouteEntry, PERF_STORAGE_KEY, type PackageRoute, ROUTER_MEASURES, SETTINGS_ROUTE_ID, type SettingsTabEntry, type SidebarMode, addConnectRoutes, appTitle, bindConnectRouter, bindConnectScroll, connectRoutes, connectRoutesSettled, connectScrollRestoration, connectSearchMiddlewares, coreModals, coreRouteOptions, coreView, createConnectNavigation, createConnectRouter, definedSearch, disposeConnectAppRouter, driveTitle, getConnectAppRouter, holdConnectRoutes, isCoreView, isDriveNotFound, keepOpenedFrom, loadDrive, loadNode, markNavigationClick, markRouterNavigations, navRoutes, notFoundTitle, parseConnectSearch, redirectToSettingsTab, registerConnectRoutes, registerPackageRoutes, removeConnectRoutes, routerPerfEnabled, setSettingsRoute, settingsTabs, settingsTabsOf, settingsTitle, showsSettingsTab, stringifyConnectSearch, useConnectChrome, useCreateDocumentTarget, useDriveRouteData, useDriveRouteIds, useForgetSettingsOpenedFrom, useIsColdStart, useModalFrame, useNavRoutes, useSettingsTabs, useSidebarMode, validateConnectSearch, validateDriveSearch };
5
5
  export {};
package/dist/router.js CHANGED
@@ -1,5 +1,5 @@
1
- import { c as CoreNotFound, d as isCoreView, f as isDriveNotFound, l as coreModals, m as loadNode, p as loadDrive, s as CoreError, u as coreView } from "./plugin-ui-W0ma6oKJ.js";
1
+ import { c as CoreNotFound, d as isCoreView, f as isDriveNotFound, l as coreModals, m as loadNode, p as loadDrive, s as CoreError, u as coreView } from "./plugin-ui-fDXhKTCK.js";
2
2
  import { a as connectRoutesSettled, c as registerPackageRoutes, f as CORE_MODAL_VIEWS, h as useModalFrame, i as connectRoutes, l as removeConnectRoutes, m as ModalDialog, n as HOME_ROUTE_ID, o as holdConnectRoutes, p as ModalOutlet, r as addConnectRoutes, s as registerConnectRoutes, t as APP_ROUTE_ID } from "./route-tree-D0aszMrk.js";
3
- import { C as ContentOutlet, E as useIsColdStart, S as CONTENT_VIEW_ID, T as DrivePending, _ as useForgetSettingsOpenedFrom, a as DRIVE_ROUTE_ID, b as driveTitle, c as useDriveRouteIds, d as redirectToSettingsTab, f as setSettingsRoute, g as showsSettingsTab, h as settingsTitle, i as useCreateDocumentTarget, l as SETTINGS_ROUTE_ID, m as settingsTabsOf, n as useNavRoutes, o as NODE_ROUTE_ID, p as settingsTabs, r as useSidebarMode, s as useDriveRouteData, t as navRoutes, u as keepOpenedFrom, v as useSettingsTabs, w as DRIVE_PENDING_MS, x as notFoundTitle, y as appTitle } from "./sidebar-CRv_DvBV.js";
4
- import { _ as PERF_STORAGE_KEY, a as createConnectRouter, b as markRouterNavigations, c as GLOBAL_SEARCH_PARAMS, d as parseConnectSearch, f as stringifyConnectSearch, g as connectScrollRestoration, h as bindConnectScroll, i as bindConnectRouter, l as connectSearchMiddlewares, m as validateDriveSearch, n as disposeConnectAppRouter, o as createConnectNavigation, p as validateConnectSearch, r as getConnectAppRouter, s as FEATURE_FLAG_PARAM_PREFIX, t as ConnectCoreApp, u as definedSearch, v as ROUTER_MEASURES, x as routerPerfEnabled, y as markNavigationClick } from "./router-DHL9GT3P.js";
5
- export { APP_ROUTE_ID, CONTENT_VIEW_ID, CORE_MODAL_VIEWS, ConnectCoreApp, ContentOutlet, CoreError, CoreNotFound, DRIVE_PENDING_MS, DRIVE_ROUTE_ID, DrivePending, FEATURE_FLAG_PARAM_PREFIX, GLOBAL_SEARCH_PARAMS, HOME_ROUTE_ID, ModalDialog, ModalOutlet, NODE_ROUTE_ID, PERF_STORAGE_KEY, ROUTER_MEASURES, SETTINGS_ROUTE_ID, addConnectRoutes, appTitle, bindConnectRouter, bindConnectScroll, connectRoutes, connectRoutesSettled, connectScrollRestoration, connectSearchMiddlewares, coreModals, coreView, createConnectNavigation, createConnectRouter, definedSearch, disposeConnectAppRouter, driveTitle, getConnectAppRouter, holdConnectRoutes, isCoreView, isDriveNotFound, keepOpenedFrom, loadDrive, loadNode, markNavigationClick, markRouterNavigations, navRoutes, notFoundTitle, parseConnectSearch, redirectToSettingsTab, registerConnectRoutes, registerPackageRoutes, removeConnectRoutes, routerPerfEnabled, setSettingsRoute, settingsTabs, settingsTabsOf, settingsTitle, showsSettingsTab, stringifyConnectSearch, useCreateDocumentTarget, useDriveRouteData, useDriveRouteIds, useForgetSettingsOpenedFrom, useIsColdStart, useModalFrame, useNavRoutes, useSettingsTabs, useSidebarMode, validateConnectSearch, validateDriveSearch };
3
+ import { C as CONTENT_VIEW_ID, D as useIsColdStart, E as DrivePending, S as notFoundTitle, T as DRIVE_PENDING_MS, _ as showsSettingsTab, a as useCreateDocumentTarget, b as appTitle, c as useDriveRouteData, d as keepOpenedFrom, f as redirectToSettingsTab, g as settingsTitle, h as settingsTabsOf, i as useSidebarMode, l as useDriveRouteIds, m as settingsTabs, n as useConnectChrome, o as DRIVE_ROUTE_ID, p as setSettingsRoute, r as useNavRoutes, s as NODE_ROUTE_ID, t as navRoutes, u as SETTINGS_ROUTE_ID, v as useForgetSettingsOpenedFrom, w as ContentOutlet, x as driveTitle, y as useSettingsTabs } from "./sidebar-C2y4mZnX.js";
4
+ import { S as routerPerfEnabled, _ as connectScrollRestoration, a as bindConnectRouter, b as markNavigationClick, c as FEATURE_FLAG_PARAM_PREFIX, d as definedSearch, f as parseConnectSearch, g as bindConnectScroll, h as validateDriveSearch, i as getConnectAppRouter, l as GLOBAL_SEARCH_PARAMS, m as validateConnectSearch, n as ConnectCoreApp, o as createConnectRouter, p as stringifyConnectSearch, r as disposeConnectAppRouter, s as createConnectNavigation, t as coreRouteOptions, u as connectSearchMiddlewares, v as PERF_STORAGE_KEY, x as markRouterNavigations, y as ROUTER_MEASURES } from "./router-wVNdTI-Y.js";
5
+ export { APP_ROUTE_ID, CONTENT_VIEW_ID, CORE_MODAL_VIEWS, ConnectCoreApp, ContentOutlet, CoreError, CoreNotFound, DRIVE_PENDING_MS, DRIVE_ROUTE_ID, DrivePending, FEATURE_FLAG_PARAM_PREFIX, GLOBAL_SEARCH_PARAMS, HOME_ROUTE_ID, ModalDialog, ModalOutlet, NODE_ROUTE_ID, PERF_STORAGE_KEY, ROUTER_MEASURES, SETTINGS_ROUTE_ID, addConnectRoutes, appTitle, bindConnectRouter, bindConnectScroll, connectRoutes, connectRoutesSettled, connectScrollRestoration, connectSearchMiddlewares, coreModals, coreRouteOptions, coreView, createConnectNavigation, createConnectRouter, definedSearch, disposeConnectAppRouter, driveTitle, getConnectAppRouter, holdConnectRoutes, isCoreView, isDriveNotFound, keepOpenedFrom, loadDrive, loadNode, markNavigationClick, markRouterNavigations, navRoutes, notFoundTitle, parseConnectSearch, redirectToSettingsTab, registerConnectRoutes, registerPackageRoutes, removeConnectRoutes, routerPerfEnabled, setSettingsRoute, settingsTabs, settingsTabsOf, settingsTitle, showsSettingsTab, stringifyConnectSearch, useConnectChrome, useCreateDocumentTarget, useDriveRouteData, useDriveRouteIds, useForgetSettingsOpenedFrom, useIsColdStart, useModalFrame, useNavRoutes, useSettingsTabs, useSidebarMode, validateConnectSearch, validateDriveSearch };
@@ -1,7 +1,7 @@
1
1
  import { ConnectRouterContext } from "@powerhousedao/connect-core/router";
2
2
  //#region src/routes/__root.d.ts
3
3
  /** The root's options: search params and the app's title. */
4
- export declare const options: {
4
+ export declare const options: import("@powerhousedao/connect-core/router").CoreRouteOptions<{
5
5
  validateSearch: (search: Record<string, unknown>) => Record<string, string | undefined>;
6
6
  search: {
7
7
  middlewares: import("@tanstack/react-router").SearchMiddleware<import("@powerhousedao/connect-core/router").ConnectSearch>[];
@@ -18,8 +18,8 @@ export declare const options: {
18
18
  title: string;
19
19
  }[];
20
20
  };
21
- };
22
- export declare const Route: import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, ConnectRouterContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>;
21
+ }>;
22
+ export declare const Route: import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, ConnectRouterContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>;
23
23
  //#endregion
24
24
  export {};
25
25
  //# sourceMappingURL=__root.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"__root.d.ts","names":[],"sources":["../../src/routes/__root.tsx"],"mappings":";;;qBAaa;EAGc,iBAAA,QAAA,4BACU;;IACzB,8CAAW,8DAAA;;EAKlB,SAAA,OAAA;IACD;MAAS,SAAS;;IAClB;MAAoB;;;;;;;;qBAaX,wCAAK,2CAAA,WAAA,QAtBS,4BACU,oCAAkC,uDAAA,6CAAA"}
1
+ {"version":3,"file":"__root.d.ts","names":[],"sources":["../../src/routes/__root.tsx"],"mappings":";;;qBAca,sDAAO;EAGO,iBAAA,QAAA,4BACU;;IACzB,8CAAW,8DAAA;;EAKlB,SAAA,OAAA;IACD;MAAS,SAAS;;IAClB;MAAoB;;;;;;;;qBAaX,wCAAK,2CAAA,WAAA,QAtBS,4BACU,oCAAkC"}
@@ -1,12 +1,12 @@
1
1
  import { createRootRouteWithContext } from "@tanstack/react-router";
2
- import { appTitle, connectSearchMiddlewares, coreView, notFoundTitle, validateConnectSearch } from "@powerhousedao/connect-core/router";
2
+ import { appTitle, connectSearchMiddlewares, coreRouteOptions, coreView, notFoundTitle, validateConnectSearch } from "@powerhousedao/connect-core/router";
3
3
  //#region src/routes/__root.tsx
4
4
  /** The root's options: search params and the app's title. */
5
- const options = {
5
+ const options = coreRouteOptions({
6
6
  validateSearch: (search) => validateConnectSearch(search),
7
7
  search: { middlewares: connectSearchMiddlewares },
8
8
  head: ({ match, matches }) => ({ meta: [{ title: matches.some((m) => m.status === "notFound") ? notFoundTitle(match.context.appName) : appTitle(match.context.appName) }] })
9
- };
9
+ });
10
10
  const Route = createRootRouteWithContext()({
11
11
  ...options,
12
12
  component: coreView("CoreRoot")
@@ -1 +1 @@
1
- {"version":3,"file":"__root.js","names":[],"sources":["../../src/routes/__root.tsx"],"sourcesContent":["import { createRootRouteWithContext } from \"@tanstack/react-router\";\n// By package name: a project's build shares the module Connect uses, and its\n// declarations can name the types.\nimport type { ConnectRouterContext } from \"@powerhousedao/connect-core/router\";\nimport {\n appTitle,\n connectSearchMiddlewares,\n coreView,\n notFoundTitle,\n validateConnectSearch,\n} from \"@powerhousedao/connect-core/router\";\n\n/** The root's options: search params and the app's title. */\nexport const options = {\n // Passes every param through; only the global ones outlive a navigation.\n // Inline type: project declaration emit can't name this module's types.\n validateSearch: (search: Record<string, unknown>) =>\n validateConnectSearch(search) as Record<string, string | undefined>,\n search: { middlewares: connectSearchMiddlewares },\n // Child routes' titles replace this one; a notFound() skips the heads below it.\n head: ({\n match,\n matches,\n }: {\n match: { context: ConnectRouterContext };\n matches: readonly { status: string }[];\n }) => ({\n meta: [\n {\n title: matches.some((m) => m.status === \"notFound\")\n ? notFoundTitle(match.context.appName)\n : appTitle(match.context.appName),\n },\n ],\n }),\n};\n\n// The page in the theme, with the matched routes' head.\nexport const Route = createRootRouteWithContext<ConnectRouterContext>()({\n ...options,\n component: coreView(\"CoreRoot\"),\n});\n"],"mappings":";;;;AAaA,MAAa,UAAU;CAGrB,iBAAiB,WACf,sBAAsB,MAAM;CAC9B,QAAQ,EAAE,aAAa,yBAAyB;CAEhD,OAAO,EACL,OACA,eAIK,EACL,MAAM,CACJ,EACE,OAAO,QAAQ,MAAM,MAAM,EAAE,WAAW,UAAU,IAC9C,cAAc,MAAM,QAAQ,OAAO,IACnC,SAAS,MAAM,QAAQ,OAAO,EACpC,CACF,EACF;AACF;AAGA,MAAa,QAAQ,2BAAiD,CAAC,CAAC;CACtE,GAAG;CACH,WAAW,SAAS,UAAU;AAChC,CAAC"}
1
+ {"version":3,"file":"__root.js","names":[],"sources":["../../src/routes/__root.tsx"],"sourcesContent":["import { createRootRouteWithContext } from \"@tanstack/react-router\";\n// By package name: a project's build shares the module Connect uses, and its\n// declarations can name the types.\nimport type { ConnectRouterContext } from \"@powerhousedao/connect-core/router\";\nimport {\n appTitle,\n connectSearchMiddlewares,\n coreRouteOptions,\n coreView,\n notFoundTitle,\n validateConnectSearch,\n} from \"@powerhousedao/connect-core/router\";\n\n/** The root's options: search params and the app's title. */\nexport const options = coreRouteOptions({\n // Passes every param through; only the global ones outlive a navigation.\n // Inline type: project declaration emit can't name this module's types.\n validateSearch: (search: Record<string, unknown>) =>\n validateConnectSearch(search) as Record<string, string | undefined>,\n search: { middlewares: connectSearchMiddlewares },\n // Child routes' titles replace this one; a notFound() skips the heads below it.\n head: ({\n match,\n matches,\n }: {\n match: { context: ConnectRouterContext };\n matches: readonly { status: string }[];\n }) => ({\n meta: [\n {\n title: matches.some((m) => m.status === \"notFound\")\n ? notFoundTitle(match.context.appName)\n : appTitle(match.context.appName),\n },\n ],\n }),\n});\n\n// The page in the theme, with the matched routes' head.\nexport const Route = createRootRouteWithContext<ConnectRouterContext>()({\n ...options,\n component: coreView(\"CoreRoot\"),\n});\n"],"mappings":";;;;AAcA,MAAa,UAAU,iBAAiB;CAGtC,iBAAiB,WACf,sBAAsB,MAAM;CAC9B,QAAQ,EAAE,aAAa,yBAAyB;CAEhD,OAAO,EACL,OACA,eAIK,EACL,MAAM,CACJ,EACE,OAAO,QAAQ,MAAM,MAAM,EAAE,WAAW,UAAU,IAC9C,cAAc,MAAM,QAAQ,OAAO,IACnC,SAAS,MAAM,QAAQ,OAAO,EACpC,CACF,EACF;AACF,CAAC;AAGD,MAAa,QAAQ,2BAAiD,CAAC,CAAC;CACtE,GAAG;CACH,WAAW,SAAS,UAAU;AAChC,CAAC"}
@@ -2,7 +2,7 @@ import { r as Route$1 } from "../../index-PjlUqG36.js";
2
2
  import { ConnectRouterContext } from "@powerhousedao/connect-core/router";
3
3
  //#region src/routes/_app/$.d.ts
4
4
  /** Not found's options: its title, and a wait for routes still loading. */
5
- export declare const options: {
5
+ export declare const options: import("@powerhousedao/connect-core/router").CoreRouteOptions<{
6
6
  head: ({ match }: {
7
7
  match: {
8
8
  context: ConnectRouterContext;
@@ -13,8 +13,8 @@ export declare const options: {
13
13
  }[];
14
14
  };
15
15
  loader: () => Promise<void>;
16
- };
17
- export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, ConnectRouterContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/$", "/$", "/_app/$", "/_app/$", undefined, import("@tanstack/react-router").ResolveParams<"/$">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, ConnectRouterContext, {}, () => Promise<void>, unknown, unknown, unknown, unknown, undefined>;
16
+ }>;
17
+ export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, ConnectRouterContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "/$", "/$", "/_app/$", "/_app/$", undefined, import("@tanstack/react-router").ResolveParams<"/$">, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, () => Promise<void>, unknown, unknown, undefined, unknown, undefined>;
18
18
  //#endregion
19
19
  export {};
20
20
  //# sourceMappingURL=$.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"$.d.ts","names":[],"sources":["../../../src/routes/_app/$.tsx"],"mappings":";;;;qBASa;EACO,SAAA;IAAE;MAAS,SAAS;;;;;;;;;qBAQ3B,OAAK,yCAAA,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,oCAAA,uDAAA,6CAAA,kJAAA,oDAAA,6CAAA,6CAAA,yJAAA,sDAAA,6CAAA,YAAA,gCAAA"}
1
+ {"version":3,"file":"$.d.ts","names":[],"sources":["../../../src/routes/_app/$.tsx"],"mappings":";;;;qBAUa,sDAAO;EACA,SAAA;IAAE;MAAS,SAAS;;;;;;;;;qBAQ3B,OAAK,yCAAA,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,oCAAA,oLAAA,oDAAA,iLAAA,sDAAA,4CAAA"}
@@ -1,11 +1,11 @@
1
1
  import { createFileRoute } from "@tanstack/react-router";
2
- import { connectRoutesSettled, coreView, notFoundTitle } from "@powerhousedao/connect-core/router";
2
+ import { connectRoutesSettled, coreRouteOptions, coreView, notFoundTitle } from "@powerhousedao/connect-core/router";
3
3
  //#region src/routes/_app/$.tsx
4
4
  /** Not found's options: its title, and a wait for routes still loading. */
5
- const options = {
5
+ const options = coreRouteOptions({
6
6
  head: ({ match }) => ({ meta: [{ title: notFoundTitle(match.context.appName) }] }),
7
7
  loader: () => connectRoutesSettled()
8
- };
8
+ });
9
9
  const Route = createFileRoute("/_app/$")({
10
10
  ...options,
11
11
  codeSplitGroupings: [],
@@ -1 +1 @@
1
- {"version":3,"file":"$.js","names":[],"sources":["../../../src/routes/_app/$.tsx"],"sourcesContent":["import { createFileRoute } from \"@tanstack/react-router\";\nimport type { ConnectRouterContext } from \"@powerhousedao/connect-core/router\";\nimport {\n connectRoutesSettled,\n coreView,\n notFoundTitle,\n} from \"@powerhousedao/connect-core/router\";\n\n/** Not found's options: its title, and a wait for routes still loading. */\nexport const options = {\n head: ({ match }: { match: { context: ConnectRouterContext } }) => ({\n meta: [{ title: notFoundTitle(match.context.appName) }],\n }),\n // A package's routes may still be loading: the path may be one of them.\n loader: () => connectRoutesSettled(),\n};\n\n// Unknown paths, inside the layout so it stays; matched last.\nexport const Route = createFileRoute(\"/_app/$\")({\n ...options,\n // Core routes stay in the main chunk when a project build splits its routes.\n codeSplitGroupings: [],\n component: coreView(\"NotFoundPage\"),\n});\n"],"mappings":";;;;AASA,MAAa,UAAU;CACrB,OAAO,EAAE,aAA2D,EAClE,MAAM,CAAC,EAAE,OAAO,cAAc,MAAM,QAAQ,OAAO,EAAE,CAAC,EACxD;CAEA,cAAc,qBAAqB;AACrC;AAGA,MAAa,QAAQ,gBAAgB,SAAS,CAAC,CAAC;CAC9C,GAAG;CAEH,oBAAoB,CAAC;CACrB,WAAW,SAAS,cAAc;AACpC,CAAC"}
1
+ {"version":3,"file":"$.js","names":[],"sources":["../../../src/routes/_app/$.tsx"],"sourcesContent":["import { createFileRoute } from \"@tanstack/react-router\";\nimport type { ConnectRouterContext } from \"@powerhousedao/connect-core/router\";\nimport {\n connectRoutesSettled,\n coreRouteOptions,\n coreView,\n notFoundTitle,\n} from \"@powerhousedao/connect-core/router\";\n\n/** Not found's options: its title, and a wait for routes still loading. */\nexport const options = coreRouteOptions({\n head: ({ match }: { match: { context: ConnectRouterContext } }) => ({\n meta: [{ title: notFoundTitle(match.context.appName) }],\n }),\n // A package's routes may still be loading: the path may be one of them.\n loader: () => connectRoutesSettled(),\n});\n\n// Unknown paths, inside the layout so it stays; matched last.\nexport const Route = createFileRoute(\"/_app/$\")({\n ...options,\n // Core routes stay in the main chunk when a project build splits its routes.\n codeSplitGroupings: [],\n component: coreView(\"NotFoundPage\"),\n});\n"],"mappings":";;;;AAUA,MAAa,UAAU,iBAAiB;CACtC,OAAO,EAAE,aAA2D,EAClE,MAAM,CAAC,EAAE,OAAO,cAAc,MAAM,QAAQ,OAAO,EAAE,CAAC,EACxD;CAEA,cAAc,qBAAqB;AACrC,CAAC;AAGD,MAAa,QAAQ,gBAAgB,SAAS,CAAC,CAAC;CAC9C,GAAG;CAEH,oBAAoB,CAAC;CACrB,WAAW,SAAS,cAAc;AACpC,CAAC"}
@@ -2,7 +2,7 @@ import { r as Route$1 } from "../../../../index-PjlUqG36.js";
2
2
  import { ConnectRouterContext, DriveLoaderOptions, DrivePending, DriveRouteData } from "@powerhousedao/connect-core/router";
3
3
  //#region src/routes/_app/d/$driveSlug/{-$nodeSlug}.d.ts
4
4
  /** The node route's options: its loader, `?history` search and title. */
5
- export declare const options: {
5
+ export declare const options: import("@powerhousedao/connect-core/router").CoreRouteOptions<{
6
6
  validateSearch: (search: Record<string, unknown>) => Record<string, string | undefined>;
7
7
  loader: {
8
8
  handler: (options: DriveLoaderOptions) => Promise<DriveRouteData>;
@@ -25,16 +25,16 @@ export declare const options: {
25
25
  title: string;
26
26
  }[];
27
27
  };
28
- };
29
- export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, ConnectRouterContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/d/$driveSlug", "/d/$driveSlug", "/_app/d/$driveSlug", "/_app/d/$driveSlug", undefined, import("@powerhousedao/connect-core/router").DriveRouteParams, import("@tanstack/react-router").AnyContext, ConnectRouterContext, ConnectRouterContext, {}, {
28
+ }>;
29
+ export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, ConnectRouterContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "/d/$driveSlug", "/d/$driveSlug", "/_app/d/$driveSlug", "/_app/d/$driveSlug", undefined, import("@powerhousedao/connect-core/router").DriveRouteParams, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, {
30
30
  handler: (options: DriveLoaderOptions) => Promise<{
31
31
  driveId: string;
32
32
  }>;
33
33
  staleReloadMode: "blocking";
34
- }, unknown, unknown, unknown, unknown, undefined>, "/{-$nodeSlug}", "/d/$driveSlug/{-$nodeSlug}", "/_app/d/$driveSlug/{-$nodeSlug}", "/_app/d/$driveSlug/{-$nodeSlug}", (search: Record<string, unknown>) => Record<string, string | undefined>, import("@powerhousedao/connect-core/router").DriveRouteParams, import("@tanstack/react-router").AnyContext, ConnectRouterContext, ConnectRouterContext, {}, {
34
+ }, unknown, unknown, undefined, unknown, undefined>, "/{-$nodeSlug}", "/d/$driveSlug/{-$nodeSlug}", "/_app/d/$driveSlug/{-$nodeSlug}", "/_app/d/$driveSlug/{-$nodeSlug}", (search: Record<string, unknown>) => Record<string, string | undefined>, import("@powerhousedao/connect-core/router").DriveRouteParams, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, {
35
35
  handler: (options: DriveLoaderOptions) => Promise<DriveRouteData>;
36
36
  staleReloadMode: "blocking";
37
- }, unknown, unknown, unknown, unknown, undefined>;
37
+ }, unknown, unknown, undefined, unknown, undefined>;
38
38
  //#endregion
39
39
  export {};
40
40
  //# sourceMappingURL={-$nodeSlug}.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"{-$nodeSlug}.d.ts","names":[],"sources":["../../../../../src/routes/_app/d/$driveSlug/{-$nodeSlug}.tsx"],"mappings":";;;;qBAkBa;EAEc,iBAAA,QAAA,4BACQ;;IAE/B,UAAO,SAAY,uBAAqB,QAAQ;IAGhD;;EAGwB,iBAAA;IAAE;;;;;;EAUzB,SAAA,OAAA;IACD;MAAS,SAAS;;IAClB,aAAa;;;;;;;qBAeJ,OAjC+B,yCAiC1B,mDAAA,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,oCAAA,uDAAA,6CAAA,kJAAA,oDAAA,6CAAA,6CAAA,iNAAA,mDAAA,YAAA,sBAAA;;;;;yKApCS,QAAA,4BACQ,iFAAkC,mDAAA,YAAA,sBAAA;EAE9C,UAAA,SAAA,uBAAqB,QAAQ;EAG/B"}
1
+ {"version":3,"file":"{-$nodeSlug}.d.ts","names":[],"sources":["../../../../../src/routes/_app/d/$driveSlug/{-$nodeSlug}.tsx"],"mappings":";;;;qBAmBa,sDAAO;EAEO,iBAAA,QAAA,4BACQ;;IAE/B,UAAO,SAAY,uBAAqB,QAAQ;IAGhD;;EAGwB,iBAAA;IAAE;;;;;;EAUzB,SAAA,OAAA;IACD;MAAS,SAAS;;IAClB,aAAa;;;;;;;qBAeJ,OAjC+B,yCAiC1B,mDAAA,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,oCAAA,oLAAA,oDAAA,yOAAA,mDAAA;;;;;2KApCS,QAAA,4BACQ,iFAAkC,mDAAA;EAE9C,UAAA,SAAA,uBAAqB,QAAQ;EAG/B"}
@@ -1,8 +1,8 @@
1
1
  import { createFileRoute } from "@tanstack/react-router";
2
- import { DRIVE_PENDING_MS, DrivePending, coreView, driveTitle, loadNode, validateDriveSearch } from "@powerhousedao/connect-core/router";
2
+ import { DRIVE_PENDING_MS, DrivePending, coreRouteOptions, coreView, driveTitle, loadNode, validateDriveSearch } from "@powerhousedao/connect-core/router";
3
3
  //#region src/routes/_app/d/$driveSlug/{-$nodeSlug}.tsx
4
4
  /** The node route's options: its loader, `?history` search and title. */
5
- const options = {
5
+ const options = coreRouteOptions({
6
6
  validateSearch: (search) => validateDriveSearch(search),
7
7
  loader: {
8
8
  handler: (options) => loadNode(options),
@@ -14,7 +14,7 @@ const options = {
14
14
  pendingMinMs: 0,
15
15
  pendingComponent: DrivePending,
16
16
  head: ({ match, loaderData }) => ({ meta: [{ title: driveTitle(match.context.store, loaderData, match.context.appName) }] })
17
- };
17
+ });
18
18
  const Route = createFileRoute("/_app/d/$driveSlug/{-$nodeSlug}")({
19
19
  ...options,
20
20
  codeSplitGroupings: [],
@@ -1 +1 @@
1
- {"version":3,"file":"{-$nodeSlug}.js","names":[],"sources":["../../../../../src/routes/_app/d/$driveSlug/{-$nodeSlug}.tsx"],"sourcesContent":["// By package name: a project's build shares the module Connect uses, and its\n// declarations can name the types.\nimport type {\n ConnectRouterContext,\n DriveLoaderOptions,\n DriveRouteData,\n} from \"@powerhousedao/connect-core/router\";\nimport {\n coreView,\n DRIVE_PENDING_MS,\n DrivePending,\n driveTitle,\n loadNode,\n validateDriveSearch,\n} from \"@powerhousedao/connect-core/router\";\nimport { createFileRoute } from \"@tanstack/react-router\";\n\n/** The node route's options: its loader, `?history` search and title. */\nexport const options = {\n // `?history` and its `historyPage`; inline type, as in __root.tsx.\n validateSearch: (search: Record<string, unknown>) =>\n validateDriveSearch(search) as Record<string, string | undefined>,\n loader: {\n handler: (options: DriveLoaderOptions): Promise<DriveRouteData> =>\n loadNode(options),\n // A reused match re-resolves before it shows; drives may have changed.\n staleReloadMode: \"blocking\" as const,\n },\n // Only a path change re-resolves; search-only and same-URL navigations stay.\n shouldReload: ({ cause }: { cause: \"preload\" | \"enter\" | \"stay\" }) =>\n cause !== \"stay\",\n preloadStaleTime: 0,\n pendingMs: DRIVE_PENDING_MS,\n pendingMinMs: 0,\n pendingComponent: DrivePending,\n // Names from the store; bindConnectRouter re-runs this when they change.\n head: ({\n match,\n loaderData,\n }: {\n match: { context: ConnectRouterContext };\n loaderData?: DriveRouteData;\n }) => ({\n meta: [\n {\n title: driveTitle(\n match.context.store,\n loaderData,\n match.context.appName,\n ),\n },\n ],\n }),\n};\n\n// The open document: its history, editor or JSON. Nothing on a folder or the drive's root.\nexport const Route = createFileRoute(\"/_app/d/$driveSlug/{-$nodeSlug}\")({\n ...options,\n // Core routes stay in the main chunk when a project build splits its routes.\n codeSplitGroupings: [],\n component: coreView(\"NodeView\"),\n});\n"],"mappings":";;;;AAkBA,MAAa,UAAU;CAErB,iBAAiB,WACf,oBAAoB,MAAM;CAC5B,QAAQ;EACN,UAAU,YACR,SAAS,OAAO;EAElB,iBAAiB;CACnB;CAEA,eAAe,EAAE,YACf,UAAU;CACZ,kBAAkB;CAClB,WAAW;CACX,cAAc;CACd,kBAAkB;CAElB,OAAO,EACL,OACA,kBAIK,EACL,MAAM,CACJ,EACE,OAAO,WACL,MAAM,QAAQ,OACd,YACA,MAAM,QAAQ,OAChB,EACF,CACF,EACF;AACF;AAGA,MAAa,QAAQ,gBAAgB,iCAAiC,CAAC,CAAC;CACtE,GAAG;CAEH,oBAAoB,CAAC;CACrB,WAAW,SAAS,UAAU;AAChC,CAAC"}
1
+ {"version":3,"file":"{-$nodeSlug}.js","names":[],"sources":["../../../../../src/routes/_app/d/$driveSlug/{-$nodeSlug}.tsx"],"sourcesContent":["// By package name: a project's build shares the module Connect uses, and its\n// declarations can name the types.\nimport type {\n ConnectRouterContext,\n DriveLoaderOptions,\n DriveRouteData,\n} from \"@powerhousedao/connect-core/router\";\nimport {\n coreRouteOptions,\n coreView,\n DRIVE_PENDING_MS,\n DrivePending,\n driveTitle,\n loadNode,\n validateDriveSearch,\n} from \"@powerhousedao/connect-core/router\";\nimport { createFileRoute } from \"@tanstack/react-router\";\n\n/** The node route's options: its loader, `?history` search and title. */\nexport const options = coreRouteOptions({\n // `?history` and its `historyPage`; inline type, as in __root.tsx.\n validateSearch: (search: Record<string, unknown>) =>\n validateDriveSearch(search) as Record<string, string | undefined>,\n loader: {\n handler: (options: DriveLoaderOptions): Promise<DriveRouteData> =>\n loadNode(options),\n // A reused match re-resolves before it shows; drives may have changed.\n staleReloadMode: \"blocking\" as const,\n },\n // Only a path change re-resolves; search-only and same-URL navigations stay.\n shouldReload: ({ cause }: { cause: \"preload\" | \"enter\" | \"stay\" }) =>\n cause !== \"stay\",\n preloadStaleTime: 0,\n pendingMs: DRIVE_PENDING_MS,\n pendingMinMs: 0,\n pendingComponent: DrivePending,\n // Names from the store; bindConnectRouter re-runs this when they change.\n head: ({\n match,\n loaderData,\n }: {\n match: { context: ConnectRouterContext };\n loaderData?: DriveRouteData;\n }) => ({\n meta: [\n {\n title: driveTitle(\n match.context.store,\n loaderData,\n match.context.appName,\n ),\n },\n ],\n }),\n});\n\n// The open document: its history, editor or JSON. Nothing on a folder or the drive's root.\nexport const Route = createFileRoute(\"/_app/d/$driveSlug/{-$nodeSlug}\")({\n ...options,\n // Core routes stay in the main chunk when a project build splits its routes.\n codeSplitGroupings: [],\n component: coreView(\"NodeView\"),\n});\n"],"mappings":";;;;AAmBA,MAAa,UAAU,iBAAiB;CAEtC,iBAAiB,WACf,oBAAoB,MAAM;CAC5B,QAAQ;EACN,UAAU,YACR,SAAS,OAAO;EAElB,iBAAiB;CACnB;CAEA,eAAe,EAAE,YACf,UAAU;CACZ,kBAAkB;CAClB,WAAW;CACX,cAAc;CACd,kBAAkB;CAElB,OAAO,EACL,OACA,kBAIK,EACL,MAAM,CACJ,EACE,OAAO,WACL,MAAM,QAAQ,OACd,YACA,MAAM,QAAQ,OAChB,EACF,CACF,EACF;AACF,CAAC;AAGD,MAAa,QAAQ,gBAAgB,iCAAiC,CAAC,CAAC;CACtE,GAAG;CAEH,oBAAoB,CAAC;CACrB,WAAW,SAAS,UAAU;AAChC,CAAC"}
@@ -2,7 +2,7 @@ import { r as Route$1 } from "../../../index-PjlUqG36.js";
2
2
  import { DriveLoaderOptions, DrivePending } from "@powerhousedao/connect-core/router";
3
3
  //#region src/routes/_app/d/$driveSlug.d.ts
4
4
  /** The drive layout's options: its loader and pending view. */
5
- export declare const options: {
5
+ export declare const options: import("@powerhousedao/connect-core/router").CoreRouteOptions<{
6
6
  loader: {
7
7
  handler: (options: DriveLoaderOptions) => Promise<{
8
8
  driveId: string;
@@ -16,13 +16,13 @@ export declare const options: {
16
16
  pendingMs: number;
17
17
  pendingMinMs: number;
18
18
  pendingComponent: typeof DrivePending;
19
- };
20
- export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, import("@powerhousedao/connect-core/router").ConnectRouterContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/d/$driveSlug", "/d/$driveSlug", "/_app/d/$driveSlug", "/_app/d/$driveSlug", undefined, import("@powerhousedao/connect-core/router").DriveRouteParams, import("@tanstack/react-router").AnyContext, import("@powerhousedao/connect-core/router").ConnectRouterContext, import("@powerhousedao/connect-core/router").ConnectRouterContext, {}, {
19
+ }>;
20
+ export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, import("@powerhousedao/connect-core/router").ConnectRouterContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "/d/$driveSlug", "/d/$driveSlug", "/_app/d/$driveSlug", "/_app/d/$driveSlug", undefined, import("@powerhousedao/connect-core/router").DriveRouteParams, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, {
21
21
  handler: (options: DriveLoaderOptions) => Promise<{
22
22
  driveId: string;
23
23
  }>;
24
24
  staleReloadMode: "blocking";
25
- }, unknown, unknown, unknown, unknown, undefined>;
25
+ }, unknown, unknown, undefined, unknown, undefined>;
26
26
  //#endregion
27
27
  export {};
28
28
  //# sourceMappingURL=$driveSlug.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"$driveSlug.d.ts","names":[],"sources":["../../../../src/routes/_app/d/$driveSlug.tsx"],"mappings":";;;;qBAYa;;IAET,UAAO,SAAY,uBAAkB;;;IAErC;;EAGwB,iBAAA;IAAE;;;;;;;qBAWjB,OAhB4B,yCAgBvB,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,iFAAA,uDAAA,6CAAA,kJAAA,oDAAA,6CAAA,6CAAA,iNAAA,mDAAA,yDAAA,mEAAA;EAhBK,UAAA,SAAA,uBAAkB;;;EAEpB"}
1
+ {"version":3,"file":"$driveSlug.d.ts","names":[],"sources":["../../../../src/routes/_app/d/$driveSlug.tsx"],"mappings":";;;;qBAaa,sDAAO;;IAEhB,UAAO,SAAY,uBAAkB;;;IAErC;;EAGwB,iBAAA;IAAE;;;;;;;qBAWjB,OAhB4B,yCAgBvB,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,iFAAA,oLAAA,oDAAA,yOAAA,mDAAA;EAhBK,UAAA,SAAA,uBAAkB;;;EAEpB"}
@@ -1,8 +1,8 @@
1
1
  import { createFileRoute } from "@tanstack/react-router";
2
- import { DRIVE_PENDING_MS, DrivePending, coreView, loadDrive } from "@powerhousedao/connect-core/router";
2
+ import { DRIVE_PENDING_MS, DrivePending, coreRouteOptions, coreView, loadDrive } from "@powerhousedao/connect-core/router";
3
3
  //#region src/routes/_app/d/$driveSlug.tsx
4
4
  /** The drive layout's options: its loader and pending view. */
5
- const options = {
5
+ const options = coreRouteOptions({
6
6
  loader: {
7
7
  handler: (options) => loadDrive(options),
8
8
  staleReloadMode: "blocking"
@@ -12,7 +12,7 @@ const options = {
12
12
  pendingMs: DRIVE_PENDING_MS,
13
13
  pendingMinMs: 0,
14
14
  pendingComponent: DrivePending
15
- };
15
+ });
16
16
  const Route = createFileRoute("/_app/d/$driveSlug")({
17
17
  ...options,
18
18
  codeSplitGroupings: [],
@@ -1 +1 @@
1
- {"version":3,"file":"$driveSlug.js","names":[],"sources":["../../../../src/routes/_app/d/$driveSlug.tsx"],"sourcesContent":["// By package name: a project's build shares the module Connect uses, and its\n// declarations can name the types.\nimport type { DriveLoaderOptions } from \"@powerhousedao/connect-core/router\";\nimport {\n coreView,\n DRIVE_PENDING_MS,\n DrivePending,\n loadDrive,\n} from \"@powerhousedao/connect-core/router\";\nimport { createFileRoute } from \"@tanstack/react-router\";\n\n/** The drive layout's options: its loader and pending view. */\nexport const options = {\n loader: {\n handler: (options: DriveLoaderOptions) => loadDrive(options),\n // A reused match re-resolves before it shows; drives may have changed.\n staleReloadMode: \"blocking\" as const,\n },\n // Only a path change re-resolves; search-only and same-URL navigations stay.\n shouldReload: ({ cause }: { cause: \"preload\" | \"enter\" | \"stay\" }) =>\n cause !== \"stay\",\n preloadStaleTime: 0,\n pendingMs: DRIVE_PENDING_MS,\n // The pending view is empty on warm navigations; the router's 500 ms default\n // would hold their commit.\n pendingMinMs: 0,\n pendingComponent: DrivePending,\n};\n\n// The drive app the drive names, else a directory listing, around the node route.\nexport const Route = createFileRoute(\"/_app/d/$driveSlug\")({\n ...options,\n // Core routes stay in the main chunk when a project build splits its routes.\n codeSplitGroupings: [],\n component: coreView(\"DriveLayout\"),\n});\n"],"mappings":";;;;AAYA,MAAa,UAAU;CACrB,QAAQ;EACN,UAAU,YAAgC,UAAU,OAAO;EAE3D,iBAAiB;CACnB;CAEA,eAAe,EAAE,YACf,UAAU;CACZ,kBAAkB;CAClB,WAAW;CAGX,cAAc;CACd,kBAAkB;AACpB;AAGA,MAAa,QAAQ,gBAAgB,oBAAoB,CAAC,CAAC;CACzD,GAAG;CAEH,oBAAoB,CAAC;CACrB,WAAW,SAAS,aAAa;AACnC,CAAC"}
1
+ {"version":3,"file":"$driveSlug.js","names":[],"sources":["../../../../src/routes/_app/d/$driveSlug.tsx"],"sourcesContent":["// By package name: a project's build shares the module Connect uses, and its\n// declarations can name the types.\nimport type { DriveLoaderOptions } from \"@powerhousedao/connect-core/router\";\nimport {\n coreRouteOptions,\n coreView,\n DRIVE_PENDING_MS,\n DrivePending,\n loadDrive,\n} from \"@powerhousedao/connect-core/router\";\nimport { createFileRoute } from \"@tanstack/react-router\";\n\n/** The drive layout's options: its loader and pending view. */\nexport const options = coreRouteOptions({\n loader: {\n handler: (options: DriveLoaderOptions) => loadDrive(options),\n // A reused match re-resolves before it shows; drives may have changed.\n staleReloadMode: \"blocking\" as const,\n },\n // Only a path change re-resolves; search-only and same-URL navigations stay.\n shouldReload: ({ cause }: { cause: \"preload\" | \"enter\" | \"stay\" }) =>\n cause !== \"stay\",\n preloadStaleTime: 0,\n pendingMs: DRIVE_PENDING_MS,\n // The pending view is empty on warm navigations; the router's 500 ms default\n // would hold their commit.\n pendingMinMs: 0,\n pendingComponent: DrivePending,\n});\n\n// The drive app the drive names, else a directory listing, around the node route.\nexport const Route = createFileRoute(\"/_app/d/$driveSlug\")({\n ...options,\n // Core routes stay in the main chunk when a project build splits its routes.\n codeSplitGroupings: [],\n component: coreView(\"DriveLayout\"),\n});\n"],"mappings":";;;;AAaA,MAAa,UAAU,iBAAiB;CACtC,QAAQ;EACN,UAAU,YAAgC,UAAU,OAAO;EAE3D,iBAAiB;CACnB;CAEA,eAAe,EAAE,YACf,UAAU;CACZ,kBAAkB;CAClB,WAAW;CAGX,cAAc;CACd,kBAAkB;AACpB,CAAC;AAGD,MAAa,QAAQ,gBAAgB,oBAAoB,CAAC,CAAC;CACzD,GAAG;CAEH,oBAAoB,CAAC;CACrB,WAAW,SAAS,aAAa;AACnC,CAAC"}
@@ -1,8 +1,47 @@
1
1
  import { r as Route$1 } from "../../index-PjlUqG36.js";
2
2
  //#region src/routes/_app/index.d.ts
3
3
  /** Home's options; none yet. */
4
- export declare const options: {};
5
- export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, import("@powerhousedao/connect-core/router").ConnectRouterContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/", "/", "/_app/", "/_app/", undefined, import("@tanstack/react-router").ResolveParams<"/">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>;
4
+ export declare const options: {
5
+ beforeLoad?: undefined;
6
+ caseSensitive?: undefined;
7
+ codeSplitGroupings?: undefined;
8
+ component?: undefined;
9
+ context?: undefined;
10
+ errorComponent?: undefined;
11
+ gcTime?: undefined;
12
+ getParentRoute?: undefined;
13
+ head?: undefined;
14
+ headers?: undefined;
15
+ loader?: undefined;
16
+ loaderDeps?: undefined;
17
+ notFoundComponent?: undefined;
18
+ onCatch?: undefined;
19
+ onEnter?: undefined;
20
+ onError?: undefined;
21
+ onLeave?: undefined;
22
+ onStay?: undefined;
23
+ params?: undefined;
24
+ parseParams?: undefined;
25
+ pendingComponent?: undefined;
26
+ pendingMinMs?: undefined;
27
+ pendingMs?: undefined;
28
+ postSearchFilters?: undefined;
29
+ preSearchFilters?: undefined;
30
+ preload?: undefined;
31
+ preloadGcTime?: undefined;
32
+ preloadStaleTime?: undefined;
33
+ remountDeps?: undefined;
34
+ scripts?: undefined;
35
+ search?: undefined;
36
+ shouldReload?: undefined;
37
+ ssr?: undefined;
38
+ staleTime?: undefined;
39
+ staticData?: undefined;
40
+ stringifyParams?: undefined;
41
+ validateSearch?: undefined;
42
+ wrapInSuspense?: undefined;
43
+ };
44
+ export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, import("@powerhousedao/connect-core/router").ConnectRouterContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "/", "/", "/_app/", "/_app/", undefined, import("@tanstack/react-router").ResolveParams<"/">, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>;
6
45
  //#endregion
7
46
  export {};
8
47
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/routes/_app/index.tsx"],"mappings":";;;qBAIa;qBAGA,OAAK,yCAAA,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,iFAAA,uDAAA,6CAAA,kJAAA,oDAAA,6CAAA,6CAAA,qJAAA,qDAAA,6CAAA,6CAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/routes/_app/index.tsx"],"mappings":";;;qBAIa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAGA,OAAK,yCAAA,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,iFAAA,oLAAA,oDAAA,6KAAA,qDAAA"}
@@ -1,8 +1,8 @@
1
1
  import { createFileRoute } from "@tanstack/react-router";
2
- import { coreView } from "@powerhousedao/connect-core/router";
2
+ import { coreRouteOptions, coreView } from "@powerhousedao/connect-core/router";
3
3
  //#region src/routes/_app/index.tsx
4
4
  /** Home's options; none yet. */
5
- const options = {};
5
+ const options = coreRouteOptions({});
6
6
  const Route = createFileRoute("/_app/")({
7
7
  ...options,
8
8
  codeSplitGroupings: [],
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/routes/_app/index.tsx"],"sourcesContent":["import { createFileRoute } from \"@tanstack/react-router\";\nimport { coreView } from \"@powerhousedao/connect-core/router\";\n\n/** Home's options; none yet. */\nexport const options = {};\n\n// The drives, as an index.\nexport const Route = createFileRoute(\"/_app/\")({\n ...options,\n // Core routes stay in the main chunk when a project build splits its routes.\n codeSplitGroupings: [],\n component: coreView(\"DriveIndex\"),\n});\n"],"mappings":";;;;AAIA,MAAa,UAAU,CAAC;AAGxB,MAAa,QAAQ,gBAAgB,QAAQ,CAAC,CAAC;CAC7C,GAAG;CAEH,oBAAoB,CAAC;CACrB,WAAW,SAAS,YAAY;AAClC,CAAC"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/routes/_app/index.tsx"],"sourcesContent":["import { createFileRoute } from \"@tanstack/react-router\";\nimport { coreRouteOptions, coreView } from \"@powerhousedao/connect-core/router\";\n\n/** Home's options; none yet. */\nexport const options = coreRouteOptions({});\n\n// The drives, as an index.\nexport const Route = createFileRoute(\"/_app/\")({\n ...options,\n // Core routes stay in the main chunk when a project build splits its routes.\n codeSplitGroupings: [],\n component: coreView(\"DriveIndex\"),\n});\n"],"mappings":";;;;AAIA,MAAa,UAAU,iBAAiB,CAAC,CAAC;AAG1C,MAAa,QAAQ,gBAAgB,QAAQ,CAAC,CAAC;CAC7C,GAAG;CAEH,oBAAoB,CAAC;CACrB,WAAW,SAAS,YAAY;AAClC,CAAC"}
@@ -1,15 +1,15 @@
1
1
  import { r as Route$1 } from "../../../index-PjlUqG36.js";
2
2
  //#region src/routes/_app/settings/appearance.d.ts
3
3
  /** The tab's options: its entry in the settings page. */
4
- export declare const options: {
4
+ export declare const options: import("@powerhousedao/connect-core/router").CoreRouteOptions<{
5
5
  staticData: {
6
6
  settings: {
7
7
  label: string;
8
8
  order: number;
9
9
  };
10
10
  };
11
- };
12
- export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, import("@powerhousedao/connect-core/router").ConnectRouterContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/settings", "/settings", "/_app/settings", "/_app/settings", undefined, import("@tanstack/react-router").ResolveParams<"/settings">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, (context: any) => void, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/appearance", "/settings/appearance", "/_app/settings/appearance", "/_app/settings/appearance", undefined, import("@tanstack/react-router").ResolveParams<"/appearance">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>;
11
+ }>;
12
+ export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, import("@powerhousedao/connect-core/router").ConnectRouterContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "/settings", "/settings", "/_app/settings", "/_app/settings", undefined, import("@tanstack/react-router").ResolveParams<"/settings">, import("@tanstack/react-router").AnyContext, undefined, (context: any) => void, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "/appearance", "/settings/appearance", "/_app/settings/appearance", "/_app/settings/appearance", undefined, import("@tanstack/react-router").ResolveParams<"/appearance">, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>;
13
13
  //#endregion
14
14
  export {};
15
15
  //# sourceMappingURL=appearance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"appearance.d.ts","names":[],"sources":["../../../../src/routes/_app/settings/appearance.tsx"],"mappings":";;;qBAIa;EACX;IAAc;MAAY;MAAqB;;;;qBAIpC,OAAK,yCAAA,UAAA,yCAAA,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,iFAAA,uDAAA,6CAAA,kJAAA,oDAAA,6CAAA,6CAAA,qLAAA,6DAAA,6CAAA,aAAA,mOAAA,+DAAA,6CAAA,6CAAA"}
1
+ {"version":3,"file":"appearance.d.ts","names":[],"sources":["../../../../src/routes/_app/settings/appearance.tsx"],"mappings":";;;qBAIa,sDAAO;;IACJ;MAAY;MAAqB;;;;qBAIpC,OAAK,yCAAA,UAAA,yCAAA,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,iFAAA,oLAAA,oDAAA,6MAAA,6DAAA,wBAAA,qOAAA,+DAAA"}
@@ -1,11 +1,11 @@
1
1
  import { createFileRoute } from "@tanstack/react-router";
2
- import { coreView } from "@powerhousedao/connect-core/router";
2
+ import { coreRouteOptions, coreView } from "@powerhousedao/connect-core/router";
3
3
  //#region src/routes/_app/settings/appearance.tsx
4
4
  /** The tab's options: its entry in the settings page. */
5
- const options = { staticData: { settings: {
5
+ const options = coreRouteOptions({ staticData: { settings: {
6
6
  label: "Appearance",
7
7
  order: 30
8
- } } };
8
+ } } });
9
9
  const Route = createFileRoute("/_app/settings/appearance")({
10
10
  ...options,
11
11
  codeSplitGroupings: [],
@@ -1 +1 @@
1
- {"version":3,"file":"appearance.js","names":[],"sources":["../../../../src/routes/_app/settings/appearance.tsx"],"sourcesContent":["import { createFileRoute } from \"@tanstack/react-router\";\nimport { coreView } from \"@powerhousedao/connect-core/router\";\n\n/** The tab's options: its entry in the settings page. */\nexport const options = {\n staticData: { settings: { label: \"Appearance\", order: 30 } },\n};\n\n// The theme.\nexport const Route = createFileRoute(\"/_app/settings/appearance\")({\n ...options,\n // Core routes stay in the main chunk when a project build splits its routes.\n codeSplitGroupings: [],\n component: coreView(\"AppearanceTab\"),\n});\n"],"mappings":";;;;AAIA,MAAa,UAAU,EACrB,YAAY,EAAE,UAAU;CAAE,OAAO;CAAc,OAAO;AAAG,EAAE,EAC7D;AAGA,MAAa,QAAQ,gBAAgB,2BAA2B,CAAC,CAAC;CAChE,GAAG;CAEH,oBAAoB,CAAC;CACrB,WAAW,SAAS,eAAe;AACrC,CAAC"}
1
+ {"version":3,"file":"appearance.js","names":[],"sources":["../../../../src/routes/_app/settings/appearance.tsx"],"sourcesContent":["import { createFileRoute } from \"@tanstack/react-router\";\nimport { coreRouteOptions, coreView } from \"@powerhousedao/connect-core/router\";\n\n/** The tab's options: its entry in the settings page. */\nexport const options = coreRouteOptions({\n staticData: { settings: { label: \"Appearance\", order: 30 } },\n});\n\n// The theme.\nexport const Route = createFileRoute(\"/_app/settings/appearance\")({\n ...options,\n // Core routes stay in the main chunk when a project build splits its routes.\n codeSplitGroupings: [],\n component: coreView(\"AppearanceTab\"),\n});\n"],"mappings":";;;;AAIA,MAAa,UAAU,iBAAiB,EACtC,YAAY,EAAE,UAAU;CAAE,OAAO;CAAc,OAAO;AAAG,EAAE,EAC7D,CAAC;AAGD,MAAa,QAAQ,gBAAgB,2BAA2B,CAAC,CAAC;CAChE,GAAG;CAEH,oBAAoB,CAAC;CACrB,WAAW,SAAS,eAAe;AACrC,CAAC"}
@@ -1,15 +1,15 @@
1
1
  import { r as Route$1 } from "../../../index-PjlUqG36.js";
2
2
  //#region src/routes/_app/settings/packages.d.ts
3
3
  /** The tab's options: its entry in the settings page. */
4
- export declare const options: {
4
+ export declare const options: import("@powerhousedao/connect-core/router").CoreRouteOptions<{
5
5
  staticData: {
6
6
  settings: {
7
7
  label: string;
8
8
  order: number;
9
9
  };
10
10
  };
11
- };
12
- export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, import("@powerhousedao/connect-core/router").ConnectRouterContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/settings", "/settings", "/_app/settings", "/_app/settings", undefined, import("@tanstack/react-router").ResolveParams<"/settings">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, (context: any) => void, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/packages", "/settings/packages", "/_app/settings/packages", "/_app/settings/packages", undefined, import("@tanstack/react-router").ResolveParams<"/packages">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>;
11
+ }>;
12
+ export declare const Route: Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, Route$1<import("@tanstack/react-router").Register, import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, (search: Record<string, unknown>) => Record<string, string | undefined>, import("@powerhousedao/connect-core/router").ConnectRouterContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "", "/", "/_app", "/_app", undefined, import("@tanstack/react-router").ResolveParams<"">, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "/settings", "/settings", "/_app/settings", "/_app/settings", undefined, import("@tanstack/react-router").ResolveParams<"/settings">, import("@tanstack/react-router").AnyContext, undefined, (context: any) => void, {}, undefined, unknown, unknown, undefined, unknown, undefined>, "/packages", "/settings/packages", "/_app/settings/packages", "/_app/settings/packages", undefined, import("@tanstack/react-router").ResolveParams<"/packages">, import("@tanstack/react-router").AnyContext, undefined, undefined, {}, undefined, unknown, unknown, undefined, unknown, undefined>;
13
13
  //#endregion
14
14
  export {};
15
15
  //# sourceMappingURL=packages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"packages.d.ts","names":[],"sources":["../../../../src/routes/_app/settings/packages.tsx"],"mappings":";;;qBAIa;EACX;IAAc;MAAY;MAAmB;;;;qBAIlC,OAAK,yCAAA,UAAA,yCAAA,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,iFAAA,uDAAA,6CAAA,kJAAA,oDAAA,6CAAA,6CAAA,qLAAA,6DAAA,6CAAA,aAAA,2NAAA,6DAAA,6CAAA,6CAAA"}
1
+ {"version":3,"file":"packages.d.ts","names":[],"sources":["../../../../src/routes/_app/settings/packages.tsx"],"mappings":";;;qBAIa,sDAAO;;IACJ;MAAY;MAAmB;;;;qBAIlC,OAAK,yCAAA,UAAA,yCAAA,UAAA,yCAAA,2CAAA,2CAAA,WAAA,QAAA,4BAAA,iFAAA,oLAAA,oDAAA,6MAAA,6DAAA,wBAAA,6NAAA,6DAAA"}