// AUTO-GENERATED by `wrnexus dev` - do not edit. // Typed routes support required, optional, and catch-all parameters. export interface Routes { "/": Record; "/accessibility": Record; "/advanced-forms": Record; "/base": Record; "/block-library": Record; "/blocks": Record; "/blocks/announcement-bar": Record; "/blocks/ctasection": Record; "/blocks/feature-card": Record; "/blocks/feature-grid": Record; "/blocks/feature-icon-card": Record; "/blocks/footer": Record; "/blocks/hero": Record; "/blocks/hero-actions": Record; "/blocks/marketing-section-header": Record; "/blocks/metric-grid": Record; "/blocks/page-header": Record; "/blocks/section-header": Record; "/blocks/split-hero": Record; "/blocks/stats-bar": Record; "/colors": Record; "/components/accordion": Record; "/components/advanced-select": Record; "/components/alert": Record; "/components/avatar": Record; "/components/avatar-group": Record; "/components/back-to-top": Record; "/components/badge": Record; "/components/blockquote": Record; "/components/breadcrumb": Record; "/components/button": Record; "/components/button-group": Record; "/components/card": Record; "/components/carousel": Record; "/components/chart": Record; "/components/chat-bubble": Record; "/components/checkbox": Record; "/components/clipboard": Record; "/components/collapse": Record; "/components/color-picker": Record; "/components/columns": Record; "/components/combo-box": Record; "/components/confetti": Record; "/components/container": Record; "/components/context-menu": Record; "/components/custom-scrollbar": Record; "/components/data-map": Record; "/components/data-table": Record; "/components/date-picker": Record; "/components/device-frame": Record; "/components/divider": Record; "/components/drag-and-drop": Record; "/components/drawer": Record; "/components/drawflow-canvas": Record; "/components/dropdown": Record; "/components/file-input": Record; "/components/file-upload-progress": Record; "/components/flow-canvas": Record; "/components/grid": Record; "/components/image": Record; "/components/input": Record; "/components/input-group": Record; "/components/input-number": Record; "/components/kbd": Record; "/components/layout-splitter": Record; "/components/legend-indicator": Record; "/components/link": Record; "/components/list": Record; "/components/list-group": Record; "/components/map": Record; "/components/marquee": Record; "/components/mega-menu": Record; "/components/metric-card": Record; "/components/modal": Record; "/components/nav": Record; "/components/navbar": Record; "/components/pagination": Record; "/components/pin-input": Record; "/components/popover": Record; "/components/preference-switcher": Record; "/components/progress": Record; "/components/radio": Record; "/components/range-slider": Record; "/components/rating": Record; "/components/scrollspy": Record; "/components/search-box": Record; "/components/section": Record; "/components/select": Record; "/components/sidebar": Record; "/components/skeleton": Record; "/components/spinner": Record; "/components/stepper": Record; "/components/strong-password": Record; "/components/styled-icon": Record; "/components/switch": Record; "/components/tabs": Record; "/components/text-link": Record; "/components/textarea": Record; "/components/time-picker": Record; "/components/timeline": Record; "/components/toaster": Record; "/components/toggle-count": Record; "/components/toggle-password": Record; "/components/tooltip": Record; "/components/tree-view": Record; "/components/typography": Record; "/components/wysiwyg-editor": Record; "/core": Record; "/dark-mode": Record; "/data": Record; "/docs": Record; "/fonts": Record; "/forms": Record; "/framework-guides": Record; "/installation": Record; "/integrations": Record; "/layout": Record; "/marketing": Record; "/navigation": Record; "/overlays": Record; "/preview": Record; "/preview/custom-modal": Record; "/preview/profile": Record; "/preview/project-board": Record; "/preview/scheduling": Record; "/preview/sign-in": Record; "/preview/workspace": Record; "/resources": Record; "/sizing": Record; "/tables": Record; "/templates": Record; "/templates/commerce": Record; "/templates/dashboards": Record; "/templates/marketing": Record; "/templates/productivity": Record; "/themes": Record; "/v06-functions": Record; "/v06-imports": Record; "/v06-migration": Record; "/v06-outputs": Record; "/v06-runtime": Record; "/v06-state": Record; "/v06-stores": Record; "/v06-types": Record; } export interface RouteNames { "index": "/"; "accessibility": "/accessibility"; "advanced.forms": "/advanced-forms"; "base": "/base"; "block.library": "/block-library"; "blocks": "/blocks"; "blocks.announcement.bar": "/blocks/announcement-bar"; "blocks.ctasection": "/blocks/ctasection"; "blocks.feature.card": "/blocks/feature-card"; "blocks.feature.grid": "/blocks/feature-grid"; "blocks.feature.icon.card": "/blocks/feature-icon-card"; "blocks.footer": "/blocks/footer"; "blocks.hero": "/blocks/hero"; "blocks.hero.actions": "/blocks/hero-actions"; "blocks.marketing.section.header": "/blocks/marketing-section-header"; "blocks.metric.grid": "/blocks/metric-grid"; "blocks.page.header": "/blocks/page-header"; "blocks.section.header": "/blocks/section-header"; "blocks.split.hero": "/blocks/split-hero"; "blocks.stats.bar": "/blocks/stats-bar"; "colors": "/colors"; "components.accordion": "/components/accordion"; "components.advanced.select": "/components/advanced-select"; "components.alert": "/components/alert"; "components.avatar": "/components/avatar"; "components.avatar.group": "/components/avatar-group"; "components.back.to.top": "/components/back-to-top"; "components.badge": "/components/badge"; "components.blockquote": "/components/blockquote"; "components.breadcrumb": "/components/breadcrumb"; "components.button": "/components/button"; "components.button.group": "/components/button-group"; "components.card": "/components/card"; "components.carousel": "/components/carousel"; "components.chart": "/components/chart"; "components.chat.bubble": "/components/chat-bubble"; "components.checkbox": "/components/checkbox"; "components.clipboard": "/components/clipboard"; "components.collapse": "/components/collapse"; "components.color.picker": "/components/color-picker"; "components.columns": "/components/columns"; "components.combo.box": "/components/combo-box"; "components.confetti": "/components/confetti"; "components.container": "/components/container"; "components.context.menu": "/components/context-menu"; "components.custom.scrollbar": "/components/custom-scrollbar"; "components.data.map": "/components/data-map"; "components.data.table": "/components/data-table"; "components.date.picker": "/components/date-picker"; "components.device.frame": "/components/device-frame"; "components.divider": "/components/divider"; "components.drag.and.drop": "/components/drag-and-drop"; "components.drawer": "/components/drawer"; "components.drawflow.canvas": "/components/drawflow-canvas"; "components.dropdown": "/components/dropdown"; "components.file.input": "/components/file-input"; "components.file.upload.progress": "/components/file-upload-progress"; "components.flow.canvas": "/components/flow-canvas"; "components.grid": "/components/grid"; "components.image": "/components/image"; "components.input": "/components/input"; "components.input.group": "/components/input-group"; "components.input.number": "/components/input-number"; "components.kbd": "/components/kbd"; "components.layout.splitter": "/components/layout-splitter"; "components.legend.indicator": "/components/legend-indicator"; "components.link": "/components/link"; "components.list": "/components/list"; "components.list.group": "/components/list-group"; "components.map": "/components/map"; "components.marquee": "/components/marquee"; "components.mega.menu": "/components/mega-menu"; "components.metric.card": "/components/metric-card"; "components.modal": "/components/modal"; "components.nav": "/components/nav"; "components.navbar": "/components/navbar"; "components.pagination": "/components/pagination"; "components.pin.input": "/components/pin-input"; "components.popover": "/components/popover"; "components.preference.switcher": "/components/preference-switcher"; "components.progress": "/components/progress"; "components.radio": "/components/radio"; "components.range.slider": "/components/range-slider"; "components.rating": "/components/rating"; "components.scrollspy": "/components/scrollspy"; "components.search.box": "/components/search-box"; "components.section": "/components/section"; "components.select": "/components/select"; "components.sidebar": "/components/sidebar"; "components.skeleton": "/components/skeleton"; "components.spinner": "/components/spinner"; "components.stepper": "/components/stepper"; "components.strong.password": "/components/strong-password"; "components.styled.icon": "/components/styled-icon"; "components.switch": "/components/switch"; "components.tabs": "/components/tabs"; "components.text.link": "/components/text-link"; "components.textarea": "/components/textarea"; "components.time.picker": "/components/time-picker"; "components.timeline": "/components/timeline"; "components.toaster": "/components/toaster"; "components.toggle.count": "/components/toggle-count"; "components.toggle.password": "/components/toggle-password"; "components.tooltip": "/components/tooltip"; "components.tree.view": "/components/tree-view"; "components.typography": "/components/typography"; "components.wysiwyg.editor": "/components/wysiwyg-editor"; "core": "/core"; "dark.mode": "/dark-mode"; "data": "/data"; "docs": "/docs"; "fonts": "/fonts"; "forms": "/forms"; "framework.guides": "/framework-guides"; "installation": "/installation"; "integrations": "/integrations"; "layout": "/layout"; "marketing": "/marketing"; "navigation": "/navigation"; "overlays": "/overlays"; "preview": "/preview"; "preview.custom.modal": "/preview/custom-modal"; "preview.profile": "/preview/profile"; "preview.project.board": "/preview/project-board"; "preview.scheduling": "/preview/scheduling"; "preview.sign.in": "/preview/sign-in"; "preview.workspace": "/preview/workspace"; "resources": "/resources"; "sizing": "/sizing"; "tables": "/tables"; "templates": "/templates"; "templates.commerce": "/templates/commerce"; "templates.dashboards": "/templates/dashboards"; "templates.marketing": "/templates/marketing"; "templates.productivity": "/templates/productivity"; "themes": "/themes"; "v06.functions": "/v06-functions"; "v06.imports": "/v06-imports"; "v06.migration": "/v06-migration"; "v06.outputs": "/v06-outputs"; "v06.runtime": "/v06-runtime"; "v06.state": "/v06-state"; "v06.stores": "/v06-stores"; "v06.types": "/v06-types"; } export interface RouteQueries { [path: string]: Record; } export type RoutePath = keyof Routes; export type RouteName = keyof RouteNames; export type RouteQuery

