reroute-js 0.4.4 → 0.6.0
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.
- package/README.md +141 -0
- package/cli/bin.d.ts +1 -1
- package/cli/bin.js +513 -66
- package/cli/bin.js.map +6 -4
- package/cli/index.d.ts +1 -1
- package/cli/index.js +378 -16
- package/cli/index.js.map +5 -3
- package/cli/src/cli.d.ts +1 -1
- package/cli/src/commands/boot.d.ts +1 -1
- package/cli/src/commands/gen.d.ts +1 -1
- package/cli/src/commands/gen.d.ts.map +1 -1
- package/cli/src/commands/init.d.ts +1 -1
- package/cli/src/libs/index.d.ts +3 -1
- package/cli/src/libs/index.d.ts.map +1 -1
- package/cli/src/libs/markdown-processor.d.ts +59 -0
- package/cli/src/libs/markdown-processor.d.ts.map +1 -0
- package/cli/src/libs/markdown.d.ts +33 -0
- package/cli/src/libs/markdown.d.ts.map +1 -0
- package/cli/src/libs/tailwind.d.ts +1 -1
- package/cli/src/libs/version.d.ts +1 -1
- package/core/index.d.ts +1 -1
- package/core/index.js +3 -3
- package/core/index.js.map +2 -2
- package/core/src/bundler/hash.d.ts +1 -1
- package/core/src/bundler/index.d.ts +1 -1
- package/core/src/bundler/transpile.d.ts +1 -1
- package/core/src/content/discovery.d.ts +1 -1
- package/core/src/content/index.d.ts +1 -1
- package/core/src/content/metadata.d.ts +1 -1
- package/core/src/content/registry.d.ts +1 -1
- package/core/src/index.d.ts +1 -1
- package/core/src/ssr/data.d.ts +1 -1
- package/core/src/ssr/index.d.ts +1 -1
- package/core/src/ssr/modules.d.ts +1 -1
- package/core/src/ssr/render.d.ts +1 -1
- package/core/src/ssr/seed.d.ts +1 -1
- package/core/src/template/html.d.ts +1 -1
- package/core/src/template/index.d.ts +1 -1
- package/core/src/types.d.ts +1 -1
- package/core/src/utils/cache.d.ts +1 -1
- package/core/src/utils/compression.d.ts +1 -1
- package/core/src/utils/index.d.ts +1 -1
- package/core/src/utils/mime.d.ts +1 -1
- package/core/src/utils/path.d.ts +1 -1
- package/elysia/index.d.ts +1 -1
- package/elysia/index.js +3 -3
- package/elysia/index.js.map +2 -2
- package/elysia/src/index.d.ts +1 -1
- package/elysia/src/libs/http.d.ts +1 -1
- package/elysia/src/libs/image.d.ts +1 -1
- package/elysia/src/plugin.d.ts +1 -1
- package/elysia/src/routes/artifacts.d.ts +1 -1
- package/elysia/src/routes/content.d.ts +1 -1
- package/elysia/src/routes/dev.d.ts +1 -1
- package/elysia/src/routes/image.d.ts +1 -1
- package/elysia/src/routes/ssr.d.ts +1 -1
- package/elysia/src/routes/static.d.ts +1 -1
- package/elysia/src/types.d.ts +1 -1
- package/package.json +17 -9
- package/react/index.d.ts +1 -1
- package/react/index.js +163 -66
- package/react/index.js.map +7 -5
- package/react/src/components/ClientOnly.d.ts +31 -0
- package/react/src/components/ClientOnly.d.ts.map +1 -0
- package/react/src/components/ContentRoute.d.ts +1 -1
- package/react/src/components/ContentRoute.d.ts.map +1 -1
- package/react/src/components/Image.d.ts +1 -1
- package/react/src/components/Link.d.ts +1 -1
- package/react/src/components/Link.d.ts.map +1 -1
- package/react/src/components/Markdown.d.ts +89 -0
- package/react/src/components/Markdown.d.ts.map +1 -0
- package/react/src/components/Outlet.d.ts +1 -1
- package/react/src/components/index.d.ts +3 -1
- package/react/src/components/index.d.ts.map +1 -1
- package/react/src/hooks/index.d.ts +1 -1
- package/react/src/hooks/useContent.d.ts +1 -1
- package/react/src/hooks/useData.d.ts +1 -1
- package/react/src/hooks/useNavigate.d.ts +1 -1
- package/react/src/hooks/useParams.d.ts +1 -1
- package/react/src/hooks/useRouter.d.ts +1 -1
- package/react/src/hooks/useSearchParams.d.ts +1 -1
- package/react/src/index.d.ts +1 -1
- package/react/src/providers/ContentProvider.d.ts +1 -1
- package/react/src/providers/RerouteProvider.d.ts +1 -1
- package/react/src/providers/RouterProvider.d.ts +1 -1
- package/react/src/providers/index.d.ts +1 -1
- package/react/src/types/any.d.ts +1 -1
- package/react/src/types/index.d.ts +1 -1
- package/react/src/types/router.d.ts +1 -1
- package/react/src/utils/content.d.ts +1 -1
- package/react/src/utils/head.d.ts +1 -1
- package/react/src/utils/index.d.ts +1 -1
package/react/index.js.map
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../packages/react/src/components/ContentRoute.tsx", "../../packages/react/src/hooks/useContent.ts", "../../packages/react/src/providers/ContentProvider.tsx", "../../packages/react/src/utils/content.ts", "../../packages/react/src/hooks/useData.ts", "../../packages/react/src/hooks/useRouter.tsx", "../../packages/react/src/providers/RouterProvider.tsx", "../../packages/react/src/utils/head.ts", "../../packages/react/src/providers/RerouteProvider.tsx", "../../packages/react/src/hooks/useNavigate.tsx", "../../packages/react/src/hooks/useParams.tsx", "../../packages/react/src/hooks/useSearchParams.tsx", "../../packages/react/src/components/Image.tsx", "../../packages/react/src/components/Link.tsx", "../../packages/react/src/components/Outlet.tsx"],
|
|
3
|
+
"sources": ["../../packages/react/src/components/ClientOnly.tsx", "../../packages/react/src/components/ContentRoute.tsx", "../../packages/react/src/hooks/useContent.ts", "../../packages/react/src/providers/ContentProvider.tsx", "../../packages/react/src/utils/content.ts", "../../packages/react/src/hooks/useData.ts", "../../packages/react/src/hooks/useRouter.tsx", "../../packages/react/src/providers/RouterProvider.tsx", "../../packages/react/src/utils/head.ts", "../../packages/react/src/providers/RerouteProvider.tsx", "../../packages/react/src/hooks/useNavigate.tsx", "../../packages/react/src/hooks/useParams.tsx", "../../packages/react/src/hooks/useSearchParams.tsx", "../../packages/react/src/components/Image.tsx", "../../packages/react/src/components/Link.tsx", "../../packages/react/src/components/Markdown.tsx", "../../packages/react/src/components/Outlet.tsx"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import
|
|
5
|
+
"import type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\n\ninterface ClientOnlyProps {\n\tchildren: ReactNode;\n\tfallback?: ReactNode;\n}\n\n/**\n * ClientOnly component that only renders its children on the client-side.\n * Useful for components that cause hydration mismatches due to:\n * - Using Date.now(), Math.random(), or other dynamic values\n * - Browser-specific APIs (localStorage, window, etc.)\n * - Time-sensitive data that changes between server and client render\n *\n * @example\n * ```tsx\n * <ClientOnly fallback={<div>Loading...</div>}>\n * <CountdownTimer />\n * </ClientOnly>\n * ```\n */\nfunction ClientOnly({ children, fallback = null }: ClientOnlyProps) {\n\tconst [mounted, setMounted] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetMounted(true);\n\t}, []);\n\n\tif (!mounted) {\n\t\treturn <>{fallback}</>;\n\t}\n\n\treturn <>{children}</>;\n}\n\nexport { ClientOnly };\n",
|
|
6
|
+
"import {\n\ttype ComponentType,\n\tisValidElement,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { useParams, useRouter } from '../hooks';\nimport {\n\tuseContentGetEntry,\n\tuseContentIndex,\n\tuseContentLoadCollection,\n} from '../providers/ContentProvider';\nimport type { Any } from '../types/any';\nimport { applyLang, applyPageMeta, applySsrHead } from '../utils/head';\n\ntype RerouteGetEntry = (\n\tcollection: string,\n\tname: string,\n) => { module?: string; component?: Any; meta?: Any } | undefined;\n\nfunction toComponent(x: Any): ComponentType {\n\tif (typeof x === 'function') return x as ComponentType;\n\tif (isValidElement(x)) return () => x as Any;\n\treturn () => null;\n}\n\nfunction ContentRoute({\n\tcollection,\n\tname,\n\tgetEntry,\n}: {\n\tcollection: string;\n\tname?: string;\n\tgetEntry?: RerouteGetEntry;\n}) {\n\tconst params = useParams<Record<string, string>>();\n\tconst { pathname, notFoundResolver } = useRouter() as Any;\n\tconst inferredName =\n\t\tname ||\n\t\tparams.slug ||\n\t\tparams.name ||\n\t\t(() => {\n\t\t\ttry {\n\t\t\t\tconst parts = String(pathname || '')\n\t\t\t\t\t.split('/')\n\t\t\t\t\t.filter(Boolean);\n\t\t\t\treturn parts.length >= 2 ? parts[1] : undefined;\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t})();\n\tconst key = inferredName ? `${collection}:${inferredName}` : `${collection}:`;\n\tconst ctxGetEntry = useContentGetEntry();\n\tconst idx = useContentIndex();\n\tconst ensureCollection = useContentLoadCollection();\n\tconst resolveEntry: RerouteGetEntry | undefined =\n\t\tgetEntry ||\n\t\tctxGetEntry ||\n\t\t((c, n) => {\n\t\t\ttry {\n\t\t\t\tconst list = (idx as Any)?.[c] as Any[] | undefined;\n\t\t\t\tif (!Array.isArray(list)) return undefined;\n\t\t\t\tconst found = list.find((e: Any) => e?.name === n);\n\t\t\t\tif (!found) return undefined;\n\t\t\t\treturn { module: found.module, meta: found.meta } as Any;\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t});\n\tconst entry =\n\t\tinferredName && resolveEntry\n\t\t\t? resolveEntry(collection, inferredName)\n\t\t\t: undefined;\n\n\t// Do not auto-load the whole collection for a single content page.\n\t// Rely on SSR-seeded module and import-by-module when available.\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: That's fine\n\tconst initialComp = useMemo<ComponentType>(() => {\n\t\ttry {\n\t\t\tconst g: Any = globalThis as Any;\n\t\t\tconst C = g.__REROUTE_SSR_MODULES__?.[key];\n\t\t\tif (C) return toComponent(C);\n\t\t} catch {}\n\t\tif (typeof window !== 'undefined') {\n\t\t\tconst store = (window as Any).__REROUTE_MODULES__ || {};\n\t\t\tif (store[key]) return toComponent(store[key]);\n\t\t}\n\t\tif ((entry as Any)?.component) return toComponent((entry as Any).component);\n\t\t// Fallback to the nearest NotFound component if provided by router\n\t\ttry {\n\t\t\tconst nf =\n\t\t\t\ttypeof notFoundResolver === 'function'\n\t\t\t\t\t? notFoundResolver(pathname)\n\t\t\t\t\t: undefined;\n\t\t\tif (nf) return toComponent(nf);\n\t\t} catch {}\n\t\treturn () => null;\n\t}, [key, entry]);\n\n\tconst [Comp, setComp] = useState<ComponentType>(() => initialComp);\n\tconst containerRef = useRef<HTMLDivElement | null>(null);\n\n\tuseEffect(() => {\n\t\tlet cancelled = false;\n\t\tif (entry?.module && typeof window !== 'undefined') {\n\t\t\timport(/* @vite-ignore */ entry.module)\n\t\t\t\t.then((m) => {\n\t\t\t\t\tif (cancelled) return;\n\t\t\t\t\tconst C = (m as Any).default || (m as Any);\n\t\t\t\t\tconst K = toComponent(C);\n\t\t\t\t\tsetComp(() => K);\n\t\t\t\t\tconst w = window as Any;\n\t\t\t\t\tw.__REROUTE_MODULES__ ||= {};\n\t\t\t\t\tw.__REROUTE_MODULES__[key] = C;\n\n\t\t\t\t\t// Update head from module exports if available\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst meta = (m as Any).meta || (m as Any).frontmatter;\n\t\t\t\t\t\tif (meta) applyPageMeta(meta);\n\t\t\t\t\t} catch {}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst ssr = (m as Any).ssr;\n\t\t\t\t\t\tif (ssr?.head) applySsrHead(ssr.head);\n\t\t\t\t\t\tif (ssr?.lang) applyLang(ssr.lang);\n\t\t\t\t\t} catch {}\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t}\n\t\treturn () => {\n\t\t\tcancelled = true;\n\t\t\t// Clear previously injected head items from ssr.head\n\t\t\tapplySsrHead(undefined);\n\t\t};\n\t}, [entry?.module, key]);\n\n\t// If entry info wasn't available yet (e.g., on SPA nav without SSR-seeded index),\n\t// proactively load the collection index so we can resolve the module URL and import it.\n\tuseEffect(() => {\n\t\tif (typeof window === 'undefined') return;\n\t\tif (entry || !collection) return;\n\t\ttry {\n\t\t\tif (typeof ensureCollection === 'function') {\n\t\t\t\t// Fire-and-forget; ContentProvider will update idx and entry will resolve on next render\n\t\t\t\tvoid ensureCollection(collection);\n\t\t\t}\n\t\t} catch {}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [collection, ensureCollection, entry]);\n\n\t// Apply title/description early based on registry meta\n\tuseEffect(() => {\n\t\ttry {\n\t\t\tif (entry && (entry as Any).meta) applyPageMeta((entry as Any).meta);\n\t\t} catch {}\n\t}, [entry]);\n\n\t// Dev-only hydration diagnostic: detect nested <p> within <p> and print shallow tree\n\tuseEffect(() => {\n\t\ttry {\n\t\t\tif (typeof window === 'undefined') return;\n\t\t\tconst isDev =\n\t\t\t\t(typeof process !== 'undefined' &&\n\t\t\t\t\t((process.env?.NODE_ENV as Any) ?? 'development') !== 'production') ||\n\t\t\t\t(typeof document !== 'undefined' &&\n\t\t\t\t\t/^localhost|^127\\.0\\.0\\.1/.test(window.location.hostname));\n\n\t\t\tif (!isDev) return;\n\t\t\tconst root = containerRef.current;\n\t\t\tif (!root) return;\n\n\t\t\t// eslint-disable-next-line no-console\n\t\t\t// console.info(`[Reroute] ContentRoute root children (${key}):`, direct);\n\n\t\t\tconst nested = root.querySelectorAll('p p');\n\t\t\tif (!nested.length) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Log each occurrence with helpful snippets\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.groupCollapsed(\n\t\t\t\t`[Reroute] DOM check: nested <p> found in ContentRoute (${key})`,\n\t\t\t);\n\t\t\tnested.forEach((inner, idx) => {\n\t\t\t\tconst outer = inner.closest('p');\n\t\t\t\tconst snippet = (el: Element | null) =>\n\t\t\t\t\t(el?.textContent || '').replace(/\\s+/g, ' ').trim().slice(0, 160);\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(`Case ${idx + 1}:`, {\n\t\t\t\t\touterSnippet: snippet(outer),\n\t\t\t\t\tinnerSnippet: snippet(inner),\n\t\t\t\t});\n\t\t\t});\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.groupEnd();\n\t\t} catch {}\n\t}, [key]);\n\n\treturn (\n\t\t<div data-reroute='content' ref={containerRef}>\n\t\t\t<Comp />\n\t\t</div>\n\t);\n}\n\nexport { ContentRoute };\n",
|
|
6
7
|
"import { useCallback, useEffect, useMemo, useState } from 'react';\nimport {\n\tuseContentIndex,\n\tuseContentLoadCollection,\n} from '../providers/ContentProvider';\nimport type { Any } from '../types/any';\n\ntype ContentMeta = Record<string, Any> | undefined;\n\ntype ContentListEntry = {\n\tcollection: string;\n\tname: string;\n\tslug?: string;\n\thref: string;\n\tmodule?: string;\n\tmeta?: ContentMeta;\n} & Record<string, Any>;\n\ntype UseContentCollectionParams = {\n\tcollection: string;\n\tsort?:\n\t\t| { date: 'asc' | 'desc' }\n\t\t| ((a: ContentListEntry, b: ContentListEntry) => number)\n\t\t| false;\n\t/** Optional limit for items returned and shipped by SSR */\n\tlimit?: number;\n};\n\ntype UseContentCollectionResult = {\n\titems: ContentListEntry[];\n\tprefetch: (\n\t\tentry: Pick<ContentListEntry, 'collection' | 'name' | 'module'>,\n\t) => void;\n};\n\nfunction sortByDate(\n\torder: 'asc' | 'desc',\n): (a: ContentListEntry, b: ContentListEntry) => number {\n\treturn (a: ContentListEntry, b: ContentListEntry) => {\n\t\tconst da =\n\t\t\ta?.meta && (a.meta as Any)?.date\n\t\t\t\t? Date.parse(String((a.meta as Any).date))\n\t\t\t\t: 0;\n\t\tconst db =\n\t\t\tb?.meta && (b.meta as Any)?.date\n\t\t\t\t? Date.parse(String((b.meta as Any).date))\n\t\t\t\t: 0;\n\t\treturn order === 'asc' ? da - db : db - da;\n\t};\n}\n\nexport function prefetchContent(\n\tentry: Pick<ContentListEntry, 'collection' | 'name' | 'module'>,\n): void {\n\tif (typeof window === 'undefined') return;\n\tconst modUrl = (entry as Any)?.module as string | undefined;\n\tif (!modUrl || typeof modUrl !== 'string') return;\n\ttry {\n\t\tconst key = `${entry.collection}:${entry.name}`;\n\t\tconst w = window as Any;\n\t\tif (!w.__REROUTE_MODULES__) w.__REROUTE_MODULES__ = {};\n\t\tconst store: Any = w.__REROUTE_MODULES__;\n\t\tif (store[key]) return;\n\t\timport(/* @vite-ignore */ modUrl)\n\t\t\t.then((m) => {\n\t\t\t\tconst C = (m as Any).default || (m as Any);\n\t\t\t\tstore[key] = C;\n\t\t\t})\n\t\t\t.catch(() => {});\n\t} catch {}\n}\n\nexport function useContent(\n\tparams: UseContentCollectionParams,\n): UseContentCollectionResult {\n\tconst { collection, sort = { date: 'desc' }, limit } = params;\n\t// During SSR, record that this collection was accessed so the server can\n\t// inline only the necessary lists in the HTML payload.\n\ttry {\n\t\tif (typeof window === 'undefined') {\n\t\t\tconst g = globalThis as Any;\n\t\t\tif (!g.__REROUTE_SSR_ACCESSED__) {\n\t\t\t\tg.__REROUTE_SSR_ACCESSED__ = {};\n\t\t\t}\n\t\t\tconst rec: Any = g.__REROUTE_SSR_ACCESSED__;\n\t\t\tconst existing: Any = rec[collection] || {};\n\t\t\tconst isCustomSort = typeof sort === 'function';\n\t\t\tconst sortKey = isCustomSort\n\t\t\t\t? 'custom'\n\t\t\t\t: sort === false\n\t\t\t\t\t? 'none'\n\t\t\t\t\t: typeof sort === 'string'\n\t\t\t\t\t\t? sort === 'date-asc'\n\t\t\t\t\t\t\t? 'date-asc'\n\t\t\t\t\t\t\t: 'date-desc'\n\t\t\t\t\t\t: typeof sort === 'object' && sort && (sort as Any).date === 'asc'\n\t\t\t\t\t\t\t? 'date-asc'\n\t\t\t\t\t\t\t: 'date-desc';\n\t\t\t// If mixed sorts are seen for the same collection, fall back to 'custom'\n\t\t\texisting.sort =\n\t\t\t\texisting.sort && existing.sort !== sortKey\n\t\t\t\t\t? 'custom'\n\t\t\t\t\t: existing.sort || sortKey;\n\t\t\tconst requested =\n\t\t\t\ttypeof limit === 'number' && limit > 0 ? limit : Infinity;\n\t\t\texisting.limit = Math.max(existing.limit || 0, requested);\n\t\t\trec[collection] = existing;\n\t\t}\n\t} catch {}\n\tconst index = useContentIndex();\n\tconst loadCollection = useContentLoadCollection();\n\tconst [_ready, setReady] = useState(false);\n\n\tuseEffect(() => {\n\t\tlet cancelled = false;\n\t\tasync function ensure() {\n\t\t\ttry {\n\t\t\t\tconst have = (index as Any)?.[collection] as Any[] | undefined;\n\t\t\t\t// In hydration, a subset may be inlined. If limit is undefined (caller expects full list)\n\t\t\t\t// or requested limit exceeds current subset size, try loading the full collection.\n\t\t\t\tconst w: Any | undefined =\n\t\t\t\t\ttypeof window !== 'undefined' ? (window as Any) : undefined;\n\t\t\t\tconst partial: boolean = Boolean(\n\t\t\t\t\tw?.__REROUTE_COLLECTIONS_PARTIAL__?.[collection],\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\t!have ||\n\t\t\t\t\t(partial &&\n\t\t\t\t\t\t(!limit || (typeof limit === 'number' && have.length < limit)))\n\t\t\t\t) {\n\t\t\t\t\tif (loadCollection) await loadCollection(collection);\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (!cancelled) setReady(true);\n\t\t\t}\n\t\t}\n\t\tensure();\n\t\treturn () => {\n\t\t\tcancelled = true;\n\t\t};\n\t}, [collection, index, loadCollection, limit]);\n\n\tconst items = useMemo<ContentListEntry[]>(() => {\n\t\tconst source = index || {};\n\t\tconst list = (source as Any)?.[collection] as\n\t\t\t| ContentListEntry[]\n\t\t\t| undefined;\n\t\tif (!Array.isArray(list) || list.length === 0)\n\t\t\treturn [] as ContentListEntry[];\n\t\tlet cloned = [...list];\n\t\tif (typeof sort === 'function') cloned = cloned.sort(sort);\n\t\telse if (typeof sort === 'string') {\n\t\t\tcloned = cloned.sort(sortByDate(sort === 'date-asc' ? 'asc' : 'desc'));\n\t\t} else if (sort && typeof sort === 'object' && (sort as Any).date) {\n\t\t\tcloned = cloned.sort(\n\t\t\t\tsortByDate((sort as Any).date === 'asc' ? 'asc' : 'desc'),\n\t\t\t);\n\t\t}\n\t\t// sort === false -> leave as-is\n\t\tif (typeof limit === 'number' && limit >= 0)\n\t\t\tcloned = cloned.slice(0, limit);\n\t\treturn cloned;\n\t}, [index, collection, sort, limit]);\n\n\tconst prefetch = useCallback(\n\t\t(entry: Pick<ContentListEntry, 'collection' | 'name' | 'module'>) =>\n\t\t\tprefetchContent(entry),\n\t\t[],\n\t);\n\n\treturn { items, prefetch };\n}\n\nexport type {\n\tContentListEntry,\n\tUseContentCollectionParams,\n\tUseContentCollectionResult,\n};\n",
|
|
7
8
|
"import {\n\tcreateContext,\n\ttype ReactNode,\n\tuseCallback,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n} from 'react';\nimport type { Any } from '../types/any';\nimport { createResolverFromGetEntry, parseContentHref } from '../utils/content';\n\ntype ContentRef =\n\t| { collection: string; name: string; module?: string }\n\t| undefined;\n\ntype ContentResolver = (href: string) => ContentRef;\n\nconst ContentRegistryContext = createContext<ContentResolver | null>(null);\nconst ContentIndexContext = createContext<Record<string, Any[]> | null>(null);\nconst ContentGetEntryContext = createContext<\n\t((collection: string, name: string) => Any | undefined) | null\n>(null);\nconst ContentLoadCollectionContext = createContext<\n\t((collection: string) => Promise<Any[] | undefined>) | null\n>(null);\n\ntype ContentProviderProps = {\n\tchildren?: ReactNode;\n\t/**\n\t * Resolve a content link target to a content reference.\n\t * Return collection + name + module (if known) for optimal prefetching.\n\t */\n\tresolveByHref?: ContentResolver;\n\t/** Optional access to the app's content registry getter (e.g., .reroute/content#getContentEntry) */\n\tgetEntry?: (collection: string, name: string) => Any | undefined;\n\t/** Optional prebuilt byCollection index (e.g., from .reroute/content) */\n\tbyCollection?: Record<string, Any[]> | null;\n\t/** Optional lazy loader that loads a single collection at a time */\n\tloadCollection?: (collection: string) => Promise<{ items: Any[] } | Any>;\n};\n\nfunction ContentProvider({\n\tchildren,\n\tresolveByHref,\n\tgetEntry,\n\tbyCollection,\n\tloadCollection,\n}: ContentProviderProps) {\n\tconst [idx, setIdx] = useState<Record<string, Any[]>>(() => {\n\t\tconst seededClient: Record<string, Any[]> = (() => {\n\t\t\ttry {\n\t\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\t\tconst w = window as Any;\n\t\t\t\t\treturn (w.__REROUTE_COLLECTIONS__ as Record<string, Any[]>) || {};\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t\treturn {};\n\t\t})();\n\t\tconst seededServer: Record<string, Any[]> = (() => {\n\t\t\ttry {\n\t\t\t\tif (typeof window === 'undefined') {\n\t\t\t\t\tconst g = globalThis as Any;\n\t\t\t\t\treturn (g.__REROUTE_COLLECTIONS__ as Record<string, Any[]>) || {};\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t\treturn {};\n\t\t})();\n\t\treturn {\n\t\t\t...(byCollection || {}),\n\t\t\t...seededServer,\n\t\t\t...seededClient,\n\t\t} as Record<string, Any[]>;\n\t});\n\tconst entryFn = getEntry || null;\n\n\tconst resolver = useMemo<ContentResolver | null>(() => {\n\t\tif (typeof resolveByHref === 'function') return resolveByHref;\n\t\tif (typeof getEntry === 'function')\n\t\t\treturn createResolverFromGetEntry(getEntry);\n\t\t// Fallback: resolve from in-memory index when available (no bundling)\n\t\treturn (href: string) => {\n\t\t\tconst parsed = parseContentHref(href);\n\t\t\tif (!parsed) return undefined;\n\t\t\ttry {\n\t\t\t\tconst list = (idx as Any)?.[parsed.collection] as Any[] | undefined;\n\t\t\t\tif (Array.isArray(list)) {\n\t\t\t\t\tconst found = list.find((e: Any) => e?.name === parsed.name) as\n\t\t\t\t\t\t| Any\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\tif (found && typeof found.module === 'string') {\n\t\t\t\t\t\treturn { ...parsed, module: found.module };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t\treturn parsed;\n\t\t};\n\t}, [resolveByHref, getEntry, idx]);\n\n\tconst ensureCollection = useCallback(\n\t\tasync (collection: string): Promise<Any[] | undefined> => {\n\t\t\ttry {\n\t\t\t\tconst existing = (idx as Any)[collection];\n\t\t\t\tif (Array.isArray(existing) && existing.length) return existing;\n\t\t\t\tif (!loadCollection) return existing;\n\t\t\t\tconst mod = await loadCollection(collection);\n\t\t\t\tconst items = ((mod as Any).items || (mod as Any).list || []) as Any[];\n\t\t\t\tif (Array.isArray(items)) {\n\t\t\t\t\tsetIdx((prev) => ({ ...(prev || {}), [collection]: items }));\n\t\t\t\t\treturn items;\n\t\t\t\t}\n\t\t\t\treturn existing;\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t},\n\t\t[idx, loadCollection],\n\t);\n\n\treturn (\n\t\t<ContentRegistryContext.Provider value={resolver}>\n\t\t\t<ContentIndexContext.Provider value={idx}>\n\t\t\t\t<ContentGetEntryContext.Provider value={entryFn}>\n\t\t\t\t\t<ContentLoadCollectionContext.Provider value={ensureCollection}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</ContentLoadCollectionContext.Provider>\n\t\t\t\t</ContentGetEntryContext.Provider>\n\t\t\t</ContentIndexContext.Provider>\n\t\t</ContentRegistryContext.Provider>\n\t);\n}\n\nfunction useContentResolver(): ContentResolver | null {\n\treturn useContext(ContentRegistryContext);\n}\n\nexport { ContentProvider, useContentResolver };\nfunction useContentIndex(): Record<string, Any[]> | null {\n\treturn useContext(ContentIndexContext);\n}\n\nexport { useContentIndex };\nexport type { ContentRef, ContentResolver };\n\nfunction useContentGetEntry():\n\t| ((collection: string, name: string) => Any | undefined)\n\t| null {\n\treturn useContext(ContentGetEntryContext);\n}\n\nexport { useContentGetEntry };\n\nfunction useContentLoadCollection():\n\t| ((collection: string) => Promise<Any[] | undefined>)\n\t| null {\n\treturn useContext(ContentLoadCollectionContext);\n}\n\nexport { useContentLoadCollection };\n",
|
|
8
9
|
"import type { ContentRef, ContentResolver } from '../providers/ContentProvider';\nimport type { Any } from '../types/any';\n\nexport function parseContentHref(\n\thref: string,\n): { collection: string; name: string } | undefined {\n\ttry {\n\t\tconst url = new URL(href, 'http://local');\n\t\tconst [collection, name] = url.pathname.split('/').filter(Boolean);\n\t\tif (!collection || !name) return undefined;\n\t\treturn { collection, name };\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nexport function createResolverFromGetEntry(\n\tgetEntry: (collection: string, name: string) => Any | undefined,\n): ContentResolver {\n\treturn (href: string): ContentRef => {\n\t\tconst parsed = parseContentHref(href);\n\t\tif (!parsed) return undefined;\n\t\ttry {\n\t\t\tconst entry = getEntry(parsed.collection, parsed.name) as Any;\n\t\t\tif (!entry) return parsed;\n\t\t\tconst moduleUrl = (entry as Any)?.module as string | undefined;\n\t\t\treturn moduleUrl ? { ...parsed, module: moduleUrl } : parsed;\n\t\t} catch {\n\t\t\treturn parsed;\n\t\t}\n\t};\n}\n",
|
|
@@ -15,10 +16,11 @@
|
|
|
15
16
|
"import { useRouter } from './useRouter';\n\n/**\n * Hook to access URL parameters.\n * Must be used within a RouterProvider.\n */\nexport function useParams<\n\tT extends Record<string, string> = Record<string, string>,\n>(): T {\n\tconst { params } = useRouter();\n\treturn params as T;\n}\n",
|
|
16
17
|
"import { useRouter } from './useRouter';\n\n/**\n * Hook to access URL search parameters.\n * Must be used within a RouterProvider.\n */\nexport function useSearchParams(): URLSearchParams {\n\tconst { searchParams } = useRouter();\n\treturn searchParams;\n}\n",
|
|
17
18
|
"import {\n\ttype CSSProperties,\n\ttype ImgHTMLAttributes,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\n\nexport interface ImageProps\n\textends Omit<\n\t\tImgHTMLAttributes<HTMLImageElement>,\n\t\t'src' | 'srcSet' | 'width' | 'height'\n\t> {\n\t/** Source path of the image */\n\tsrc: string;\n\t/** Width in pixels */\n\twidth?: number;\n\t/** Height in pixels */\n\theight?: number;\n\t/** Image quality (1-100, default: 75) */\n\tquality?: number;\n\t/** Output format (default: auto-detect based on browser support) */\n\tformat?: 'auto' | 'webp' | 'avif' | 'jpeg' | 'png';\n\t/** Sizes attribute for responsive images */\n\tsizes?: string;\n\t/** Priority loading (disables lazy loading) */\n\tpriority?: boolean;\n\t/** Blur placeholder data URL */\n\tplaceholder?: 'blur' | 'empty';\n\t/** Blur data URL (when placeholder='blur') */\n\tblurDataURL?: string;\n\t/** Show loading spinner (default: true) */\n\tshowSpinner?: boolean;\n\t/** Custom spinner component to show while image loads */\n\tspinner?: React.ReactNode;\n\t/** Spinner size in pixels (default: 40) */\n\tspinnerSize?: number;\n\t/** Spinner color (default: 'rgba(0, 0, 0, 0.4)') */\n\tspinnerColor?: string;\n\t/** Spinner background color (default: 'rgba(0, 0, 0, 0.03)') */\n\tspinnerBackground?: string;\n\t/** Custom loader function */\n\tloader?: (params: {\n\t\tsrc: string;\n\t\twidth: number;\n\t\tquality?: number;\n\t\tformat?: string;\n\t}) => string;\n\t/** Callback when image loads */\n\tonLoad?: () => void;\n\t/** Callback when image errors */\n\tonError?: () => void;\n}\n\n// Default device sizes for responsive images (based on common breakpoints)\nconst DEFAULT_DEVICE_SIZES = [640, 750, 828, 1080, 1200, 1920, 2048, 3840];\n\n// Generate srcset from device sizes\nfunction generateSrcSet(\n\tsrc: string,\n\twidth: number | undefined,\n\tquality: number,\n\tformat: string,\n\tloader: ImageProps['loader'],\n): string {\n\tconst sizes = width\n\t\t? DEFAULT_DEVICE_SIZES.filter((size) => size <= width * 2)\n\t\t: DEFAULT_DEVICE_SIZES;\n\n\tif (sizes.length === 0 || !width) {\n\t\treturn '';\n\t}\n\n\treturn sizes\n\t\t.map((size) => {\n\t\t\tconst url = loader\n\t\t\t\t? loader({ src, width: size, quality, format })\n\t\t\t\t: defaultLoader({ src, width: size, quality, format });\n\t\t\treturn `${url} ${size}w`;\n\t\t})\n\t\t.join(', ');\n}\n\n// Default loader that generates reroute image optimization URLs\nfunction defaultLoader({\n\tsrc,\n\twidth,\n\tquality = 75,\n\tformat,\n}: {\n\tsrc: string;\n\twidth: number;\n\tquality?: number;\n\tformat?: string;\n}): string {\n\tconst params = new URLSearchParams();\n\tparams.set('url', src);\n\tparams.set('w', width.toString());\n\tparams.set('q', quality.toString());\n\tif (format && format !== 'auto') {\n\t\tparams.set('f', format);\n\t}\n\treturn `/_reroute_image?${params.toString()}`;\n}\n\n// Check if native lazy loading is supported\nfunction supportsNativeLazyLoading(): boolean {\n\tif (typeof HTMLImageElement === 'undefined') {\n\t\treturn true; // Assume support during SSR (99% of modern browsers support it)\n\t}\n\treturn 'loading' in HTMLImageElement.prototype;\n}\n\nexport function Image({\n\tsrc,\n\twidth,\n\theight,\n\tquality = 75,\n\tformat = 'auto',\n\tsizes,\n\tpriority = false,\n\tplaceholder = 'empty',\n\tblurDataURL,\n\tshowSpinner = true,\n\tspinner,\n\tspinnerSize = 40,\n\tspinnerColor = 'rgba(0, 0, 0, 0.4)',\n\tspinnerBackground = 'rgba(0, 0, 0, 0.03)',\n\tloader,\n\talt,\n\tonLoad: onLoadProp,\n\tonError: onErrorProp,\n\tstyle,\n\tclassName,\n\t...props\n}: ImageProps) {\n\tconst [isLoaded, setIsLoaded] = useState(false);\n\tconst [hasError, setHasError] = useState(false);\n\tconst imgRef = useRef<HTMLImageElement>(null);\n\n\t// Generate image URL\n\t// Don't pass resolved format to defaultLoader - let server negotiate via Accept header\n\tconst imageUrl = loader\n\t\t? loader({ src, width: width || 0, quality, format })\n\t\t: width\n\t\t\t? defaultLoader({ src, width, quality, format })\n\t\t\t: src;\n\n\t// Check if image is already loaded (e.g., from browser cache)\n\tuseEffect(() => {\n\t\tconst img = imgRef.current;\n\t\tif (img?.complete && img.naturalWidth > 0) {\n\t\t\tsetIsLoaded(true);\n\t\t}\n\t}, []);\n\n\t// Generate srcset for responsive images\n\tconst srcSet = width\n\t\t? generateSrcSet(src, width, quality, format, loader)\n\t\t: undefined;\n\n\t// Handle image load\n\tconst handleLoad = () => {\n\t\tsetIsLoaded(true);\n\t\tonLoadProp?.();\n\t};\n\n\t// Handle image error\n\tconst handleError = () => {\n\t\tsetHasError(true);\n\t\tonErrorProp?.();\n\t};\n\n\t// Intersection observer for lazy loading\n\tuseEffect(() => {\n\t\tif (priority || typeof window === 'undefined') {\n\t\t\treturn;\n\t\t}\n\n\t\tconst img = imgRef.current;\n\t\tif (!img) return;\n\n\t\t// Use native lazy loading if available\n\t\tif (supportsNativeLazyLoading()) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to intersection observer\n\t\tconst observer = new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tentries.forEach((entry) => {\n\t\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\t\tconst lazyImg = entry.target as HTMLImageElement;\n\t\t\t\t\t\tconst dataSrc = lazyImg.getAttribute('data-src');\n\t\t\t\t\t\tconst dataSrcSet = lazyImg.getAttribute('data-srcset');\n\n\t\t\t\t\t\tif (dataSrc) {\n\t\t\t\t\t\t\tlazyImg.src = dataSrc;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (dataSrcSet) {\n\t\t\t\t\t\t\tlazyImg.srcset = dataSrcSet;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tobserver.unobserve(lazyImg);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t{\n\t\t\t\trootMargin: '50px',\n\t\t\t},\n\t\t);\n\n\t\tobserver.observe(img);\n\n\t\treturn () => {\n\t\t\tif (img) {\n\t\t\t\tobserver.unobserve(img);\n\t\t\t}\n\t\t};\n\t}, [priority]);\n\n\t// Compute styles\n\tconst imgStyle: CSSProperties = {\n\t\t...style,\n\t\t...(width && height ? { aspectRatio: `${width} / ${height}` } : {}),\n\t\t...(placeholder === 'blur' && !isLoaded && !hasError\n\t\t\t? {\n\t\t\t\t\tfilter: 'blur(20px)',\n\t\t\t\t\ttransform: 'scale(1.1)',\n\t\t\t\t\ttransition: 'filter 0.3s ease, transform 0.3s ease',\n\t\t\t\t}\n\t\t\t: isLoaded\n\t\t\t\t? {\n\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\ttransform: 'scale(1)',\n\t\t\t\t\t\ttransition: 'filter 0.3s ease, transform 0.3s ease',\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t};\n\n\t// Determine loading strategy\n\tconst loadingAttr = priority ? 'eager' : 'lazy';\n\n\t// Use blur placeholder if provided\n\tconst placeholderSrc =\n\t\tplaceholder === 'blur' && blurDataURL ? blurDataURL : undefined;\n\n\treturn (\n\t\t<span\n\t\t\tstyle={{\n\t\t\t\tposition: 'relative',\n\t\t\t\tdisplay: 'flex',\n\t\t\t\talignItems: 'center',\n\t\t\t\tjustifyContent: 'center',\n\t\t\t\twidth: '100%',\n\t\t\t\theight: '100%',\n\t\t\t}}\n\t\t>\n\t\t\t{/* Loading spinner */}\n\t\t\t{showSpinner && !isLoaded && !hasError && (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tinset: 0,\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\tbackgroundColor: spinnerBackground,\n\t\t\t\t\t\tzIndex: 1,\n\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{spinner || (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: `${spinnerSize}px`,\n\t\t\t\t\t\t\t\theight: `${spinnerSize}px`,\n\t\t\t\t\t\t\t\tborder: `${Math.max(2, spinnerSize / 13)}px solid transparent`,\n\t\t\t\t\t\t\t\tborderTopColor: spinnerColor,\n\t\t\t\t\t\t\t\tborderRadius: '50%',\n\t\t\t\t\t\t\t\tanimation: 'reroute-spin 0.8s linear infinite',\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{placeholder === 'blur' && placeholderSrc && !isLoaded && !hasError && (\n\t\t\t\t<img\n\t\t\t\t\tsrc={placeholderSrc}\n\t\t\t\t\talt=''\n\t\t\t\t\taria-hidden='true'\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tinset: 0,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\tobjectFit: style?.objectFit || 'cover',\n\t\t\t\t\t\tfilter: 'blur(20px)',\n\t\t\t\t\t\ttransform: 'scale(1.1)',\n\t\t\t\t\t\tzIndex: -1,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<img\n\t\t\t\tref={imgRef}\n\t\t\t\tsrc={priority || supportsNativeLazyLoading() ? imageUrl : undefined}\n\t\t\t\tdata-src={\n\t\t\t\t\t!priority && !supportsNativeLazyLoading() ? imageUrl : undefined\n\t\t\t\t}\n\t\t\t\tsrcSet={priority || supportsNativeLazyLoading() ? srcSet : undefined}\n\t\t\t\tdata-srcset={\n\t\t\t\t\t!priority && !supportsNativeLazyLoading() ? srcSet : undefined\n\t\t\t\t}\n\t\t\t\tsizes={sizes}\n\t\t\t\twidth={width}\n\t\t\t\theight={height}\n\t\t\t\talt={alt || ''}\n\t\t\t\tloading={loadingAttr}\n\t\t\t\tfetchPriority={priority ? 'high' : undefined}\n\t\t\t\tonLoad={handleLoad}\n\t\t\t\tonError={handleError}\n\t\t\t\tstyle={imgStyle}\n\t\t\t\tclassName={className}\n\t\t\t\t{...props}\n\t\t\t/>\n\n\t\t\t{/* Keyframes for spinner animation */}\n\t\t\t{showSpinner && !isLoaded && (\n\t\t\t\t<style>\n\t\t\t\t\t{`\n\t\t\t\t\t\t@keyframes reroute-spin {\n\t\t\t\t\t\t\t0% { transform: rotate(0deg); }\n\t\t\t\t\t\t\t100% { transform: rotate(360deg); }\n\t\t\t\t\t\t}\n\t\t\t\t\t`}\n\t\t\t\t</style>\n\t\t\t)}\n\t\t</span>\n\t);\n}\n",
|
|
18
|
-
"import { useCallback, useMemo } from 'react';\nimport { useRouter } from '../hooks';\nimport { prefetchContent } from '../hooks/useContent';\nimport {\n\tuseContentIndex,\n\tuseContentLoadCollection,\n\tuseContentResolver,\n} from '../providers/ContentProvider';\nimport type { Any } from '../types/any';\nimport type { LinkProps } from '../types/router';\n\n/**\n * Link component for client-side navigation.\n * Automatically prevents default behavior and uses the router's navigate function.\n */\nfunction Link({\n\tto,\n\treplace,\n\tstate,\n\tprefetch = true,\n\tfragment,\n\tonClick,\n\tonMouseEnter,\n\tonFocus,\n\t...props\n}: LinkProps) {\n\tconst { navigate, matchRoute } = useRouter();\n\tconst resolver = useContentResolver();\n\tconst contentIndex = useContentIndex();\n\tconst ensureCollection = useContentLoadCollection();\n\tconst inferred = useMemo(\n\t\t() => (resolver ? resolver(String(to)) : undefined),\n\t\t[resolver, to],\n\t);\n\n\tconst handleClick = useCallback(\n\t\tasync (e: React.MouseEvent<HTMLAnchorElement>) => {\n\t\t\tif (onClick) {\n\t\t\t\tonClick(e);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\te.defaultPrevented ||\n\t\t\t\te.button !== 0 ||\n\t\t\t\te.ctrlKey ||\n\t\t\t\te.metaKey ||\n\t\t\t\te.shiftKey ||\n\t\t\t\te.altKey ||\n\t\t\t\tprops.target === '_blank'\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t\t// Prefetch data for dynamic routes only; static/content pages don't need it\n\t\t\tif (prefetch) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\t\t\tconst url = new URL(String(to), window.location.origin);\n\t\t\t\t\t\tif (url.origin === window.location.origin) {\n\t\t\t\t\t\t\tconst path = url.pathname;\n\t\t\t\t\t\t\tconst isDynamic = !!matchRoute?.(path)?.route?.isDynamic;\n\t\t\t\t\t\t\tconst w = window as Any;\n\t\t\t\t\t\t\tw.__REROUTE_DATA__ = w.__REROUTE_DATA__ || {};\n\t\t\t\t\t\t\t// Skip for content links (inferred) and non-dynamic routes\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisDynamic &&\n\t\t\t\t\t\t\t\t(!inferred || !inferred.module) &&\n\t\t\t\t\t\t\t\tw.__REROUTE_DATA__[path] === undefined\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst ctl = new AbortController();\n\t\t\t\t\t\t\t\tconst timer = setTimeout(() => ctl.abort(), 350);\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst r = await fetch(\n\t\t\t\t\t\t\t\t\t\t`/__reroute_data?path=${encodeURIComponent(path)}`,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\theaders: { Accept: 'application/json' },\n\t\t\t\t\t\t\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\t\t\t\t\t\t\tsignal: ctl.signal,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t).catch(() => null);\n\t\t\t\t\t\t\t\t\tif (r?.ok) {\n\t\t\t\t\t\t\t\t\t\tconst j = await r.json().catch(() => null);\n\t\t\t\t\t\t\t\t\t\tif (j) {\n\t\t\t\t\t\t\t\t\t\t\t(w.__REROUTE_DATA__ as Any)[path] = j.data ?? j;\n\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\tw.dispatchEvent(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnew CustomEvent('__reroute_data__', {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdetail: { key: path },\n\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t\t// Build the URL with fragment if provided\n\t\t\tconst targetUrl = fragment ? `${to}#${fragment}` : to;\n\t\t\tnavigate(targetUrl, { replace, state });\n\t\t},\n\t\t[\n\t\t\tnavigate,\n\t\t\tto,\n\t\t\treplace,\n\t\t\tstate,\n\t\t\tonClick,\n\t\t\tprops.target,\n\t\t\tprefetch,\n\t\t\tinferred,\n\t\t\tmatchRoute,\n\t\t\tfragment,\n\t\t],\n\t);\n\n\tconst handleMouseEnter = useCallback<\n\t\tNonNullable<React.AnchorHTMLAttributes<HTMLAnchorElement>['onMouseEnter']>\n\t>(\n\t\t(e) => {\n\t\t\tif (prefetch && inferred && inferred.module) prefetchContent(inferred);\n\t\t\telse if (prefetch) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\t\t\tconst url = new URL(String(to), window.location.origin);\n\t\t\t\t\t\tif (url.origin === window.location.origin) {\n\t\t\t\t\t\t\tconst path = url.pathname;\n\t\t\t\t\t\t\tconst isDynamic = !!matchRoute?.(path)?.route?.isDynamic;\n\t\t\t\t\t\t\t// Fallback for content links without module: load collection then prefetch\n\t\t\t\t\t\t\t// Only try to load collections we already know exist (avoid 404s like /products)\n\t\t\t\t\t\t\tconst known = !!(\n\t\t\t\t\t\t\t\tcontentIndex &&\n\t\t\t\t\t\t\t\tinferred &&\n\t\t\t\t\t\t\t\tinferred.collection in (contentIndex as Any)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (inferred && !inferred.module && ensureCollection && known) {\n\t\t\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tconst items: Any[] | undefined = await ensureCollection(\n\t\t\t\t\t\t\t\t\t\t\tinferred.collection,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tconst found = (items || []).find(\n\t\t\t\t\t\t\t\t\t\t\t(e: Any) => e?.name === inferred.name,\n\t\t\t\t\t\t\t\t\t\t) as Any | undefined;\n\t\t\t\t\t\t\t\t\t\tconst mod = (found as Any)?.module as string | undefined;\n\t\t\t\t\t\t\t\t\t\tif (mod) prefetchContent({ ...inferred, module: mod });\n\t\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst w = window as Any;\n\t\t\t\t\t\t\tw.__REROUTE_DATA__ = w.__REROUTE_DATA__ || {};\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisDynamic &&\n\t\t\t\t\t\t\t\t(!inferred || !inferred.module) &&\n\t\t\t\t\t\t\t\tw.__REROUTE_DATA__[path] === undefined\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tfetch(`/__reroute_data?path=${encodeURIComponent(path)}`, {\n\t\t\t\t\t\t\t\t\theaders: { Accept: 'application/json' },\n\t\t\t\t\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.then((r) => (r.ok ? r.json() : null))\n\t\t\t\t\t\t\t\t\t.then((j) => {\n\t\t\t\t\t\t\t\t\t\tif (!j) return;\n\t\t\t\t\t\t\t\t\t\tw.__REROUTE_DATA__[path] = j.data ?? j;\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tw.dispatchEvent(\n\t\t\t\t\t\t\t\t\t\t\t\tnew CustomEvent('__reroute_data__', {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdetail: { key: path },\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.catch(() => {});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t\tif (onMouseEnter) onMouseEnter(e);\n\t\t},\n\t\t[\n\t\t\tprefetch,\n\t\t\tinferred,\n\t\t\tonMouseEnter,\n\t\t\tto,\n\t\t\tcontentIndex,\n\t\t\tensureCollection,\n\t\t\tmatchRoute,\n\t\t],\n\t);\n\n\tconst handleFocus = useCallback<\n\t\tNonNullable<React.AnchorHTMLAttributes<HTMLAnchorElement>['onFocus']>\n\t>(\n\t\t(e) => {\n\t\t\tif (prefetch && inferred && inferred.module) prefetchContent(inferred);\n\t\t\telse if (prefetch) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\t\t\tconst url = new URL(String(to), window.location.origin);\n\t\t\t\t\t\tif (url.origin === window.location.origin) {\n\t\t\t\t\t\t\tconst path = url.pathname;\n\t\t\t\t\t\t\tconst isDynamic = !!matchRoute?.(path)?.route?.isDynamic;\n\t\t\t\t\t\t\tconst known2 = !!(\n\t\t\t\t\t\t\t\tcontentIndex &&\n\t\t\t\t\t\t\t\tinferred &&\n\t\t\t\t\t\t\t\tinferred.collection in (contentIndex as Any)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (inferred && !inferred.module && ensureCollection && known2) {\n\t\t\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tconst items: Any[] | undefined = await ensureCollection(\n\t\t\t\t\t\t\t\t\t\t\tinferred.collection,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tconst found = (items || []).find(\n\t\t\t\t\t\t\t\t\t\t\t(e: Any) => e?.name === inferred.name,\n\t\t\t\t\t\t\t\t\t\t) as Any | undefined;\n\t\t\t\t\t\t\t\t\t\tconst mod = (found as Any)?.module as string | undefined;\n\t\t\t\t\t\t\t\t\t\tif (mod) prefetchContent({ ...inferred, module: mod });\n\t\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst w = window as Any;\n\t\t\t\t\t\t\tw.__REROUTE_DATA__ = w.__REROUTE_DATA__ || {};\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisDynamic &&\n\t\t\t\t\t\t\t\t(!inferred || !inferred.module) &&\n\t\t\t\t\t\t\t\tw.__REROUTE_DATA__[path] === undefined\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tfetch(`/__reroute_data?path=${encodeURIComponent(path)}`, {\n\t\t\t\t\t\t\t\t\theaders: { Accept: 'application/json' },\n\t\t\t\t\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.then((r) => (r.ok ? r.json() : null))\n\t\t\t\t\t\t\t\t\t.then((j) => {\n\t\t\t\t\t\t\t\t\t\tif (!j) return;\n\t\t\t\t\t\t\t\t\t\tw.__REROUTE_DATA__[path] = j.data ?? j;\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tw.dispatchEvent(\n\t\t\t\t\t\t\t\t\t\t\t\tnew CustomEvent('__reroute_data__', {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdetail: { key: path },\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.catch(() => {});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t\tif (onFocus) onFocus(e);\n\t\t},\n\t\t[\n\t\t\tprefetch,\n\t\t\tinferred,\n\t\t\tonFocus,\n\t\t\tto,\n\t\t\tcontentIndex,\n\t\t\tensureCollection,\n\t\t\tmatchRoute,\n\t\t],\n\t);\n\n\t// Build href with fragment if provided\n\tconst href = fragment ? `${to}#${fragment}` : to;\n\n\treturn (\n\t\t<a\n\t\t\thref={href}\n\t\t\tonClick={handleClick}\n\t\t\tonMouseEnter={handleMouseEnter}\n\t\t\tonFocus={handleFocus}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Link };\n",
|
|
19
|
+
"import { useCallback, useContext, useMemo } from 'react';\nimport { useRouter } from '../hooks';\nimport { prefetchContent } from '../hooks/useContent';\nimport {\n\tuseContentIndex,\n\tuseContentLoadCollection,\n\tuseContentResolver,\n} from '../providers/ContentProvider';\nimport { RouterContext } from '../providers/RouterProvider';\nimport type { Any } from '../types/any';\nimport type { LinkProps } from '../types/router';\n\n/**\n * Link component for client-side navigation.\n * Automatically prevents default behavior and uses the router's navigate function.\n */\nfunction Link({\n\tto,\n\treplace,\n\tstate,\n\tprefetch = true,\n\tfragment,\n\tonClick,\n\tonMouseEnter,\n\tonFocus,\n\t...props\n}: LinkProps) {\n\t// Always call hooks unconditionally (Rules of Hooks)\n\tconst routerContext = useContext(RouterContext);\n\tconst router = useRouter();\n\tconst resolver = useContentResolver();\n\tconst contentIndex = useContentIndex();\n\tconst ensureCollection = useContentLoadCollection();\n\n\t// Check if we have router context (SSR-safe)\n\tconst hasRouter = !!routerContext;\n\n\tconst { navigate, matchRoute } = router || {\n\t\tnavigate: () => {},\n\t\tmatchRoute: () => null,\n\t};\n\n\tconst inferred = useMemo(\n\t\t() => (resolver ? resolver(String(to)) : undefined),\n\t\t[resolver, to],\n\t);\n\n\tconst handleClick = useCallback(\n\t\tasync (e: React.MouseEvent<HTMLAnchorElement>) => {\n\t\t\tif (onClick) {\n\t\t\t\tonClick(e);\n\t\t\t}\n\n\t\t\t// If no router context (SSR), allow default navigation\n\t\t\tif (!hasRouter) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\te.defaultPrevented ||\n\t\t\t\te.button !== 0 ||\n\t\t\t\te.ctrlKey ||\n\t\t\t\te.metaKey ||\n\t\t\t\te.shiftKey ||\n\t\t\t\te.altKey ||\n\t\t\t\tprops.target === '_blank'\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t\t// Prefetch data for dynamic routes only; static/content pages don't need it\n\t\t\tif (prefetch) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\t\t\tconst url = new URL(String(to), window.location.origin);\n\t\t\t\t\t\tif (url.origin === window.location.origin) {\n\t\t\t\t\t\t\tconst path = url.pathname;\n\t\t\t\t\t\t\tconst isDynamic = !!matchRoute?.(path)?.route?.isDynamic;\n\t\t\t\t\t\t\tconst w = window as Any;\n\t\t\t\t\t\t\tw.__REROUTE_DATA__ = w.__REROUTE_DATA__ || {};\n\t\t\t\t\t\t\t// Skip for content links (inferred) and non-dynamic routes\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisDynamic &&\n\t\t\t\t\t\t\t\t(!inferred || !inferred.module) &&\n\t\t\t\t\t\t\t\tw.__REROUTE_DATA__[path] === undefined\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst ctl = new AbortController();\n\t\t\t\t\t\t\t\tconst timer = setTimeout(() => ctl.abort(), 350);\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst r = await fetch(\n\t\t\t\t\t\t\t\t\t\t`/__reroute_data?path=${encodeURIComponent(path)}`,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\theaders: { Accept: 'application/json' },\n\t\t\t\t\t\t\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\t\t\t\t\t\t\tsignal: ctl.signal,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t).catch(() => null);\n\t\t\t\t\t\t\t\t\tif (r?.ok) {\n\t\t\t\t\t\t\t\t\t\tconst j = await r.json().catch(() => null);\n\t\t\t\t\t\t\t\t\t\tif (j) {\n\t\t\t\t\t\t\t\t\t\t\t(w.__REROUTE_DATA__ as Any)[path] = j.data ?? j;\n\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\tw.dispatchEvent(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnew CustomEvent('__reroute_data__', {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdetail: { key: path },\n\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t\t// Build the URL with fragment if provided\n\t\t\tconst targetUrl = fragment ? `${to}#${fragment}` : to;\n\t\t\tnavigate(targetUrl, { replace, state });\n\t\t},\n\t\t[\n\t\t\tnavigate,\n\t\t\tto,\n\t\t\treplace,\n\t\t\tstate,\n\t\t\tonClick,\n\t\t\tprops.target,\n\t\t\tprefetch,\n\t\t\tinferred,\n\t\t\tmatchRoute,\n\t\t\tfragment,\n\t\t\thasRouter,\n\t\t],\n\t);\n\n\tconst handleMouseEnter = useCallback<\n\t\tNonNullable<React.AnchorHTMLAttributes<HTMLAnchorElement>['onMouseEnter']>\n\t>(\n\t\t(e: Any) => {\n\t\t\tif (prefetch && inferred && inferred.module) prefetchContent(inferred);\n\t\t\telse if (prefetch) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\t\t\tconst url = new URL(String(to), window.location.origin);\n\t\t\t\t\t\tif (url.origin === window.location.origin) {\n\t\t\t\t\t\t\tconst path = url.pathname;\n\t\t\t\t\t\t\tconst isDynamic = !!matchRoute?.(path)?.route?.isDynamic;\n\t\t\t\t\t\t\t// Fallback for content links without module: load collection then prefetch\n\t\t\t\t\t\t\t// Only try to load collections we already know exist (avoid 404s like /products)\n\t\t\t\t\t\t\tconst known = !!(\n\t\t\t\t\t\t\t\tcontentIndex &&\n\t\t\t\t\t\t\t\tinferred &&\n\t\t\t\t\t\t\t\tinferred.collection in (contentIndex as Any)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (inferred && !inferred.module && ensureCollection && known) {\n\t\t\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tconst items: Any[] | undefined = (await ensureCollection(\n\t\t\t\t\t\t\t\t\t\t\tinferred.collection,\n\t\t\t\t\t\t\t\t\t\t)) as Any[] | undefined;\n\t\t\t\t\t\t\t\t\t\tconst found = (items || []).find(\n\t\t\t\t\t\t\t\t\t\t\t(item: Any) => item?.name === inferred.name,\n\t\t\t\t\t\t\t\t\t\t) as Any | undefined;\n\t\t\t\t\t\t\t\t\t\tconst mod = (found as Any)?.module as string | undefined;\n\t\t\t\t\t\t\t\t\t\tif (mod) prefetchContent({ ...inferred, module: mod });\n\t\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst w = window as Any;\n\t\t\t\t\t\t\tw.__REROUTE_DATA__ = w.__REROUTE_DATA__ || {};\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisDynamic &&\n\t\t\t\t\t\t\t\t(!inferred || !inferred.module) &&\n\t\t\t\t\t\t\t\tw.__REROUTE_DATA__[path] === undefined\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tfetch(`/__reroute_data?path=${encodeURIComponent(path)}`, {\n\t\t\t\t\t\t\t\t\theaders: { Accept: 'application/json' },\n\t\t\t\t\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.then((r) => (r.ok ? r.json() : null))\n\t\t\t\t\t\t\t\t\t.then((j) => {\n\t\t\t\t\t\t\t\t\t\tif (!j) return;\n\t\t\t\t\t\t\t\t\t\tw.__REROUTE_DATA__[path] = j.data ?? j;\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tw.dispatchEvent(\n\t\t\t\t\t\t\t\t\t\t\t\tnew CustomEvent('__reroute_data__', {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdetail: { key: path },\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.catch(() => {});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t\tif (onMouseEnter) onMouseEnter(e);\n\t\t},\n\t\t[\n\t\t\tprefetch,\n\t\t\tinferred,\n\t\t\tonMouseEnter,\n\t\t\tto,\n\t\t\tcontentIndex,\n\t\t\tensureCollection,\n\t\t\tmatchRoute,\n\t\t],\n\t);\n\n\tconst handleFocus = useCallback<\n\t\tNonNullable<React.AnchorHTMLAttributes<HTMLAnchorElement>['onFocus']>\n\t>(\n\t\t(e: Any) => {\n\t\t\tif (prefetch && inferred && inferred.module) prefetchContent(inferred);\n\t\t\telse if (prefetch) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\t\t\tconst url = new URL(String(to), window.location.origin);\n\t\t\t\t\t\tif (url.origin === window.location.origin) {\n\t\t\t\t\t\t\tconst path = url.pathname;\n\t\t\t\t\t\t\tconst isDynamic = !!matchRoute?.(path)?.route?.isDynamic;\n\t\t\t\t\t\t\tconst known2 = !!(\n\t\t\t\t\t\t\t\tcontentIndex &&\n\t\t\t\t\t\t\t\tinferred &&\n\t\t\t\t\t\t\t\tinferred.collection in (contentIndex as Any)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (inferred && !inferred.module && ensureCollection && known2) {\n\t\t\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tconst items: Any[] | undefined = (await ensureCollection(\n\t\t\t\t\t\t\t\t\t\t\tinferred.collection,\n\t\t\t\t\t\t\t\t\t\t)) as Any[] | undefined;\n\t\t\t\t\t\t\t\t\t\tconst found = (items || []).find(\n\t\t\t\t\t\t\t\t\t\t\t(item: Any) => item?.name === inferred.name,\n\t\t\t\t\t\t\t\t\t\t) as Any | undefined;\n\t\t\t\t\t\t\t\t\t\tconst mod = (found as Any)?.module as string | undefined;\n\t\t\t\t\t\t\t\t\t\tif (mod) prefetchContent({ ...inferred, module: mod });\n\t\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst w = window as Any;\n\t\t\t\t\t\t\tw.__REROUTE_DATA__ = w.__REROUTE_DATA__ || {};\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisDynamic &&\n\t\t\t\t\t\t\t\t(!inferred || !inferred.module) &&\n\t\t\t\t\t\t\t\tw.__REROUTE_DATA__[path] === undefined\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tfetch(`/__reroute_data?path=${encodeURIComponent(path)}`, {\n\t\t\t\t\t\t\t\t\theaders: { Accept: 'application/json' },\n\t\t\t\t\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.then((r) => (r.ok ? r.json() : null))\n\t\t\t\t\t\t\t\t\t.then((j) => {\n\t\t\t\t\t\t\t\t\t\tif (!j) return;\n\t\t\t\t\t\t\t\t\t\tw.__REROUTE_DATA__[path] = j.data ?? j;\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tw.dispatchEvent(\n\t\t\t\t\t\t\t\t\t\t\t\tnew CustomEvent('__reroute_data__', {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdetail: { key: path },\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.catch(() => {});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t\tif (onFocus) onFocus(e);\n\t\t},\n\t\t[\n\t\t\tprefetch,\n\t\t\tinferred,\n\t\t\tonFocus,\n\t\t\tto,\n\t\t\tcontentIndex,\n\t\t\tensureCollection,\n\t\t\tmatchRoute,\n\t\t],\n\t);\n\n\t// Build href with fragment if provided\n\tconst href = fragment ? `${to}#${fragment}` : to;\n\n\treturn (\n\t\t<a\n\t\t\thref={href}\n\t\t\tonClick={handleClick}\n\t\t\tonMouseEnter={handleMouseEnter}\n\t\t\tonFocus={handleFocus}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Link };\n",
|
|
20
|
+
"/**\n * Markdown component with optional Shiki syntax highlighting\n *\n * Requires: react-markdown\n * Optional: @shikijs/rehype (SSR/compile-time) or shiki (client-only)\n */\n\nimport type { ReactNode } from 'react';\n// Note: Avoid hooks so this component remains safe to use from\n// content chunks that are bundled separately without duplicating React.\nimport type { Components } from 'react-markdown';\nimport ReactMarkdownLib from 'react-markdown';\n\nexport interface MarkdownProps {\n\t/**\n\t * Markdown content to render\n\t */\n\tchildren: string;\n\n\t/**\n\t * Additional CSS class name\n\t */\n\tclassName?: string;\n\n\t/**\n\t * Enable GitHub Flavored Markdown (requires remark-gfm)\n\t * @default true if remark-gfm is installed\n\t */\n\tgfm?: boolean;\n\n\t/**\n\t * Enable syntax highlighting. For programmatic Markdown (TSX routes),\n\t * highlighting is applied client-side using Shiki to avoid SSR mismatch.\n\t * For content-generated MD/MDX, highlighting can also be compiled in.\n\t * @default false\n\t */\n\thighlight?: boolean;\n\n\t/**\n\t * Shiki theme to use for syntax highlighting\n\t * @default 'github-dark'\n\t */\n\ttheme?: string;\n\n\t/**\n\t * Skip HTML in markdown completely\n\t * @default false\n\t */\n\tskipHtml?: boolean;\n\n\t/**\n\t * Custom components to override default HTML elements\n\t */\n\tcomponents?: Components;\n\n\t/**\n\t * Additional remark plugins\n\t */\n\t// biome-ignore lint/suspicious/noExplicitAny: flexible plugin types\n\tremarkPlugins?: any[];\n\n\t/**\n\t * Additional rehype plugins\n\t */\n\t// biome-ignore lint/suspicious/noExplicitAny: flexible plugin types\n\trehypePlugins?: any[];\n}\n\n/**\n * Markdown component for rendering markdown content with optional syntax highlighting\n *\n * @example\n * ```tsx\n * import { Markdown } from 'reroute-js/react';\n *\n * <Markdown>\n * # Hello World\n * This is **bold** and this is *italic*.\n * </Markdown>\n * ```\n *\n * @example With code blocks\n * ```tsx\n * <Markdown highlight theme=\"github-dark\">\n * {`\n * # Code Example\n * \\`\\`\\`typescript\n * const greeting = \"Hello, World!\";\n * console.log(greeting);\n * \\`\\`\\`\n * `}\n * </Markdown>\n * ```\n */\nexport function Markdown({\n\tchildren,\n\tclassName,\n\tskipHtml = false,\n\tcomponents,\n\tremarkPlugins = [],\n\trehypePlugins = [],\n}: MarkdownProps): ReactNode {\n\t// Build plugins arrays\n\tconst finalRemarkPlugins = [...remarkPlugins];\n\tconst finalRehypePlugins = [...rehypePlugins];\n\n\t// Note: Optional plugins (remark-gfm, @shikijs/rehype) should be passed\n\t// via remarkPlugins/rehypePlugins props if needed, or the generated\n\t// markdown routes will handle them\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t<ReactMarkdownLib\n\t\t\t\tremarkPlugins={finalRemarkPlugins}\n\t\t\t\trehypePlugins={finalRehypePlugins}\n\t\t\t\tskipHtml={skipHtml}\n\t\t\t\tcomponents={components}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ReactMarkdownLib>\n\t\t</div>\n\t);\n}\n",
|
|
19
21
|
"import { useContext } from 'react';\nimport { OutletContext } from '../providers';\n\n/**\n * Outlet component for rendering nested routes within layouts.\n * Must be used within a layout component that's rendered by RouterProvider.\n */\nfunction Outlet() {\n\tconst outletContent = useContext(OutletContext);\n\treturn <>{outletContent}</>;\n}\n\nexport { Outlet };\n"
|
|
20
22
|
],
|
|
21
|
-
"mappings": "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",
|
|
22
|
-
"debugId": "
|
|
23
|
+
"mappings": "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",
|
|
24
|
+
"debugId": "CB077059E687760364756E2164756E21",
|
|
23
25
|
"names": []
|
|
24
26
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* reroute-js v0.6.0
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright 2025 stewones <hi@stewan.io>
|
|
6
|
+
* @see https://github.com/stewones/reroute
|
|
7
|
+
*
|
|
8
|
+
* Built with Bun <3
|
|
9
|
+
*/
|
|
10
|
+
import type { ReactNode } from 'react';
|
|
11
|
+
interface ClientOnlyProps {
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
fallback?: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* ClientOnly component that only renders its children on the client-side.
|
|
17
|
+
* Useful for components that cause hydration mismatches due to:
|
|
18
|
+
* - Using Date.now(), Math.random(), or other dynamic values
|
|
19
|
+
* - Browser-specific APIs (localStorage, window, etc.)
|
|
20
|
+
* - Time-sensitive data that changes between server and client render
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* <ClientOnly fallback={<div>Loading...</div>}>
|
|
25
|
+
* <CountdownTimer />
|
|
26
|
+
* </ClientOnly>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
declare function ClientOnly({ children, fallback }: ClientOnlyProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export { ClientOnly };
|
|
31
|
+
//# sourceMappingURL=ClientOnly.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientOnly.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/components/ClientOnly.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,UAAU,eAAe;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,iBAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAe,EAAE,EAAE,eAAe,2CAYjE;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentRoute.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/components/ContentRoute.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ContentRoute.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/components/ContentRoute.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGxC,KAAK,eAAe,GAAG,CACtB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,KACR;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,SAAS,CAAC;AAQlE,iBAAS,YAAY,CAAC,EACrB,UAAU,EACV,IAAI,EACJ,QAAQ,GACR,EAAE;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC3B,2CAyKA;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/components/Link.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/components/Link.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;GAGG;AACH,iBAAS,IAAI,CAAC,EACb,EAAE,EACF,OAAO,EACP,KAAK,EACL,QAAe,EACf,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,OAAO,EACP,GAAG,KAAK,EACR,EAAE,SAAS,2CA+QX;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* reroute-js v0.6.0
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright 2025 stewones <hi@stewan.io>
|
|
6
|
+
* @see https://github.com/stewones/reroute
|
|
7
|
+
*
|
|
8
|
+
* Built with Bun <3
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Markdown component with optional Shiki syntax highlighting
|
|
12
|
+
*
|
|
13
|
+
* Requires: react-markdown
|
|
14
|
+
* Optional: @shikijs/rehype (SSR/compile-time) or shiki (client-only)
|
|
15
|
+
*/
|
|
16
|
+
import type { ReactNode } from 'react';
|
|
17
|
+
import type { Components } from 'react-markdown';
|
|
18
|
+
export interface MarkdownProps {
|
|
19
|
+
/**
|
|
20
|
+
* Markdown content to render
|
|
21
|
+
*/
|
|
22
|
+
children: string;
|
|
23
|
+
/**
|
|
24
|
+
* Additional CSS class name
|
|
25
|
+
*/
|
|
26
|
+
className?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Enable GitHub Flavored Markdown (requires remark-gfm)
|
|
29
|
+
* @default true if remark-gfm is installed
|
|
30
|
+
*/
|
|
31
|
+
gfm?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Enable syntax highlighting. For programmatic Markdown (TSX routes),
|
|
34
|
+
* highlighting is applied client-side using Shiki to avoid SSR mismatch.
|
|
35
|
+
* For content-generated MD/MDX, highlighting can also be compiled in.
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
highlight?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Shiki theme to use for syntax highlighting
|
|
41
|
+
* @default 'github-dark'
|
|
42
|
+
*/
|
|
43
|
+
theme?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Skip HTML in markdown completely
|
|
46
|
+
* @default false
|
|
47
|
+
*/
|
|
48
|
+
skipHtml?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Custom components to override default HTML elements
|
|
51
|
+
*/
|
|
52
|
+
components?: Components;
|
|
53
|
+
/**
|
|
54
|
+
* Additional remark plugins
|
|
55
|
+
*/
|
|
56
|
+
remarkPlugins?: any[];
|
|
57
|
+
/**
|
|
58
|
+
* Additional rehype plugins
|
|
59
|
+
*/
|
|
60
|
+
rehypePlugins?: any[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Markdown component for rendering markdown content with optional syntax highlighting
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```tsx
|
|
67
|
+
* import { Markdown } from 'reroute-js/react';
|
|
68
|
+
*
|
|
69
|
+
* <Markdown>
|
|
70
|
+
* # Hello World
|
|
71
|
+
* This is **bold** and this is *italic*.
|
|
72
|
+
* </Markdown>
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @example With code blocks
|
|
76
|
+
* ```tsx
|
|
77
|
+
* <Markdown highlight theme="github-dark">
|
|
78
|
+
* {`
|
|
79
|
+
* # Code Example
|
|
80
|
+
* \`\`\`typescript
|
|
81
|
+
* const greeting = "Hello, World!";
|
|
82
|
+
* console.log(greeting);
|
|
83
|
+
* \`\`\`
|
|
84
|
+
* `}
|
|
85
|
+
* </Markdown>
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export declare function Markdown({ children, className, skipHtml, components, remarkPlugins, rehypePlugins, }: MarkdownProps): ReactNode;
|
|
89
|
+
//# sourceMappingURL=Markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/components/Markdown.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IAEH,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IAEtB;;OAEG;IAEH,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,QAAQ,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,QAAgB,EAChB,UAAU,EACV,aAAkB,EAClB,aAAkB,GAClB,EAAE,aAAa,GAAG,SAAS,CAqB3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* reroute-js v0.
|
|
2
|
+
* reroute-js v0.6.0
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright 2025 stewones <hi@stewan.io>
|
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Built with Bun <3
|
|
9
9
|
*/
|
|
10
|
+
export * from './ClientOnly';
|
|
10
11
|
export * from './ContentRoute';
|
|
11
12
|
export * from './Image';
|
|
12
13
|
export * from './Link';
|
|
14
|
+
export * from './Markdown';
|
|
13
15
|
export * from './Outlet';
|
|
14
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
package/react/src/index.d.ts
CHANGED