
<!--
Copyright 2017-present Open Networking Foundation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->



<xos-alert config="vm.config1">
  A sample alert message
</xos-alert>
<xos-alert config="vm.config2">
  A sample alert message (with close button)
</xos-alert>
<xos-alert config="vm.config3">
  A sample info message
</xos-alert>
<xos-alert config="vm.config4">
  A sample success message
</xos-alert>
<xos-alert config="vm.config5">
  A sample warning message
</xos-alert>