Skip to content

Releases: Karanjot786/TermUI

v0.1.6

15 Jun 06:46

Choose a tag to compare

72 new widgets, 35 new hooks, fixes across 14 packages, 5018 tests passing. 162 contributors shipped this release.


New packages

@termuijs/adapters connects your app to external tools: localStorage, conf, commander, chalk, execa, git, GitHub via Octokit, dotenv, keychain, zod validation, and a local RAG vector store with a built-in RAGChat widget.

@termuijs/charts ships as a standalone package. All chart widgets are re-exported and fully typed.


Widgets

New display widgets: Markdown, Code, Highlight, Typewriter, Digits, Marquee, Callout, Kbd, BigText, Hexdump, Stat, Avatar, Badge, Tag, EmptyState, Placeholder, Watermark

New layout widgets: SplitPane, Stack, Masonry, Fill, AspectRatio, Dock, Accordion, Collapsible, Carousel

New feedback widgets: ProgressCircle, ProgressString, LoadingDots, Stepper, Timer, Clock, Meter, NotificationBadge, Tooltip, ShortcutBar, TaskList, Timeline, ThinkingBlock

New chart widgets: StackedBarChart, Histogram, PieChart, BulletChart, CandlestickChart, AreaChart, ScatterPlot, RadarChart, GanttChart, BrailleCanvas

New input widgets: RangeInput, Knob, PinInput, Calendar, Form, DataGrid, Canvas, Pty


UI components

34 new components: Drawer, Wizard, RadioGroup, TreeSelect, TextArea, ButtonGroup, AppShell, FilePicker, SegmentedControl, MenuBar, MaskedInput, Disclosure, TagInput, Popover, Combobox, Listbar, Menu, Slider, Switch, DateRangePicker, Transfer, EmailInput, Checkbox, CheckboxGroup, Rating, ThemeSwitcher, SearchInput, Pages, ContentSwitcher, BasicAuthPrompt, SortPrompt, ScalePrompt, SnippetPrompt, QuizPrompt


Hooks

35 new hooks: useWorker, useEventListener, useTimeout, useInterval, useMediaQuery, useFocusWithin, useClipboard, useCountdown, useStopwatch, useThrottle, useDebounce, useMount, useLatest, useBoolean, useMap, useList, useSet, useToggle, useUpdateEffect, useUnmount, useIsMounted, useDefault, useForceUpdate, useFirstRender, useTransition, Suspense and lazy, useSubprocess, useSyncExternalStore, useDeferredValue, useId, useImperativeHandle, createPortal, useLayoutEffect, useTerminalSize, useEventCallback


Store

Middleware support, computed selectors with memoization, temporal history middleware, persist plugin, slices helper, createLogger middleware, mutate() for in-place signal mutations, store reset to initial state.


Router

Navigation guards with beforeEnter and afterEnter hooks, declarative redirect rules, query string parsing, route meta fields, param validation, useParams and useNavigate hooks, forward navigation, lazy routes.


Data

Docker monitoring, database connection pool monitoring, systemd service monitoring, useInfiniteQuery, useSSE, useWebSocket, useGpu, useBattery, useFileWatch, useTemperature, useMutation, response caching with invalidation, retry with exponential backoff.


Theming

4 new built-in themes: High Contrast, Rose Pine, Tokyo Night, Gruvbox. You now have 10 built-in themes.

New syntax: mixin support with @mixin and @include, calc() expressions, @import, size media queries, nested rules, runtime CSS variable overrides, adaptive() helper for light and dark terminals, color functions (lighten, darken, alpha).


Motion

Keyframe animations, chained and parallel sequencing, stagger helper, cubicBezier easing, repeat and yoyo modes, path animation, 2D vector helpers, interpolate and mapRange.


Core

Mouse double-click, drag synthesis, modifier keys, hit-grid dispatch. Bracketed paste. Keychord and sequence binding. OSC 8 hyperlinks. Terminal bell. setCursorShape. Clipboard read and write. screenMode for alternate, main, and inline rendering. Constraint-based layout engine with Pos and Dim algebra. Render profiling hooks. Incremental diff renderer.


Testing

New helpers: pressKey, pressKeys, getOutput, getByRole, getByLabelText, queryAllByText, queryAllByType, frameSerializer, createFixture, createVirtualClock, fireResize, snapshot diff reporter.


Dev server

ThemeWatcher reloads .tss files without restarting your app. Error overlay displays render errors in-terminal. Reload notification banner shows when hot reload fires.


Quick

Modifier-aware keybindings, tabs() and select() shorthands, stack() and spacer() layout builders, batch() re-exported from @termuijs/store.


