     //
     //--------------------------------------------------------------------------
 
+    //----------------------------------
+    //  promptDisplay
+    //----------------------------------
+    
+    [SkinPart(required="false")]
+    
+    /**
+     *  The Label or other IDisplayText that may be present
+     *  in any skin assigned to this component.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public var promptDisplay:IDisplayText;
+    
+    /**
+     *  @private
+     *  Properties are proxied to promptDisplay.  However, when 
+     *  promptDisplay is not around, we need to store values set on 
+     *  SkinnableTextBase.  This object stores those values.  If promptDisplay is 
+     *  around, the values are  stored  on the promptDisplay directly.  However, 
+     *  we need to know what values have been set by the developer on 
+     *  TextInput/TextArea (versus set on the promptDisplay or defaults of the 
+     *  promptDisplay) as those are values we want to carry around if the 
+     *  promptDisplay changes (via a new skin). In order to store this info 
+     *  efficiently, promptDisplayProperties becomes a uint to store a series of 
+     *  BitFlags.  These bits represent whether a property has been explicitly 
+     *  set on this SkinnableTextBase.  When the promptDisplay is not around, 
+     *  promptDisplayProperties is a typeless object to store these proxied 
+     *  properties.  When promptDisplay is around, promptDisplayProperties stores 
+     *  booleans as to whether these properties have been explicitly set or not.
+     */
+    private var promptDisplayProperties:Object = {};
+    
     //----------------------------------
     //  textDisplay
     //----------------------------------

        invalidateProperties();                    
    }

	//----------------------------------
	//  tabIndex
	//----------------------------------

        if (enabled && editable && focusManager)
            focusManager.showFocusIndicator = true;

        invalidateSkinState();
        
        super.focusInHandler(event);
    }
 
    /**
     *  @private
     */
    override protected function focusOutHandler(event:FocusEvent):void
    {
        if (event.target == this)
            return;
        
        invalidateSkinState();
        
        super.focusOutHandler(event);
    }

    //--------------------------------------------------------------------------
    //
    //  Event handlers
