oracle/netsuite-suitecloud-sdkSee repository3 files

Netsuite Uif Spa Reference

Use when building, modifying, or debugging NetSuite UIF SPA components. Provides API/type lookup for `@uif-js/core` and `@uif-js/component` (constructors, methods, props, enums, hooks, and component options).

Specification
Skill ID
oracle/netsuite-suitecloud-sdk/netsuite-uif-spa-reference
Publisher
oracle
Repository
netsuite-suitecloud-sdk
Installs
0
Files
3
License
See repository
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

oracle/netsuite-suitecloud-sdk/netsuite-uif-spa-referenceInstalls these files
  • SKILL.md
  • references/component.d.ts
  • references/core.d.ts

What this skill tells the agent

NetSuite UIF Reference

Complete type definitions for @uif-js/core and @uif-js/component, the two packages that power NetSuite SPA (single-page application) user interfaces.

When to Use

  • Building or modifying a UIF SPA component (JSX files)
  • Looking up the exact API for a UIF class (Date, ArrayDataSource, Router, etc.)
  • Checking available props/methods on UIF components (DataGrid, StackPanel, Button, etc.)
  • Debugging runtime errors from UIF framework code
  • Verifying enum values (for example, Button.Hierarchy, GapSize, DataGrid.ColumnType)
  • Understanding UIF Date vs. Native Date behavior

Reference Data

The type definitions are located in the references/ subdirectory.

FilePackageContents
references/core.d.ts@uif-js/coreCore framework: Date, ArrayDataSource, Ajax, Router, useState, useEffect, Context, etc.
references/component.d.ts@uif-js/componentUI components: DataGrid, StackPanel, Button, Text, Badge, Heading, Card, ContentPanel, Modal, etc.

Lookup Instructions

To find information about a specific class or component:

  1. Search by class name: `` Search for class Date in the local references/ directory. ``
  1. Search by method name: `` Search for lastOfMonth, firstOfMonth, or addDay in references/core.d.ts. ``
  1. Search by enum: `` Search for enum GapSize, enum Hierarchy, or enum Type in references/component.d.ts. ``
  1. Read a section: Once you find the line number, open that part of the file to view the full definition.

Key Classes Quick Reference

@uif-js/core

