AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
A @uirouter implementation for Lit
Translation pending
Developer toolsTypeScript · JavaScriptGitHub @simshanithOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
ui-router ported to lit
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗| Badge | Meaning |
|---|---|
The npm release matches main | |
Unreleased ship-affecting changes on main |
The workers-builds badge at the top is the same kind of signal for the deploy pipeline that ships
lit-ui-router.dev — see
CD-pipeline verification signal for what it diffs and
what each color means.
lit-ui-router is a client-side Single Page Application routing framework for Lit.
Routing frameworks for SPAs update the browser's URL as the user navigates through the app. Conversely, this allows changes to the browser's URL to drive navigation through the app, thus allowing the user to create a bookmark to a location deep within the SPA.
UI-Router applications are modeled as a hierarchical tree of states. UI-Router provides a state machine to manage the transitions between those application states in a transaction-like manner.
uiSref and uiSrefActive for declarative navigation, with aria-current on active links out of the boxsrefHref, srefActiveClass and srefAriaCurrent bind the same links from inside the attribute, so the href is real markup a static analyser or server renderer can read — see the API overviewThe UI-Router package is distributed using npm, the node package manager.
npm install lit-ui-router lit @uirouter/core
Import UIRouterLit into your project, register some states, and you're good to go!
import { render, html } from 'lit';
import { hashLocationPlugin } from '@uirouter/core';
import { UIRouterLit, LitStateDeclaration } from 'lit-ui-router';
const router = new UIRouterLit();
router.plugin(hashLocationPlugin);
// Simple routes using template functions - no LitElement classes needed!
const states: LitStateDeclaration[] = [
{ name: 'home', url: '/home', component: () => html`<h1>Home</h1>` },
{ name: 'about', url: '/about', component: () => html`<h1>About</h1>` },
];
states.forEach((state) => router.stateRegistry.register(state));
router.start();
render(
html`<ui-router .uiRouter=${router}>
<ui-view></ui-view>
</ui-router>`,
document.getElementById('root')!,
);
lit-ui-router supports multiple ways to define route components:
| Style | Best For | Example |
|---|---|---|
| Template function | Simple views, prototyping | () => html`...` |
| Template with props | Views needing params/resolves | (props) => html`...` |
| LitElement class | Complex views with lifecycle | MyComponent |
{
name: 'user',
url: '/user/:id',
component: (props) => html`<h1>User ${props?.transition?.params().id}</h1>`
}
For complex components with lifecycle, state, and styles:
{ name: 'dashboard', url: '/dashboard', component: DashboardElement }