Portal Community

The Core Distinction: Definition vs. Placement

App Studio separates what a widget is from how it is used:

ConceptDescriptionAnalogy
Widget DefinitionThe reusable template: type identifier, config schema, default config values, and the render function (React component). Registered globally — not tied to any specific app.A class definition
Widget PlacementAn instance of a Widget Definition placed inside a Pane in a specific app. Has app-specific config overrides, layout position, actions, and visibility rules.An instance of the class
Why This Matters

When you drag a "DataGrid" from the widget palette, you are creating a Widget Placement — an instance of the DataGrid Widget Definition. Multiple placements of the same definition can exist in the same app or across different apps, each with different config values.

Widget Catalog

WidgetType IDCategoryKey Capability
Data GridDataGridData DisplaySortable, filterable, paginated tabular data
ChartChartData DisplayBar, Line, Pie — from AIExtension.Service data
MetricMetricData DisplayKPI number card with trend indicator
TimelineTimelineData DisplayChronological event stream
CalendarCalendarData DisplayMonthly/weekly event calendar
MapMapData DisplayInteractive map with data-driven markers
FormFormInputEmbeds an Atlas Form by formId
ButtonButtonInputAction trigger — primary, secondary, danger variants
Text InputTextInputInputSingle-line text entry, sets app variable
DropdownDropdownInputSelect from list, sets app variable
ToggleToggleInputBoolean toggle, sets app variable
TextTextContentRich text / markdown with token support
ImageImageContentStatic or dynamic image, optional onClick
ContainerContainerLayoutInvisible grouping wrapper with layout
TabsTabsLayoutTabbed panel switching between child panes
AccordionAccordionLayoutCollapsible sections

Configuration Cascade (Preview)

Widget configuration follows a three-level cascade — deeper levels override shallower ones:

Widget Definition default config
  ↓ overridden by
App-level widget override (via Widget Registry admin)
  ↓ overridden by
Pane-level placement config (what you set in the Properties Editor)

See the Configuration Cascade page for full details.