create-termui-app

6 templates: minimal, dashboard, rest-client, forms-and-validation, ai-assistant, cli-tool. Non-interactive --yes flag skips all prompts. Component registry command lists available components.


Bug fixes

Core: render pipeline race condition, wide-char differential renderer, multi-byte UTF-8 input, ANSI escape sanitization, border offset correction, SIGINT and SIGTERM drain before exit.

Widgets: unicode-correct ProgressBar, Callout, Spinner; TextInput keyboard handling; DataGrid runtime crash; exports restored for ContextMenu, Fill, SplitPane, ThinkingBlock, Collapsible, Digits, DirectoryTree.

JSX: reconciler memory leak, Suspense fallback, portal fiber context, memo() per-fiber cache scoping.

Store: selector memoization, batch() rollback on throw, async batch support.

Data: shell injection replaced with execFile, partial line buffering in tail(), WebSocket console.warn removed.

Router: back() and forward() now apply guards and redirects correctly.

create-termui-app: path traversal prevention, Windows path validation, project name validation.


Contributors

162 contributors made commits in this release. Thank you to:

@Karanjot786 @srushti-panara @Aryan-Agarwal-creator @ionfwsrijan @ZainabTravadi @Harshithk951 @riddhima25bet10005-a11y @Rish-2006 @kajalpa302005 @Satvik-art-creator @Pranaykarvi @Nikhil-0710 @TanCodeX @jainiksha @Ishika-1110 @Komal2008 @Tejas9406 @madhuri-perumalla @OnkarJondhale @Harshit-Maurya838 @Rashi1404 @karthikj5453 @ARPANPATRA111 @nandani-singh15 @PremSahith @abhijnyan-codes @Akshita-2307 @Xenon010101 @Debangana-Dutta @KrutagyaKaneria @namrarafique93-del @Krishnavamsi-codes @Kokila-chandrakar @theblag @Krushnakant-08 @RosheshChaware @16Rohan @RitikOnWork @RangeR107 @AnantTirupati @aanyacloud @anjalikumari45 @yashrajpurohit7 @Vidulaa03 @realtushartyagi @Srushti-Thombre @Srishti-Gupta74 @mittalsonal @Shan7Usmani @SamXop123 @Nicks-19 @Lalit-mahajan-1 @harsh0028-boop @Abhik-Mudi @anchallll02 @kotebhakti30 @akshayad2006-cmd @siddiqui7864 @titax03 @Vaibhavi-1107 @Aspirant200715 @riyanshigupta890-cloud @Bhavikapatel06 @palak170306-design @Khushiii008 @KanchanWaldia @Jenisish @ayyushrk @anirudhagarwal-dev @aavishkarchaudhari @anshika1179 @Vaibhav090212 @Siddh2024 @Shivansho @Shiva210Jyoti @shineetejol9 @SatyajeetSahoo08 @saksham91108 @adityabhatkar23 @Vishvadharman @2593803287-hue @Yazhini74 @arpita-pa @VirenSumbly @rpoojaa06-git @Unnati1007 @Althafdudekula @DarkSorcerer14 @bhanu-forge @Chakshu-Bamotra-04 @ida-jemi @Jighnesh-Py13 @kunal-9090 @lakshaygujjar273-cys @mohitmeena3883 @NachiketPatil26 @paridhijain153 @PranavAgarkar07 @Rakesh-Manthri @SairajTripathy-0077 @ShubhamSawant726 @Shri-Ananth @shaktipy @saurabhhhcodes @sapronaut @sandeepsidar1210-rgb @Safiya007 @rj9884 @Pushtikansara @Pratishtha-Yadav @Prateek007380 @palxsh01 @711nishtha @Novice47 @Sneha6657 @sujeetkumar1425 @NirvanJain @Yashisinghal285 @anjali1521 @codedbydollys10 @Khushi5041 @mahakagarwal7 @nidhib08 @prernaajaypatil-oss @saam-07 @sripriya1156 @vidushi1129 @Dev-aaditya @AbhishekAwasthi47 @A-adilajaleel @thakurakanksha288 @anshull-saxena @Anunay-2712 @Anushkaaa-09 @asthasingh011 @ravichandra14 @biswa1601nk-hub @CoderPrateek971 @Dippp10-ally @DivyaShreeS09 @DivyanshSaharan @durgaprasadml @GAURI167007 @Jagnyaseni-17 @jatingow @kanan010506 @DAYHARIKA @sahare-mayur-0071 @maheshshinde9100 @manasvi-sahare @ezManish @MeghPatel-007 @nkapoor175