Widget API Reference

Complete reference for all Teryx widgets. Each is available as a named export and on the global Teryx namespace.

grid

Data grid with sorting, pagination, search, filtering, inline editing, and row selection.

grid('#el', { source: '/api/data', columns: [...], paginated: true })
OptionTypeDefaultDescription
sourcestring--API URL returning JSON
columnsGridColumn[]--Column definitions
paginatedbooleanfalseServer-side pagination
pageSizenumber25Rows per page
searchablebooleanfalseSearch toolbar
stripedbooleanfalseStriped rows
selectablebooleanfalseRow selection
editablebooleanfalseInline editing
stickyHeaderbooleanfalseFixed header
exportablebooleanfalseExport button

Instance: reload(), getSelected(), clearSelection(), setPage(n)

form

Form builder with 20+ field types, validation, and layouts.

form('#el', { action: '/api/submit', fields: [...], layout: 'vertical' })
OptionTypeDefaultDescription
actionstring--Submission URL
fieldsFormField[]--Field definitions
layout'vertical' | 'horizontal' | 'inline''vertical'Layout
submitLabelstring'Submit'Button text
liveValidationbooleanfalseValidate on change

Field types: text, email, password, number, tel, url, textarea, select, multiselect, checkbox, radio, switch, date, time, datetime, file, color, range, combobox, tag, richtext, code, display

Instance: reset(), validate(), getData(), setData(), submit(), isValid()

Dialog with dragging, resizing, and dynamic content.

const m = modal({ title: 'Edit', content: '...', size: 'md' }); m.open();
OptionTypeDefaultDescription
titlestring--Title
contentstring--HTML content
size'sm' | 'md' | 'lg' | 'xl' | 'full''md'Size
draggablebooleanfalseDragging
resizablebooleanfalseResizing
buttonsModalButton[]--Footer buttons

Instance: open(), close(), isOpen(), setContent(), setTitle(), maximize()

tabs

Tab panel with multiple variants.

OptionTypeDefaultDescription
itemsTabItem[]--Tab definitions
variant'tabs' | 'pills' | 'underline' | 'card''tabs'Style
verticalbooleanfalseVertical
scrollablebooleanfalseScrollable strip

Instance: activate(id), activeTab(), addTab(), removeTab()

accordion

Collapsible panels.

OptionTypeDefaultDescription
itemsAccordionItem[]--Panel definitions
multiplebooleanfalseMultiple open
animatedbooleantrueAnimate

Instance: toggle(id), open(id), close(id), openAll(), closeAll()

toast

Notification toasts.

toast.success('Saved'); toast.danger('Error');
OptionTypeDefaultDescription
messagestring--Text
type'info' | 'success' | 'warning' | 'danger''info'Severity
durationnumber5000Auto-dismiss ms
positionToastPosition'top-right'Position

tree

Hierarchical tree view.

OptionTypeDefaultDescription
nodesTreeNode[]--Tree data
sourcestring--Load from URL
selectablebooleanfalseSelection
checkablebooleanfalseCheckboxes
linesbooleanfalseConnector lines

Instance: expand(id), collapse(id), expandAll(), collapseAll(), getChecked(), getSelected()

chart

Pure SVG charts, zero dependencies.

chart('#el', { type: 'bar', height: 300, series: [...] })
OptionTypeDefaultDescription
type'bar' | 'line' | 'area' | 'pie' | 'donut' | 'scatter' | 'gauge'--Chart type
heightnumber300Height (px)
seriesSeries[]--Data series
dataDataPoint[]--Pie/donut data
legendbooleanfalseShow legend

Navigation sidebar.

OptionTypeDefaultDescription
itemsSidebarItem[]--Nav items
brandstring--Brand text
collapsiblebooleanfalseCollapse toggle
variant'light' | 'dark''light'Color

Instance: collapse(), expand(), toggle(), isCollapsed()

steps