ClassPurposeKey Members
DateUIF date wrapper.year, .month (0-indexed), .day, .firstOfMonth(), .lastOfMonth(), .addDay(), .addMonth(), .stripTime(), .toDate() (→ native), Date.now(), Date.today()
ArrayDataSourceData provider for gridsArrayDataSource<T> – constructor takes T[]
AjaxHTTP clientAjax.post(), Ajax.get(), Ajax.DataType, Ajax.ResponseType
RouterSPA routingRouter.Routes, Router.Route, Router.Hash, Router.Path
useStateState hookuseState(initialValue) → [value, setter]
useEffectEffect hookuseEffect(callback, deps)
useContextContext hookuseContext(contextName: string) – takes a string, for example, ContextType.ROUTER_LOCATION
ContextContext providerContext.Provider, Context.Consumer
ContextTypeContext type string constantsContextType.ROUTER_LOCATION, ContextType.ROUTER_NAVIGATION, ContextType.ROUTER_ROUTE, ContextType.I18N, ContextType.PREFERENCES, ContextType.FOCUS_MANAGER, ContextType.STORE – full list: 31 values; search for ContextType in core.d.ts
useCallbackMemoized callbackuseCallback(fn, deps) – prevents unnecessary re-renders
useMemoMemoized valueuseMemo(() => compute(), deps)
useRefMutable ref containeruseRef(initialValue) – .current persists across renders
Translationi18n supportTranslation.get('key') for localized strings
StoreRedux-like state containerStore.create({ reducer, initial }); factory; Store.Provider – wrap the tree in JSX; useSelector(fn) – select slice; useDispatch() – dispatch actions
ReducerCreates typed reducersReducer.create(handlers); action handler map; Reducer.combine([{path, reduce}]) – combine reducers (takes array, not plain object)
useDispatchDispatch hookvar dispatch = useDispatch(); dispatches Store actions; requires Store.Provider ancestor
useSelectorState selector hookvar value = useSelector(function(state) { return state.data; }) – selects state slice from Store
CancellationTokenSourceAsync operation cancellationnew CancellationTokenSource() → var token = source.token (pass to async fn), source.cancel() (call in useEffect cleanup)
CancellationTokenCancellation checktoken.cancelled; check before updating state in async callbacks
TreeDataSourceHierarchical grid/tree datanew TreeDataSource({ data, childAccessor: fn }); fn receives item, returns children array (or pass string property name). Use with DataGrid.ColumnType.TREE or TreeView
LazyDataSourceOn-demand data loadingnew LazyDataSource(() => fetch().then(data => new ArrayDataSource(data))) – wraps any async data load. .load() triggers load; .loaded checks status. Use with DataGrid paging for server-side pagination
ImmutableArrayImmutable array helpersImmutableArray.push(arr, item), ImmutableArray.remove(arr, item), ImmutableArray.set(arr, index, item), ImmutableArray.filter(arr, fn), ImmutableArray.EMPTY; all return new arrays
ImmutableObjectImmutable object helpersImmutableObject.set(obj, 'key', value), ImmutableObject.merge(obj, partial), ImmutableObject.remove(obj, 'key'); all return new objects
FormatServiceLocale-aware type formattingFormatService.forI18n(i18n).format(date, Format.DATE); converts UIF Date to display string. Format enum: DATE, DATE_TIME, TIME, INTEGER, FLOAT. Get i18n via useContext(ContextType.I18N)
SystemIconSystem icon constants (277)SystemIcon.ADD, SystemIcon.EDIT, SystemIcon.DELETE, SystemIcon.FILTER, SystemIcon.HOME, SystemIcon.SEARCH, SystemIcon.SETTINGS, SystemIcon.SAVE, SystemIcon.CLOSE, SystemIcon.ALERT, SystemIcon.CALENDAR, SystemIcon.DOWNLOAD_DOCUMENT, SystemIcon.UPLOAD_DOCUMENT, SystemIcon.PERSON – search for SystemIcon in core.d.ts for full catalog
RecordIconNetSuite record icons (43)RecordIcon.CUSTOMER, RecordIcon.EMPLOYEE, RecordIcon.INVOICE, RecordIcon.SALES_ORDER, RecordIcon.CONTACT, RecordIcon.ITEM, RecordIcon.CASE, RecordIcon.TASK
EventBusPub/sub event buseventBus.subscribe(sender, listener), eventBus.publish(event) – for decoupled cross-component communication without prop-drilling or shared state
KeyCodeKeyboard key constants (101)KeyCode.ENTER, KeyCode.ESCAPE, KeyCode.TAB, KeyCode.BACKSPACE, KeyCode.SPACE, KeyCode.ARROW_DOWN, KeyCode.ARROW_UP, KeyCode.F1–KeyCode.F12, KeyCode.A–KeyCode.Z, KeyCode.NUM_0–KeyCode.NUM_9

@uif-js/component

ComponentPurposeKey Props
DataGridTable/grid displaydataSource, columns, columnStretch, rootStyle, dataRowHeight, highlightRowsOnHover
StackPanelLayout containerorientation, itemGap, outerGap, alignment
ButtonClickable buttonlabel, action, enabled (not disabled – constructor-only). Enums: Button.Hierarchy: PRIMARY/SECONDARY/DANGER; Button.Type: DEFAULT/PRIMARY/PURE/EMBEDDED/GHOST/DANGER/LINK; Button.Size: SMALLER/SMALL/MEDIUM/LARGE; Button.Behavior: DEFAULT/TOGGLE
TextText displaytype (WEAK, STRONG, etc.)
BadgeStatus badgeslabel, classList (single class only!)
HeadingSection headingstype (LARGE_HEADING, MEDIUM_HEADING, etc.)
CardCard containerContent wrapper
ContentPanelContent wrapperouterGap, horizontalAlignment
ApplicationHeaderPage headertitle
ModalDialog overlaytitle, size (DEFAULT/SMALL/MEDIUM/LARGE), rootStyle, owner, content, closeButton
LoaderLoading spinnerlabel
GridPanelCSS Grid layoutcolumns, defaultColumnWidth, gap; prefer over horizontal StackPanel
ScrollPanelScrollable containerorientation – requires bounded parent height
NavigationDrawerVertical navselectedValue, items with route, icon, label
DropdownSelect inputdataSource, selectedValue, onSelectedValueChanged; do not use Select

Use this skill in a project

Open any RiverX project, search the Skills panel for oracle/netsuite-suitecloud-sdk/netsuite-uif-spa-reference, and install it in one click.

Use this skill