When the addon content is just text, use type: 'text'. It works the same in every adapter without any per-adapter branching. The config object below is byte-identical regardless of which UI library renders it.

Live Demo

Material Material
Loading live example

Config

{
  fields: [
    {
      key: 'amount',
      type: 'input',
      label: 'Amount',
      value: '99.00',
      addons: [
        { slot: 'prefix', type: 'text', text: '$' },
        { slot: 'suffix', type: 'text', text: 'USD' },
      ],
    },
  ],
}

text is one of three universal types (alongside template and component) registered by core. The icon and button types (mat-icon, prime-button, and so on) are per-adapter, but for simple labels and currency markers the universal text type is the lowest-friction choice.