Step indicator / wizard.

OptionTypeDefaultDescription
itemsStepItem[]--Step definitions
currentnumber0Active index
direction'horizontal' | 'vertical''horizontal'Layout

Instance: next(), prev(), goTo(n), current()

alert

Inline alert banners.

OptionTypeDefaultDescription
type'info' | 'success' | 'warning' | 'danger''info'Severity
messagestring--Text
dismissiblebooleanfalseDismiss button

progress

Progress bars.

OptionTypeDefaultDescription
valuenumber--Value (0-100)
colorstring'primary'Color
stripedbooleanfalseStriped
animatedbooleanfalseAnimate

stat

KPI / statistic display.

OptionTypeDefaultDescription
labelstring--Label
valuestring | number--Value
iconstring--Icon
colorstring--Color

rating

Star rating.

OptionTypeDefaultDescription
valuenumber0Current rating
maxnumber5Max stars
size'sm' | 'md' | 'lg''md'Size

timeline

Vertical timeline.

OptionTypeDefaultDescription
itemsTimelineItem[]--Entries
alternatebooleanfalseAlternate layout

card

Content card / panel.

OptionTypeDefaultDescription
titlestring--Title
contentstring--Body
imagestring--Image URL
collapsiblebooleanfalseCollapsible

drawer

Slide-out panel.

OptionTypeDefaultDescription
position'left' | 'right' | 'top' | 'bottom''right'Direction
sizestring'320px'Width/height

Instance: open(), close(), isOpen()

pagination

Page navigation.

OptionTypeDefaultDescription
totalnumber--Total items
currentnumber1Current page
pageSizenumber10Per page

Instance: goTo(n), current(), setTotal(n)

Image/content carousel.

OptionTypeDefaultDescription
slidesCarouselSlide[]--Slides
autoplaybooleanfalseAuto-advance
intervalnumber5000Interval (ms)

Instance: next(), prev(), goTo(i), pause(), play()

calendar

Calendar with month/week/day views.

OptionTypeDefaultDescription
eventsCalendarEvent[]--Events
view'month' | 'week' | 'day''month'Default view

colorPicker

Color picker with presets.

OptionTypeDefaultDescription
valuestring'#000000'Initial color
format'hex' | 'rgb' | 'hsl''hex'Format

segmented

Segmented button group.

OptionTypeDefaultDescription
itemsSegmentedItem[]--Segments
valuestring--Selected
size'sm' | 'md' | 'lg''md'Size

splitter

Resizable split panels.

OptionTypeDefaultDescription
orientation'horizontal' | 'vertical''horizontal'Direction
sizesnumber[][50, 50]Panel sizes (%)

fileupload

File upload with drag-and-drop.

OptionTypeDefaultDescription
actionstring--Upload URL
multiplebooleanfalseMultiple files
dragDropbooleantrueDrag-and-drop

Dropdown and right-click menus.

OptionTypeDefaultDescription
itemsMenuItem[]--Menu items
triggerstring | HTMLElement--Trigger element

Top navigation bar.

OptionTypeDefaultDescription
brandstring--Brand text
itemsNavItem[]--Nav items
variant'light' | 'dark' | 'primary''light'Color

messageBox

Alert / confirm dialog.

OptionTypeDefaultDescription
messagestring--Message
type'info' | 'warning' | 'error' | 'question' | 'success''info'Type

descriptions / propertyGrid

Key-value display.

OptionTypeDefaultDescription
itemsDescriptionItem[]--Label-value pairs
columnsnumber3Columns

datalist

Templated data list.

OptionTypeDefaultDescription
sourcestring--Data URL
itemTemplatestring--Template
layout'list' | 'grid''list'Layout

Exporters

Export data in CSV, Excel, JSON, or HTML format.

import { exportCSV, exportExcel, exportJSON, exportHTML } from 'teryx';
exportCSV(data, columns, 'export.csv');