<?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.

-->

<!--

    Spark Components

-->
<componentPackage>

    <component id="Application" class="spark.components.Application" include="false"/>
    
    <component id="BorderContainer" class="spark.components.BorderContainer" include="false">
    	<defaults width="240" height="160"/>
    </component>
    
    <component id="Button" class="spark.components.Button">
    	<defaults width="70" height="21" label="Label"/>
    </component>
    
    <component id="ButtonBar" class="spark.components.ButtonBar" include="true">
    	<defaults width="240" height="22" dataProvider="Button 1, Button 2, Button 3"/>
    </component>
    
    <component id="ButtonBarButton" class="spark.components.ButtonBarButton" include="false"/>
    
    <component id="CheckBox" class="spark.components.CheckBox">
    	<defaults width="76" height="20" label="Checkbox"/>
    </component>
    
    <component id="GridColumnHeaderGroup" class="spark.components.GridColumnHeaderGroup" include="false"/>
    
    <component id="ComboBox" class="spark.components.ComboBox">
    	<defaults width="166" height="23" dataProvider="Item 1,Item 2,Item 3"/>
    </component>
	
	<component id="DataGrid" class="spark.components.DataGrid" include="false">
    	<defaults width="240" height="66" dataProvider="Item 1,Item 2,Item 3"/>
    </component>
    
    <component id="DataGroup" class="spark.components.DataGroup" include="false">
    	<defaults width="240" height="66"/>
    </component>
    
    <component id="DataRenderer" class="spark.components.DataRenderer" include="false"/>
    
    <component id="DropDownList" class="spark.components.DropDownList">
    	<defaults width="166" height="23" dataProvider="Item 1,Item 2,Item 3"/>
    </component>
    
    <component id="Form" class="spark.components.Form" include="false">
    	<defaults width="240" height="60"/>
    </component>
    
    <component id="FormHeading" class="spark.components.FormHeading" include="false">
    	<defaults percentWidth="100%" height="30"/>
    </component>
    
    <component id="FormItem" class="spark.components.FormItem" include="false">
    	<defaults percentWidth="100%" height="23"/>
    </component>
    
    <component id="Grid" class="spark.components.Grid" include="false">
    	<defaults width="240" height="160" />
    </component>
    
    <component id="Group" class="spark.components.Group">
    	<defaults width="240" height="160"/>
    </component>
    
    <component id="HGroup" class="spark.components.HGroup">
    	<defaults width="180" height="23" verticalAlign="middle"/>
    </component>
    
    <component id="HScrollBar" class="spark.components.HScrollBar" include="false"/>
    
    <component id="HSlider" class="spark.components.HSlider" include="false">
    	<defaults width="166" />
    </component>
    
    <component id="Image" class="spark.components.Image">
    	<defaults width="36" height="36" source="assets/images/components/Image.png"/>
    </component>
     
    <component id="Label" class="spark.components.Label">
    	<defaults width="76" height="15" text="Label"/>
    </component>
    
	<component id="List" class="spark.components.List">
    	<defaults width="160" height="160" dataProvider="Item 1,Item 2,Item 3"/>
    </component>
    
    <component id="NavigatorContent" class="spark.components.NavigatorContent" include="false"/>
    
    <component id="NumericStepper" class="spark.components.NumericStepper" include="false"/>
    
    <component id="Panel" class="spark.components.Panel" include="false">
    	<defaults width="240" height="166"/>
    </component>
    
	<component id="PopUpAnchor" class="spark.components.PopUpAnchor" include="false"/>
 	<component id="PopUpPosition" class="spark.components.PopUpPosition" include="false"/>
    
	<component id="RadioButton" class="spark.components.RadioButton">
    	<defaults width="76" height="20" label="Radio Button"/>
    </component>
    
    <component id="RadioButtonGroup" class="spark.components.RadioButtonGroup" include="false"/>
    
    <component id="RichEditableText" class="spark.components.RichEditableText" include="false">
    	<defaults width="120" height="66" text="Rich Editable Text"/>
    </component>
    
    <component id="RichText" class="spark.components.RichText" include="false">
    	<defaults width="166" height="23" text="Rich Text"/>
    </component>
    
    <component id="Scroller" class="spark.components.Scroller" include="false">
    	<defaults width="166" height="23"/>
    </component>
    
    <component id="SkinnableContainer" class="spark.components.SkinnableContainer" include="false">
    	<defaults width="240" height="166"/>
    </component>
    
    <component id="SkinnableDataContainer" class="spark.components.SkinnableDataContainer" include="false">
    	<defaults width="240" height="166"/>
    </component>
    
    <component id="SkinnablePopUpContainer" class="spark.components.SkinnablePopUpContainer" include="false"/>
    
    <component id="Spacer" class="mx.controls.Spacer" lookupOnly="true">
    	<defaults width="10" height="10"/>
    </component>
    
    <component id="Spinner" class="spark.components.Spinner" include="false">
    	<defaults width="86" height="20"/>
    </component>
    
    <component id="TabBar" class="spark.components.TabBar">
    	<defaults width="240" height="22" dataProvider="Item 1,Item 2,Item 3"/>
    </component>
    
    <component id="TextArea" class="spark.components.TextArea">
    	<defaults width="166" height="66"/>
    </component>
    
    <component id="TextInput" class="spark.components.TextInput">
    	<defaults width="120" height="22"/>
    </component>
    
    <component id="TextSelectionHighlighting" class="spark.components.TextSelectionHighlighting" include="false"/>
    
    <component id="TileGroup" class="spark.components.TileGroup">
    	<defaults width="240" height="166"/>
    </component>
    
    <component id="TitleWindow" class="spark.components.TitleWindow">
    	<defaults width="240" height="166"/>
    </component>
    
    <component id="ToggleButton" class="spark.components.ToggleButton">
    	<defaults width="76" height="20" label="Label"/>
    </component>
    
    <component id="VGroup" class="spark.components.VGroup" include="true">
    	<defaults width="240" height="166"/>
    </component>
    
    <component id="VideoDisplay" class="spark.components.VideoDisplay" include="false">
    	<defaults width="320" height="240"/>
    </component>
    
    <component id="VideoPlayer" class="spark.components.VideoPlayer" include="false">
    	<defaults width="320" height="240"/>
    </component>
    
    <component id="VScrollBar" class="spark.components.VScrollBar" include="false"/>
    
    <component id="VSlider" class="spark.components.VSlider" include="false">
    	<defaults width="10" height="166"/>
    </component>

</componentPackage>
