When building custom components, you can make use of the Component Manager props to make your custom component configurable in the UI Designer. Below you can find some sample property definition that you can adopt in your custom component.
{ label:"Gap", type:"string", placeholder:"e.g. 8px", helpText:"The flex gap to be added between the child components. e.g. 8px",// markdown can be used here category:"Flex", required:true}
Dynamic help text sample
helpText: (item:RequiredItem<'ActionButton'>) => {constkey=item.props.hotKey || (item.props.text.type ==='text'&&item.props.text.value?.length?item.props.text.value.charAt(0):'<Hot Key>'); return `A shortcut key to be mapped for this button click event. User can use Ctrl+Shift+${key} or Cmd+Shift+${key} as a keyboard shortcut instead of a mouse click on this button.`;
},
{ label:'BG Image', type:'expression', returnType: async (item, context) => 'string', // Return type must return one of the following 'string' | 'boolean' | 'number' | 'date' | 'yn' | 'tf' | 'array' | 'object' | 'any'
required:true,}
Color Expression
{ label:"Header BG Color", type:"ColorExpression", category:"Look & Feel", helpText:`Use one of the following values for a gray background with darkmode support.dividerbackground.defaultaction.selectedprimary.mainprimary.darkprimary.lightSimilar to how primary palette is used above, you can also use one of the following palette secondary, success, warning, error.
`}
Select
Use toOptions function to auto create display labels based on the value
{ type:'options', label:'Option Values', category:'Select Options', helpText: 'If the options are fixed, then you can specify here instead of providing a Data Store Alias below. e.g. B:Blue, G:Green, Yellow, Red',
}