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

-->
<componentPackage>

    <!-- framework -->
    <component id="AddChild" class="mx.states.AddChild"/>
    <component id="AddItems" class="mx.states.AddItems"/>
    <component id="AnimateProperty" class="mx.effects.AnimateProperty"/>
    <component id="ArrayCollection" class="mx.collections.ArrayCollection"/>
    <component id="ArrayList" class="mx.collections.ArrayList"/>
    <component id="BevelFilter" class="flash.filters.BevelFilter" lookupOnly="true"/>
    <component id="BitmapFill" class="mx.graphics.BitmapFill"/>
    <component id="BitmapFillMode" class="mx.graphics.BitmapFillMode"/>
    <component id="BitmapScaleMode" class="mx.graphics.BitmapScaleMode"/>
    <component id="BitmapSmoothingQuality" class="mx.graphics.BitmapSmoothingQuality"/> 
    <component id="Blur" class="mx.effects.Blur"/>
    <component id="BlurFilter" class="flash.filters.BlurFilter" lookupOnly="true"/>
    <component id="ColorMatrixFilter" class="flash.filters.ColorMatrixFilter" lookupOnly="true"/>
    <component id="ColorTransform" class="flash.geom.ColorTransform" lookupOnly="true"/>
    <component id="TransformOffsets" class="mx.geom.TransformOffsets"/>
    <component id="ConstraintColumn" class="mx.containers.utilityClasses.ConstraintColumn"/>
    <component id="ConstraintRow" class="mx.containers.utilityClasses.ConstraintRow"/>
    <component id="ConvolutionFilter" class="flash.filters.ConvolutionFilter" lookupOnly="true"/>
    <component id="CreditCardValidator" class="mx.validators.CreditCardValidator"/>
    <component id="CurrencyFormatter" class="mx.formatters.CurrencyFormatter"/>
    <component id="CurrencyValidator" class="mx.validators.CurrencyValidator"/>
    <component id="DateFormatter" class="mx.formatters.DateFormatter"/>
    <component id="DateValidator" class="mx.validators.DateValidator"/>
    <component id="DisplacementMapFilter" class="flash.filters.DisplacementMapFilter" lookupOnly="true"/>
    <component id="Dissolve" class="mx.effects.Dissolve"/>
    <component id="DropShadowFilter" class="flash.filters.DropShadowFilter" lookupOnly="true"/>
    <component id="EffectTargetFilter" class="mx.effects.EffectTargetFilter"/>
    <component id="EmailValidator" class="mx.validators.EmailValidator"/>
    <component id="Fade" class="mx.effects.Fade"/>
    <component id="GradientBevelFilter" class="flash.filters.GradientBevelFilter" lookupOnly="true"/>
    <component id="GradientEntry" class="mx.graphics.GradientEntry"/>
    <component id="GradientGlowFilter" class="flash.filters.GradientGlowFilter" lookupOnly="true"/>
    <component id="Iris" class="mx.effects.Iris"/>
    <component id="LinearGradient" class="mx.graphics.LinearGradient"/>
    <component id="LinearGradientStroke" class="mx.graphics.LinearGradientStroke"/>
    <component id="ListCollectionView" class="mx.collections.ListCollectionView"/>
    <component id="MaskEffect" class="mx.effects.MaskEffect"/>
    <component id="Matrix" class="flash.geom.Matrix" lookupOnly="true"/>
    <component id="Matrix3D" class="flash.geom.Matrix3D" lookupOnly="true"/>
    <component id="Move" class="mx.effects.Move"/>
    <component id="NumberFormatter" class="mx.formatters.NumberFormatter"/>
    <component id="NumberValidator" class="mx.validators.NumberValidator"/>
    <component id="Parallel" class="mx.effects.Parallel"/>
    <component id="Pause" class="mx.effects.Pause"/>
    <component id="PhoneFormatter" class="mx.formatters.PhoneFormatter"/>
    <component id="PhoneNumberValidator" class="mx.validators.PhoneNumberValidator"/>
    <component id="Point" class="flash.geom.Point" lookupOnly="true"/>
    <component id="RadialGradient" class="mx.graphics.RadialGradient"/>
    <component id="RadialGradientStroke" class="mx.graphics.RadialGradientStroke"/>
    <component id="RegExpValidator" class="mx.validators.RegExpValidator"/>
    <component id="AsyncListView" class="mx.collections.AsyncListView"/>
    <component id="RemoveChild" class="mx.states.RemoveChild"/>
    <component id="Rotate" class="mx.effects.Rotate"/>
    <component id="Sequence" class="mx.effects.Sequence"/>
    <component id="SetEventHandler" class="mx.states.SetEventHandler"/>
    <component id="SetProperty" class="mx.states.SetProperty"/>
    <component id="SetStyle" class="mx.states.SetStyle"/>
    <component id="SetStyleAction" class="mx.effects.SetStyleAction"/>
    <component id="SocialSecurityValidator" class="mx.validators.SocialSecurityValidator"/>
    <component id="SolidColor" class="mx.graphics.SolidColor"/>
    <component id="SolidColorStroke" class="mx.graphics.SolidColorStroke"/>
    <component id="Sort" class="mx.collections.Sort"/>
    <component id="SortField" class="mx.collections.SortField"/>
    <component id="SoundEffect" class="mx.effects.SoundEffect"/>
    <component id="Spacer" class="mx.controls.Spacer"/>
    <component id="Sprite" class="flash.display.Sprite" lookupOnly="true"/>
    <component id="State" class="mx.states.State"/>
    <component id="StringValidator" class="mx.validators.StringValidator"/>
    <component id="Stroke" class="mx.graphics.Stroke"/>
    <component id="SWFLoader" class="mx.controls.SWFLoader"/>
    <component id="TraceTarget" class="mx.logging.targets.TraceTarget"/>
    <component id="Transform" class="mx.geom.Transform"/>
    <component id="Transition" class="mx.states.Transition"/>
    <component id="UIComponent" class="mx.core.UIComponent"/>
    <component id="Validator" class="mx.validators.Validator"/>
    <component id="XMLListCollection" class="mx.collections.XMLListCollection"/>
    <component id="ZipCodeFormatter" class="mx.formatters.ZipCodeFormatter"/>
    <component id="ZipCodeValidator" class="mx.validators.ZipCodeValidator"/>
    <component id="Zoom" class="mx.effects.Zoom"/>

    <!-- framework base classes with CSS type selectors -->
    <component id="CursorManager" class="mx.managers.CursorManager" />
    <component id="DragManager" class="mx.managers.DragManager" />
    <component id="ToolTip" class="mx.controls.ToolTip" />
    <component id="UIComponent" class="mx.core.UIComponent" />

</componentPackage>
