<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you 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.
-->

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:tr="http://myfaces.apache.org/trinidad"
                template="/template/featureDemosTemplate.xhtml">

    <ui:define name="featureContent">

        <tr:messages/>

        <h1>Welcome to the Apache Trinidad Feature Demos</h1>

        <tr:spacer height="20px"/>

        <tr:outputText value=" Apache MyFaces Trinidad is a JSF framework including a large, enterprise
            quality component library, supporting critical features such as accessibility (e.g. Section 508),
            right-to-left languages, etc. It also includes a set of framework features, including :"/>

        <tr:spacer height="12px"/>

        <tr:panelList rows="4">
            <tr:outputText value="Partial-page rendering support for the entire component set"/>
            <tr:outputText value="Integrated client-side validation"/>
            <tr:outputText value="A dialog framework"/>
            <tr:outputText value="pageFlowScope, for communicating between pages"/>
        </tr:panelList>

    </ui:define>

</ui:composition>
