UI Bakery Docs
RoadmapRelease notesSign In
  • 👋Welcome to UI Bakery!
  • 🌟Overview
    • 💡Video intro
    • ✨Main features
    • 🔖Glossary
  • 🛠️Getting started
    • Create an application
    • Build UI
      • Data mocking methods
    • Link components
    • Connect a data source
    • Load data
    • Bind data to UI
    • Transform data with JavaScript
      • Data mapping & transforming
    • Change component data
    • Send a form
    • Create a filter
    • Note on debugging
    • Deploy your application & invite users
  • 📌Concepts
    • Components
      • Component basics
      • Component methods
      • Components best practices
        • Input validation
        • Linking a Table to a Form/Detail
        • Using a single Form to add and update data
        • Searching Table based on input value
        • Configuring server-side pagination
        • Managing Date object time zones
        • Role-based Menu component items
        • Field types & types recognition
          • Select/Tag field: Utilizing Tag mapper
        • Expanding component to fit screen/container
        • Controlling component's visibility
    • Custom components
      • Unrestricted custom components
    • Data sources
      • Data source environments
      • Connecting local database via ngrok
      • SSH Tunneling
    • Actions
      • Actions basics
        • Calling actions from code
      • Actions management & shortcuts
      • Actions settings
      • Actions library
      • Server actions
      • Logs and debugging
    • App & page triggers
    • UI Bakery variables
    • State variables
    • Local storage
    • Modules
    • Custom JavaScript
      • JavaScript files
    • Workspace management
      • Account & workspace
      • Seats & Shared permission groups in UI Bakery
      • Roles in UI Bakery
      • Role permissions
      • Explore the interface
      • App environments
        • Release management
      • Audit logs
      • Multi-factor authentication
    • Export & import an app
    • Mobile layout
    • Theme editor
      • Changing theme from the app
    • UI Bakery source control
      • Git controls overview
      • Migrating your app model to the latest version
  • ⚡How-tos
    • File management
      • Working with PDF files
      • CSV import & export
      • Uploading files using methods
      • Displaying files from Google Drive and Dropbox
      • Parsing and sending XML
    • Styling
      • Modifying components with CSS
    • Layout & navigation
      • Adding navigation to application
      • Reading query params from URL
      • Hiding UI Bakery loader in the Embedded mode
    • Data
      • Managing user data with the {{user.email}} variable
      • Using JS libraries
        • Internationalization (i18n) & Localization: Translating UI Bakery Apps
      • Implementing row-level security
      • Copying to clipboard
    • Custom code
      • Communicating with external sites via Iframe
      • Implementing custom app hotkeys
      • Retrying API with HTTP status code 202
  • 🔎Extras
    • UI Bakery Automations
      • Environment and release strategy
      • Git in automations
      • Using external Node libraries
    • UI Bakery Database
      • Database migration
  • 💻On-premise
    • UI Bakery on-premise
    • Install & update
      • Installing on-premise
        • Azure virtual machine
        • Azure container instance
        • AWS EC2 instance
        • Google Cloud Compute Engine VM instance
        • DigitalOcean 1-click droplet
        • Manual w/ docker compose
        • Manual w/ docker run
        • Windows installation
        • Kubernetes
          • AWS EKS with Fargate
          • Scaling and resource optimization
      • Troubleshooting installation errors
      • Updating on-premise
      • Updating license key
      • Updating environment variables
      • Recommendations
        • Architecture overview
        • UI Bakery in production
        • Resource optimization
        • Running a standalone database instance
        • Generating custom secrets
    • On-premise features
      • External analytics
      • Branding
      • Embedding
      • SCIM 2.0
      • Instance API
      • Activating features under a feature flag
    • Additional configurations
      • Health check API
      • Email configuration
      • Google Sheets connection setup
      • Salesforce connection setup
      • Azure blob storage configuration
      • Adding python backend code to existing installation
      • UI Bakery Postgres
    • Networking & security
      • Setting up a domain name
      • Configuring custom certificate authority
      • Custom base URL
      • Getting requests to the local network
      • Setting up SSL on Ubuntu
    • SSO
      • OpenID
        • Google OAuth2
        • Okta ODIC
        • Azure AD OAuth2
        • Token refresh
      • SAML
        • Okta SAML
        • Azure AD SAML
      • Role synchronization
      • Multiple SSO
      • Logout redirect
      • Troubleshooting
    • Git source control
      • Manage multi-instance deployment
      • Custom PR URL
      • Automate GitHub releases
      • Automate GitLab releases
      • Automate Bitbucket releases
    • Environment variables
  • 📚Reference
    • Data security measures
    • Improving app security
    • ✨AI Assistant
    • List of Components
      • Azure Blob Storage file uploader
      • Accordion
      • Alert
      • Avatar
      • Boolean
      • Breadcrumbs
      • Bubble map
      • Button
      • Card
      • Chart
      • Chat
      • Checkbox
      • Collapsible card
      • Color picker
      • Composite form
      • Container
      • Context menu button
      • Currency
      • Currency input
      • Date picker
      • Date & time
      • Date & time picker
      • Detail
      • Divider
      • Email input
      • Embedded App
      • File
      • File dropzone
      • File picker
      • Flex container
      • Form
      • Frame drawer
      • Grid view
      • Heading
      • Horizontal menu
      • Icon
      • iFrame
      • Image
      • Image picker
      • JSON editor
      • JSON viewer
      • Link
      • List view
      • Map
      • Menu
      • Metric
      • Modal
      • Multi-select
      • Number
      • Number input
      • Password input
      • PDF viewer
      • Percent
      • Pop-up form
      • Progress bar
      • QR code
      • Radio
      • Range slider
      • Rating
      • Reusable header
      • Reusable sidebar
      • Select
      • Signature
      • Slider
      • Steps
      • Stepper
      • S3 file uploader
      • Table
        • Conditional formatting based on cell value
        • Display name instead of ID for relation
        • Row context referencing
        • Select multiple table rows
        • How to Highlight Text in a Table Using mark.js
      • Tabs
      • Tabset
      • Tags
      • Text
      • Text annotate
      • Text input
      • Time picker
      • Toggle
      • Tree component
      • Video
      • Dynamic structure properties
      • Card (deprecated)
      • Input (deprecated)
    • Upgrading components
    • List of Data sources
      • Airtable
      • AWS API
      • AWS Athena
      • AWS DynamoDB
      • AWS Lambda
      • AWS Redshift
      • AWS S3
        • S3 compatible endpoints (DigitalOcean spaces)
      • Azure Blob Storage
      • Big Query
      • Databricks
      • Exasol
      • Firestore, Firebase Auth & Realtime DB
        • Firebase authentication
        • Managing database data
        • Firebase client-side SDK
        • Firebase libraries
      • GitHub
      • Google Sheets
      • GraphQL
      • HTTP API
        • API Authentication
      • HubSpot
      • JDBC
      • MariaDB
      • MongoDB
      • MySQL
      • OpenAI
      • OpenAPI
      • Oracle
      • PostgreSQL
      • Presto
      • Redis
      • Salesforce
      • SAP Hana
      • SendGrid
      • Slack
      • SMTP
      • Snowflake
      • Spanner
      • SSH
      • Stripe
      • SQL Server
      • Supabase
      • Twilio
      • UI Bakery AI
    • List of Action steps
      • AI Action
      • Azure Blob Storage Query
      • Bulk Create Rows
      • Bulk Delete Rows
      • Condition
      • Create Row
      • Delete Row
      • DynamoDB Request
      • Execute Action
      • Firebase Query
      • Generate File
      • GraphQL Query
      • HTTP Request
      • Interval
      • JavaScript Code
      • Load Table
      • Load Row
      • Loop Action
      • MongoDB Command
      • Navigate
      • Open API Request
      • Python Backend Code
      • Redis Command
      • Save to Local Storage
      • Save to State
      • Show Notification
      • Slack Message
      • SMTP Request
      • SSH Command
      • SQL Query
      • S3 Query
      • Update Row
    • Troubleshooting techniques
    • Performance optimization
