<?xml version="1.0"?>
<!--
  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.
  -->

<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009"
				xmlns:mx="library://ns.adobe.com/flex/mx"
				xmlns:s="library://ns.adobe.com/flex/spark"
				paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0"
				height="100%" width="100%">

    <mx:Panel title="Welcome to Tour De Flex"
			  paddingBottom="10" paddingTop="10" paddingLeft="10" paddingRight="10"
			  height="100%" width="100%">
		<s:HGroup>
			<s:Image source="@Embed('/apache/assets/ApacheFlexLogo.png')" width="50" height="50" />
			<s:VGroup height="100%" verticalAlign="middle">
				<s:Label text="Apache Tour De Flex" fontSize="20" fontWeight="bold" />
			</s:VGroup>	
		</s:HGroup>
			
		<s:RichText width="100%" height="100%">
			<s:p />
			<s:p>The Apache Flex Tour De Flex component explorer provides a sample set of working
	  Apache Flex examples.</s:p>
			<s:p />
			<s:p>New in this version:</s:p>
			<s:list>
				<s:li>Added this welcome page</s:li>
				<s:li>Changed examples look and feel to be more consistent</s:li>
				<s:li>Added support for 3rd party examples</s:li>
				<s:li>Added Squiggly spelling engine examples</s:li>
			</s:list>
			<s:p />
			<s:p>For a full list of changes please see the README.</s:p>
			<s:p />
		</s:RichText>
    </mx:Panel>
</mx:Module>
