Supported button options:
- label: string - button label.
- encode: boolean - whether to encode label.
- icon: string - button icon short name.
- options: array - link tag HTML options.
- visible: boolean|callable - whether button should be rendered or not.
- url: callable - callback, which should return button URL.
This widget also provides default buttons as configuration, which will be merged with [[buttons]] recursively.