= P extends keyof RouteQueries ? RouteQueries[P] : Record; type RouteValue = string | readonly string[] | undefined; function encodeRouteValue(value: RouteValue, catchAll: boolean): string { if (value === undefined) return ""; const values = Array.isArray(value) ? value : catchAll ? String(value).split("/") : [String(value)]; return values.map((part) => encodeURIComponent(part)).join("/"); } function buildHref(path: string, params: Record = {}): string { const output: string[] = []; for (const segment of path.split("/").filter(Boolean)) { let name: string | undefined; let optional = false; let catchAll = false; if (segment.startsWith("[[") && segment.endsWith("]]")) { optional = true; name = segment.slice(2, -2); } else if (segment.startsWith("[") && segment.endsWith("]")) { name = segment.slice(1, -1); if (name.endsWith("?")) { optional = true; name = name.slice(0, -1); } } if (!name) { output.push(segment); continue; } if (name.startsWith("...")) { catchAll = true; name = name.slice(3); } const value = params[name]; if (value === undefined && optional) continue; if (value === undefined) throw new Error(`WRN-ROUTE-MISSING-PARAM: Missing route parameter '${name}'.`); output.push(encodeRouteValue(value, catchAll)); } return "/" + output.filter(Boolean).join("/"); } export function href

( path: P, ...args: keyof Routes[P] extends never ? [] : Record extends Routes[P] ? [params?: Routes[P]] : [params: Routes[P]] ): string { const params = (args[0] ?? {}) as Record; return buildHref(String(path), params); } export function route( name: N, ...args: keyof Routes[RouteNames[N]] extends never ? [params?: Routes[RouteNames[N]], query?: RouteQuery] : Record extends Routes[RouteNames[N]] ? [params?: Routes[RouteNames[N]], query?: RouteQuery] : [params: Routes[RouteNames[N]], query?: RouteQuery] ): string { const paths: Record = { "index": "/", "accessibility": "/accessibility", "advanced.forms": "/advanced-forms", "base": "/base", "block.library": "/block-library", "blocks": "/blocks", "blocks.announcement.bar": "/blocks/announcement-bar", "blocks.ctasection": "/blocks/ctasection", "blocks.feature.card": "/blocks/feature-card", "blocks.feature.grid": "/blocks/feature-grid", "blocks.feature.icon.card": "/blocks/feature-icon-card", "blocks.footer": "/blocks/footer", "blocks.hero": "/blocks/hero", "blocks.hero.actions": "/blocks/hero-actions", "blocks.marketing.section.header": "/blocks/marketing-section-header", "blocks.metric.grid": "/blocks/metric-grid", "blocks.page.header": "/blocks/page-header", "blocks.section.header": "/blocks/section-header", "blocks.split.hero": "/blocks/split-hero", "blocks.stats.bar": "/blocks/stats-bar", "colors": "/colors", "components.accordion": "/components/accordion", "components.advanced.select": "/components/advanced-select", "components.alert": "/components/alert", "components.avatar": "/components/avatar", "components.avatar.group": "/components/avatar-group", "components.back.to.top": "/components/back-to-top", "components.badge": "/components/badge", "components.blockquote": "/components/blockquote", "components.breadcrumb": "/components/breadcrumb", "components.button": "/components/button", "components.button.group": "/components/button-group", "components.card": "/components/card", "components.carousel": "/components/carousel", "components.chart": "/components/chart", "components.chat.bubble": "/components/chat-bubble", "components.checkbox": "/components/checkbox", "components.clipboard": "/components/clipboard", "components.collapse": "/components/collapse", "components.color.picker": "/components/color-picker", "components.columns": "/components/columns", "components.combo.box": "/components/combo-box", "components.confetti": "/components/confetti", "components.container": "/components/container", "components.context.menu": "/components/context-menu", "components.custom.scrollbar": "/components/custom-scrollbar", "components.data.map": "/components/data-map", "components.data.table": "/components/data-table", "components.date.picker": "/components/date-picker", "components.device.frame": "/components/device-frame", "components.divider": "/components/divider", "components.drag.and.drop": "/components/drag-and-drop", "components.drawer": "/components/drawer", "components.drawflow.canvas": "/components/drawflow-canvas", "components.dropdown": "/components/dropdown", "components.file.input": "/components/file-input", "components.file.upload.progress": "/components/file-upload-progress", "components.flow.canvas": "/components/flow-canvas", "components.grid": "/components/grid", "components.image": "/components/image", "components.input": "/components/input", "components.input.group": "/components/input-group", "components.input.number": "/components/input-number", "components.kbd": "/components/kbd", "components.layout.splitter": "/components/layout-splitter", "components.legend.indicator": "/components/legend-indicator", "components.link": "/components/link", "components.list": "/components/list", "components.list.group": "/components/list-group", "components.map": "/components/map", "components.marquee": "/components/marquee", "components.mega.menu": "/components/mega-menu", "components.metric.card": "/components/metric-card", "components.modal": "/components/modal", "components.nav": "/components/nav", "components.navbar": "/components/navbar", "components.pagination": "/components/pagination", "components.pin.input": "/components/pin-input", "components.popover": "/components/popover", "components.preference.switcher": "/components/preference-switcher", "components.progress": "/components/progress", "components.radio": "/components/radio", "components.range.slider": "/components/range-slider", "components.rating": "/components/rating", "components.scrollspy": "/components/scrollspy", "components.search.box": "/components/search-box", "components.section": "/components/section", "components.select": "/components/select", "components.sidebar": "/components/sidebar", "components.skeleton": "/components/skeleton", "components.spinner": "/components/spinner", "components.stepper": "/components/stepper", "components.strong.password": "/components/strong-password", "components.styled.icon": "/components/styled-icon", "components.switch": "/components/switch", "components.tabs": "/components/tabs", "components.text.link": "/components/text-link", "components.textarea": "/components/textarea", "components.time.picker": "/components/time-picker", "components.timeline": "/components/timeline", "components.toaster": "/components/toaster", "components.toggle.count": "/components/toggle-count", "components.toggle.password": "/components/toggle-password", "components.tooltip": "/components/tooltip", "components.tree.view": "/components/tree-view", "components.typography": "/components/typography", "components.wysiwyg.editor": "/components/wysiwyg-editor", "core": "/core", "dark.mode": "/dark-mode", "data": "/data", "docs": "/docs", "fonts": "/fonts", "forms": "/forms", "framework.guides": "/framework-guides", "installation": "/installation", "integrations": "/integrations", "layout": "/layout", "marketing": "/marketing", "navigation": "/navigation", "overlays": "/overlays", "preview": "/preview", "preview.custom.modal": "/preview/custom-modal", "preview.profile": "/preview/profile", "preview.project.board": "/preview/project-board", "preview.scheduling": "/preview/scheduling", "preview.sign.in": "/preview/sign-in", "preview.workspace": "/preview/workspace", "resources": "/resources", "sizing": "/sizing", "tables": "/tables", "templates": "/templates", "templates.commerce": "/templates/commerce", "templates.dashboards": "/templates/dashboards", "templates.marketing": "/templates/marketing", "templates.productivity": "/templates/productivity", "themes": "/themes", "v06.functions": "/v06-functions", "v06.imports": "/v06-imports", "v06.migration": "/v06-migration", "v06.outputs": "/v06-outputs", "v06.runtime": "/v06-runtime", "v06.state": "/v06-state", "v06.stores": "/v06-stores", "v06.types": "/v06-types" } as Record; const output = buildHref(paths[name], (args[0] ?? {}) as Record); const query = args[1]; if (!query) return output; const search = new URLSearchParams(); for (const [key, value] of Object.entries(query)) if (value !== undefined && value !== null) search.set(key, String(value)); const text = search.toString(); return text ? `${output}?${text}` : output; }