Powered by GitBook

© 2025 UI Bakery

On this page

Was this helpful?

Export as PDF
  1. Reference
  2. List of Components

Dynamic structure properties

Below is a list of all supported properties for dynamic structure configuration of table columns and form/detail inputs:

// Example:
[
	'full_name',
	{ prop: 'id', type: 'number', primaryKey: true, color: 'danger' },
	{ prop: 'full_name' },
	{ prop: 'avatar', type: 'image' },
	{ prop: 'email', type: 'link' },
	{
		prop: 'email',
		type: 'button',
		text: '{\{value\}}',
		triggers: {
			buttonClick: [ "console.log('Button click', {\{value\}})" ],
		},
		labelConfig: {
			align: 'center',
			position: 'horizontal',
		},
	},
];

// Default type if not specified - string
// Required keys - prop, primaryKey (at least one column must be a primary key for table)

// Common fields for all components
export class BaseComponent {
	prop: string, //  Field name
	editable: boolean, // Always display as editable
	forceView: boolean, // Do not allow editing this field
	title: string, //  Title
	primaryKey: boolean, // Primary key
	sortable: boolean, // Enable sorting
	filter: boolean, // Enable filtering
	enableAdding: boolean, // Enable adding
	visible: boolean,
	pinColumn: string, //  Pin column
	passEventOutside: boolean, // Select row on click
	disabled: boolean, //  Disabled
	__UIBAKERY__SHOW__CONDITION__PRESERVE__: boolean, // Preserve space when hidden
	
