// gitxt — teletext for git. Pages addressed by 3-digit numbers; navigate by
// typing digits or clicking the coloured FASTEXT bar. Authentic teletext look.
const { useState, useEffect, useRef } = React;
// colour helpers (teletext palette)
const C = ({ children }) => {children}; // cyan
const Y = ({ children }) => {children}; // yellow
const G = ({ children }) => {children}; // green
const R = ({ children }) => {children}; // red
const M = ({ children }) => {children}; // magenta
const W = ({ children }) => {children}; // white
const Row = ({ children, center }) => (
{children || '\u00A0'}
);
// double-height title block
const Title = ({ color = '#3fe0e0', children }) => (
{children}
);
const Link = ({ n, go, children }) => (
go(n)}>{n}{children}
);
const PAGES = {
100: { fast: [200, 300, 400, 100], render: (go) => (<>
gitxtteletext for git · kBenestad━━━━━━━━━━━━━━ index ━━━━━━━━━━━━━━repositoriesrecent commitsopen issuesbuild statushelp & navigationtype a page number, or use thecoloured buttons below.
>) },
200: { fast: [210, 220, 300, 100], render: (go) => (<>
repositoriespage 200 · 8 repos trackedkbpkg v2.4.0gitxt v0.3.0mdcms v0.6.1capcms v0.2.0invoice v1.1.0timesheet v1.0.0select a repo for detail.
>) },
210: { fast: [300, 400, 200, 100], render: (go) => (<>
kbpkgrepo 210 · v2.4.0 · maingit-based package managerbranch main ↑0 ↓0commits 1,284open 3 issuesbuild ● passinglast:fix: resolve nested depsby karl · 1 day ago
>) },
300: { fast: [310, 200, 400, 100], render: (go) => (<>
recent commitspage 300 · all reposa3f1fix: resolve nested depskbpkg · 1d9c02feat: number navigationgitxt · 2d1e7dchore: bump cms/mdmdcms · 4db840fix: locale roundinginvoice · 5d
>) },
400: { fast: [200, 300, 500, 100], render: (go) => (<>
open issuespage 400 · 6 open#42resolve circular dep graphkbpkg · high#38page 9xx reserved rangegitxt · low#31fr-NO plural formsmdcms · medium
>) },
500: { fast: [200, 300, 400, 100], render: (go) => (<>
build statuspage 500 · last 24h● passing kbpkg● passing gitxt● passing invoice● pending mdcms● failing capcmscapcms: test timeout incase-export suite.
>) },
888: { fast: [100, 200, 300, 100], render: (go) => (<>
helppage 888type any 3-digit page numberto jump straight to it.100index200repositories300commitscoloured buttons jump to thefour pages shown at the foot.
>) },
};
// alias detail pages
[220, 230, 240, 250, 260, 310].forEach(n => { if (!PAGES[n]) PAGES[n] = PAGES[210]; });
Object.assign(window, { PAGES, C, Y, G, R, M, W, Row, Title });