	// for Table structure only
	width: number, //  Width
	widthMode: 'auto' | 'fixed', // 'auto' is for Min mode
	viewTooltipMode: 'overflow' | 'custom',
}

// image component
export class ImageComponent extends BaseComponent {
	alt: string, // Alt text
	linkInfo: object, // Image URL
	queryParams: object, //  Query params
	openInNewTab: boolean, // Open in new tab
	helpTooltip: string, // Help tooltip
	fieldTooltip: string, // Field tooltip
	viewTooltip: string, // Tooltip
	mappedValue: string, // Mapper
	imageShape: string, //  Display
	fullWidth: boolean, // Full width
	fileInputType: object, //  Type
	fileUploadType: object, //  File type
	maxFileSize: number, // Max file size (Mb)
	multipleFileUpload: boolean, // Multiple
	required: boolean, // Required field
	regexpPattern: string, // Regexp pattern
	regexpPatternErrorMessage: string, // Regexp pattern error message
	radius: string, //  Radius
	fit: string, //  Fit
	labelConfig: LabelConfig, // Label configuration
}
// number component
export class NumberComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	showCopyButton: boolean, // Show copy button
	filterVariation: string, //  Filter type
	fieldTooltip: string, // Field tooltip
	mappedValue: string, // Mapper
	viewTooltip: string, // Tooltip
	range: object, //  Min & max range
	required: boolean, // Required field
	display: string, // Format
	fraction: string, //  fraction
	textStyle: TextStyle,
	color: string,
	regexpPattern: string, // Regexp pattern
	regexpPatternErrorMessage: string, // Regexp pattern error message
	locale: string, //  Locale
	disableFormatting: boolean, // Disable number formatting
	decoration: string, //  Decoration
	fontSize: string, //  Font size
	editModeValue: number, // Value
	labelConfig: LabelConfig, // Label configuration
}
// string component
export class StringComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	maskConfig: string, //  Input mask
	maskErrorMessage: string, // Mask error message
	filterVariation: string, //  Filter type
	fieldTooltip: string, // Field tooltip
	mappedValue: string, // Mapper
	viewTooltip: string, // Tooltip
	textStyle: object,
	color: string, //  Color
	inputType: string, // Type
	length: object, //  Min & max length
	required: boolean, // Required field
	markdownSupport: boolean, // Support Markdown
	showCopyButton: boolean, // Show copy button
	regexpPattern: string, // Regexp pattern
	regexpPatternErrorMessage: string, // Regexp pattern error message
	decoration: string, //  Decoration
	fontSize: string, //  Font size
	editModeValue: string, // Value
	labelConfig: LabelConfig, // Label configuration
}
// text component
export class TextComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	filterVariation: string, //  Filter type
	fieldTooltip: string, // Field tooltip
	mappedValue: string, // Mapper
	viewTooltip: string, // Tooltip
	fontSize: string, //  Font size
	textStyle: TextStyle,
	color: string, //  Color
	lines: number, //  Lines number
	length: object, //  Min & max length
	required: boolean, // Required field
	markdownSupport: boolean, // Support Markdown
	showCopyButton: boolean, // Show copy button
	expandOnClick: boolean, // Expand on click
	regexpPattern: string, // Regexp pattern
	regexpPatternErrorMessage: string, // Regexp pattern error message
	editModeValue: string, // Value
	labelConfig: LabelConfig, // Label configuration
}
// link component
export class LinkComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	filterVariation: string, //  Filter type
	fieldTooltip: string, // Field tooltip
	viewTooltip: string, // Tooltip
	fontSize: string, //  Font size
	mappedValue: string, // Mapper
	text: string, // Text
	lines: number, //  Lines number
	textStyle: TextStyle,
	color: string, //  Color
	openInNewTab: boolean, // Open in new tab
	required: boolean, // Required field
	regexpPattern: string, // Regexp pattern
	regexpPatternErrorMessage: string, // Regexp pattern error message
	editModeValue: string, // Value
	triggers?: {
		linkClick: CodeString[], // On Click
	},
	labelConfig: LabelConfig, // Label configuration
}
// boolean component
export class BooleanComponent extends BaseComponent {
	trueText: string, // True text
	falseText: string, // False text
	helpTooltip: string, // Help tooltip
	mappedValue: string, // Mapper
	required: boolean, // Required field
	filterVariation: string, //  Filter type
	display: string, //  Display
	decoration: string, //  Decoration
	textStyle: TextStyle,
	color: string,
	viewTooltip: string, // Tooltip
	fontSize: string, //  Font size
	editModeValue: boolean, // Value
}
// dateTime component
export class DateTimeComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	showCopyButton: boolean, // Show copy button
	filterVariation: string, //  Filter type
	fieldTooltip: string, // Field tooltip
	viewTooltip: string, // Tooltip
	mappedValue: string, // Mapper
	dateFormat: object, //  Date format
	timeFormat: object, //  Time format
	required: boolean, // Required field
	decoration: string, //  Decoration
	textStyle: object,
	color: string,
	fontSize: string, //  Font size
	withSeconds: boolean, // With seconds
	twelveHoursFormat: boolean, // Use Twelve Hours format
	timeStep: object,
	minDate: object, // Min
	maxDate: object, // Max
	timezone: string, // Timezone
	startView: string, //  Start view
	firstDayOfWeek: string, // First day of week
	editModeValue: object, // Value
	labelConfig: LabelConfig, // Label configuration
}
// currency component
export class CurrencyComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	filterVariation: string, //  Filter type
	fieldTooltip: string, // Field tooltip
	viewTooltip: string, // Tooltip
	mappedValue: string, // Mapper
	range: object, //  Min & max range
	required: boolean, // Required field
	currencyCode: string, //  Currency
	fraction: string, //  Fraction
	display: string, //  Display
	textStyle: TextStyle,
	color: string,
	regexpPattern: string, // Regexp pattern
	regexpPatternErrorMessage: string, // Regexp pattern error message
	locale: string, //  Locale
	disableFormatting: boolean, // Disable number formatting
	showCopyButton: boolean, // Show copy button
	fontSize: string, //  Font size
	decoration: string, //  Decoration
	editModeValue: number, // Value
	labelConfig: LabelConfig, // Label configuration
}
// button component
export class ButtonComponent extends BaseComponent {
	text: string,
	showLoading: boolean, //  Show loading
	status: string,
	appearance: string,
	iconPlacement: string, //  Icon placement
	icon: string,
	linkInfo: object, // URL
	queryParams: boolean, //  Query params
	openInNewTab: boolean, // Open in new tab
	fieldTooltip: string, // Tooltip
	triggers?: {
		buttonClick: CodeString[], // On Click
	},
	alignment: string, //  Alignment
}
// contextMenuButton component
export class ContextMenuButtonComponent extends BaseComponent {
	text: string,
	showLoading: boolean, //  Show loading
	status: string,
	appearance: string,
	iconPlacement: string, //  Icon placement
	icon: string,
	contextMenuTrigger: string, //  Menu trigger
	contextMenuPosition: string, //  Menu position
	contextMenuAdjustment: string, //  Menu adjustment
	contextMenuItems: object, //  Menu items
	fieldTooltip: string, // Tooltip
	triggers?: {
		buttonClick: CodeString[], // On Click
		menuItemClick: CodeString[], // On Menu Item Click
	},
	alignment: string, //  Alignment
}
// select component
export class SelectComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	filterVariation: string, //  Filter type
	fieldTooltip: string, // Field tooltip
	required: boolean, // Required field
	viewTooltip: string, // Tooltip
	options: array,
	appearance: string,
	withOptionsAutocomplete: boolean, // Enable options autocomplete
	mappedValue: string, // Tag mapper
	mappedColor: string, // Tag color mapper
	allowResetValue: boolean, // Allow reset value
	editModeValue: string, // Value
	triggers?: {
		autocompleteChange: CodeString[], // On Autocomplete Search
		tagClick: CodeString[], // On Tag Click
	},
	labelConfig: LabelConfig, // Label configuration
}
// multiselect component
export class MultiselectComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	filterVariation: string, //  Filter type
	fieldTooltip: string, // Field tooltip
	required: boolean, // Required field
	viewTooltip: string, // Tooltip
	options: array,
	appearance: string,
	mappedValue: string, // Tag mapper
	mappedColor: string, // Tag color mapper
	withOptionsAutocomplete: boolean, // Enable options autocomplete
	allowResetValue: boolean, // Show reset button
	allowSelectAll: boolean, // Show select all option
	editModeValue: string, // Value
	triggers?: {
		autocompleteChange: CodeString[], // On Autocomplete Search
		tagClick: CodeString[], // On Tag Click
	},
	labelConfig: LabelConfig, // Label configuration
}
// file component
export class FileComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	fieldTooltip: string, // Field tooltip
	viewTooltip: string, // Tooltip
	mappedValue: string, // Mapper
	fileInputType: string, //  Type
	fileUploadType: object, //  File type
	maxFileSize: number, // Max file size (Mb)
	multipleFileUpload: boolean, // Multiple
	required: boolean, // Required field
	regexpPattern: string, // Regexp pattern
	regexpPatternErrorMessage: string, // Regexp pattern error message
	labelConfig: LabelConfig, // Label configuration
}
// percent component
export class PercentComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	showCopyButton: boolean, // Show copy button
	filterVariation: string, //  Filter type
	fieldTooltip: string, // Field tooltip
	mappedValue: string, // Mapper
	viewTooltip: string, // Tooltip
	range: object, //  Min & max range
	required: boolean, // Required field
	display: string, // Format
	fraction: string, //  fraction
	textStyle: TextStyle,
	color: string,
	status: string, //  color
	regexpPattern: string, // Regexp pattern
	regexpPatternErrorMessage: string, // Regexp pattern error message
	view: string, //  Type
	displayValue: boolean, // Display value
	locale: string, //  Locale
	disableFormatting: boolean, // Disable number formatting
	decoration: string, //  Decoration
	fontSize: string, //  Font size
	editModeValue: number, // Value
	labelConfig: LabelConfig, // Label configuration
}
// jsonEditor component
export class JsonEditorComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	showCopyButton: boolean, // Show copy button
	filterVariation: string, //  Filter type
	viewTooltip: string, // Tooltip
	editDisplayMode: string, //  Display mode
	viewDisplayMode: string, //  Display mode
	lines: number, //  Lines number
	required: boolean, // Required field
	editModeValue: object, // Value
	labelConfig: LabelConfig, // Label configuration
}
// date component
export class DateComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	showCopyButton: boolean, // Show copy button
	filterVariation: string, //  Filter type
	fieldTooltip: string, // Field tooltip
	viewTooltip: string, // Tooltip
	mappedValue: string, // Mapper
	dateFormat: object, //  Date format
	required: boolean, // Required field
	decoration: string, //  Decoration
	textStyle: TextStyle,
	color: string,
	fontSize: string, //  Font size
	minDate: object, // Min
	maxDate: object, // Max
	timezone: string, // Timezone
	startView: string, //  Start view
	firstDayOfWeek: string, // First day of week
	editModeValue: object, // Value
	labelConfig: LabelConfig, // Label configuration
}
// time component
export class TimeComponent extends BaseComponent {
	helpTooltip: string, // Help tooltip
	showCopyButton: boolean, // Show copy button
	filterVariation: string, //  Filter type
	fieldTooltip: string, // Field tooltip
	viewTooltip: string, // Tooltip
	mappedValue: string, // Mapper
	timeFormat: object, //  Time format
	required: boolean, // Required field
	decoration: string, //  Decoration
	textStyle: TextStyle,
	color: string,
	fontSize: string, //  Font size
	withSeconds: boolean, // With seconds
	twelveHoursFormat: boolean, // Use Twelve Hours format
	timeStep: object,
	timezone: string, // Timezone
	editModeValue: object, // Value
	labelConfig: LabelConfig, // Label configuration
}
type TextStyle = {
    style?: ('bold', 'italic')[],
    transform?: 'uppercase' | 'lowercase' | 'capitalize' | 'none',
}
type LabelConfig = {
    align: 'left' | 'center' | 'right'; // label alignment
    position: 'vertical' | 'horizontal'; // label position
}
PreviousVideoNextCard (deprecated)

Last updated 4 months ago

Was this helpful?

📚