This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new 2c4954fb52 Closer
2c4954fb52 is described below

commit 2c4954fb52af2c0148acd4989b4f9aec48a1e3cb
Author: Harbs <[email protected]>
AuthorDate: Wed Mar 18 11:05:19 2026 +0200

    Closer
---
 .../royale/style/stylebeads/CompositeStyle.as      | 23 +++++++++++++++--
 .../apache/royale/style/stylebeads/IStyleBead.as   |  3 ++-
 .../royale/style/stylebeads/LeafStyleBase.as       |  4 +--
 .../royale/style/stylebeads/StyleBeadBase.as       |  6 ++++-
 .../royale/style/stylebeads/states/ActiveState.as  |  4 +--
 .../royale/style/stylebeads/states/CheckedState.as |  4 +--
 .../style/stylebeads/states/DisabledState.as       |  4 +--
 .../royale/style/stylebeads/states/EvenState.as    |  4 +--
 .../royale/style/stylebeads/states/FirstState.as   |  4 +--
 .../royale/style/stylebeads/states/FocusState.as   |  4 +--
 .../style/stylebeads/states/FocusVisibleState.as   |  4 +--
 .../royale/style/stylebeads/states/HoverState.as   |  4 +--
 .../style/stylebeads/states/IndeterminateState.as  |  4 +--
 .../royale/style/stylebeads/states/LastState.as    |  4 +--
 .../style/stylebeads/states/LeafDecorator.as       | 29 ++++++++++++++++------
 .../royale/style/stylebeads/states/OddState.as     |  4 +--
 .../royale/style/stylebeads/states/PeerPseudo.as   | 24 +++++++++++++-----
 .../style/stylebeads/states/QueryBaseStyle.as      |  5 ++++
 .../style/stylebeads/states/RequiredState.as       |  4 +--
 .../style/stylebeads/states/StyleStateBase.as      |  4 +--
 .../style/stylebeads/states/attribute/AriaState.as |  4 +--
 .../style/stylebeads/states/attribute/DataState.as |  4 +--
 .../stylebeads/states/attribute/InertState.as      |  4 +--
 .../style/stylebeads/states/attribute/OpenState.as |  4 +--
 .../style/stylebeads/states/attribute/RTLState.as  |  4 +--
 .../style/stylebeads/states/pseudo/AfterState.as   |  4 +--
 .../stylebeads/states/pseudo/BackdropState.as      |  4 +--
 .../style/stylebeads/states/pseudo/BeforeState.as  |  4 +--
 .../style/stylebeads/states/pseudo/FileState.as    |  4 +--
 .../stylebeads/states/pseudo/FirstLetterState.as   |  4 +--
 .../stylebeads/states/pseudo/FirstLineState.as     |  4 +--
 .../style/stylebeads/states/pseudo/MarkerState.as  |  4 +--
 .../stylebeads/states/pseudo/PlaceholderState.as   |  4 +--
 .../stylebeads/states/pseudo/SelectionState.as     |  4 +--
 .../EvenState.as => util/StyleDecoration.as}       | 15 +++++------
 35 files changed, 136 insertions(+), 81 deletions(-)

diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/CompositeStyle.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/CompositeStyle.as
index 27ca8f455f..afcb8a5a1c 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/CompositeStyle.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/CompositeStyle.as
@@ -18,6 +18,8 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.style.stylebeads
 {
+       import org.apache.royale.debugging.assert;
+
        /**
         * Convenience class for styles that are composed of multiple leaf 
styles.
         * This class does not have any functionality on its own,
@@ -31,11 +33,28 @@ package org.apache.royale.style.stylebeads
                {
                        super();
                }
+               /**
+                * Composite styles have no effect, so it should not insert 
itself into the hierarchy.
+                */
+               override public function getLeaves():Array
+               {
+                       assert(styles && styles.length > 0, "Non-leaf style 
beads must have child styles");
+                       // nothing to preprocess.
+                       var retVal:Array = [];
+                       for each(var style:IStyleBead in styles)
+                       {
+                               // Composite styles have no effect, so it 
should not insert itself into the hierarchy.
+                               style.parentStyle = parentStyle;
+                               retVal = retVal.concat(style.getLeaves());
+                       }
+               return retVal;
+               }
+
                //TODO: Figure this out.
-               override public function 
decorateChildStyle(style:ILeafStyleBead):void
+               override public function 
decorateChildStyle(style:ILeafStyleBead,decorations:Array):void
                {
                        if(parentStyle)
-                               parentStyle.decorateChildStyle(style);
+                               parentStyle.decorateChildStyle(style, 
decorations);
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/IStyleBead.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/IStyleBead.as
index 4f184e4696..a640d94187 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/IStyleBead.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/IStyleBead.as
@@ -30,10 +30,11 @@ package org.apache.royale.style.stylebeads
        public interface IStyleBead extends IBead
        {
                function get isLeaf():Boolean;
+               function get isGroup():Boolean;
                function getLeaves():Array;
                function addStyleBead(bead:IStyleBead):void;
                function get parentStyle():IStyleBead;
                function set parentStyle(value:IStyleBead):void;
-               function decorateChildStyle(style:ILeafStyleBead):void;
+               function 
decorateChildStyle(style:ILeafStyleBead,decorations:Array):void;
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/LeafStyleBase.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/LeafStyleBase.as
index bb79006c77..2043827d90 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/LeafStyleBase.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/LeafStyleBase.as
@@ -45,7 +45,7 @@ package org.apache.royale.style.stylebeads
                {
                        // Walk up the chain decorating the styles.
                        if(parentStyle)
-                               parentStyle.decorateChildStyle(this);
+                               parentStyle.decorateChildStyle(this,[]);
                        return [this];
                }
                protected var _value:*;
@@ -273,7 +273,7 @@ package org.apache.royale.style.stylebeads
                {
                        _parentQueryId = value;
                }
-               override public function 
decorateChildStyle(style:ILeafStyleBead):void
+               override public function 
decorateChildStyle(style:ILeafStyleBead, decorations:Array):void
                {
                        assert(false, "Leaf styles should not have child 
styles.");
                }
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/StyleBeadBase.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/StyleBeadBase.as
index 8e2c2fa477..9ca51a5544 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/StyleBeadBase.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/StyleBeadBase.as
@@ -90,11 +90,15 @@ package org.apache.royale.style.stylebeads
                {
                        _parentStyle = value;
                }
-               abstract public function 
decorateChildStyle(style:ILeafStyleBead):void;
+               abstract public function 
decorateChildStyle(style:ILeafStyleBead, decorations:Array):void;
                public function get isLeaf():Boolean
                {
                        return false;
                }
+               public function get isGroup():Boolean
+               {
+                       return false;
+               }
 
                protected function 
validateColor(value:*,supportsNone:Boolean):StyleData
                {
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/ActiveState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/ActiveState.as
index 2ba3c38005..092dfe9abc 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/ActiveState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/ActiveState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function ActiveState()
                {
                        super();
-                       preDecorator = "active:";
-                       postDecorator = ":active";
+                       selectorDecorator = "active:";
+                       ruleDecorator = ":active";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/CheckedState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/CheckedState.as
index c2662c59fa..8b48662964 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/CheckedState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/CheckedState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function CheckedState(styles:Array = null)
                {
                        super();
-                       preDecorator = "checked:";
-                       postDecorator = ":checked";
+                       selectorDecorator = "checked:";
+                       ruleDecorator = ":checked";
                        this.styles = styles;
                }
        }
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/DisabledState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/DisabledState.as
index 8e4205108f..8761aa5e6e 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/DisabledState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/DisabledState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function DisabledState(styles:Array = null)
                {
                        super();
-                       preDecorator = "disabled:";
-                       postDecorator = ":disabled";
+                       selectorDecorator = "disabled:";
+                       ruleDecorator = ":disabled";
                        this.styles = styles;
                }
        }
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/EvenState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/EvenState.as
index 5099abeda3..3226675da8 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/EvenState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/EvenState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function EvenState()
                {
                        super();
-                       preDecorator = "even:";
-                       postDecorator = ":nth-child(2n)";
+                       selectorDecorator = "even:";
+                       ruleDecorator = ":nth-child(2n)";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FirstState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FirstState.as
index 4d3d1335d0..5cf160ed54 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FirstState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FirstState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function FirstState()
                {
                        super();
-                       preDecorator = "first:";
-                       postDecorator = ":first-child";
+                       selectorDecorator = "first:";
+                       ruleDecorator = ":first-child";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FocusState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FocusState.as
index ecf61af93d..33bb96d548 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FocusState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FocusState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function FocusState()
                {
                        super();
-                       preDecorator = "focus:";
-                       postDecorator = ":focus";
+                       selectorDecorator = "focus:";
+                       ruleDecorator = ":focus";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FocusVisibleState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FocusVisibleState.as
index c7254e3c71..f63c694520 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FocusVisibleState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/FocusVisibleState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function FocusVisibleState()
                {
                        super();
-                       preDecorator = "focus-visible:";
-                       postDecorator = ":focus-visible";
+                       selectorDecorator = "focus-visible:";
+                       ruleDecorator = ":focus-visible";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/HoverState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/HoverState.as
index 8a3309dd73..ab4a23af12 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/HoverState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/HoverState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function HoverState()
                {
                        super();
-                       preDecorator = "hover:";
-                       postDecorator = ":hover";
+                       selectorDecorator = "hover:";
+                       ruleDecorator = ":hover";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/IndeterminateState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/IndeterminateState.as
index 17a35887bb..49d914bbf1 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/IndeterminateState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/IndeterminateState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function IndeterminateState(styles:Array = null)
                {
                        super();
-                       preDecorator = "indeterminate:";
-                       postDecorator = ":indeterminate";
+                       selectorDecorator = "indeterminate:";
+                       ruleDecorator = ":indeterminate";
                        this.styles = styles;
                }
        }
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/LastState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/LastState.as
index c4bd3b2c3b..705630b423 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/LastState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/LastState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function LastState()
                {
                        super();
-                       preDecorator = "last:";
-                       postDecorator = ":last-child";
+                       selectorDecorator = "last:";
+                       ruleDecorator = ":last-child";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/LeafDecorator.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/LeafDecorator.as
index 600824237e..178144cdd9 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/LeafDecorator.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/LeafDecorator.as
@@ -23,29 +23,42 @@ package org.apache.royale.style.stylebeads.states
        import org.apache.royale.debugging.assert;
        import org.apache.royale.style.stylebeads.LeafStyleBase;
        import org.apache.royale.style.stylebeads.ILeafStyleBead;
+       import org.apache.royale.style.util.StyleDecoration;
 
        public class LeafDecorator extends StyleBeadBase
        {
+               protected static const STATE:String = "state";
+               protected static const COMBINER:String = "combiner";
+               protected static const QUERY:String = "query";
+
                public function LeafDecorator()
                {
                        super();
                }
-
-               protected var preDecorator:String;
-               protected var postDecorator:String;
+               protected var decoratorType:String = STATE;
+               protected var selectorDecorator:String;
+               protected var ruleDecorator:String;
                protected var leafStyle:LeafStyleBase;
                /**
                 * @royaleignorecoercion 
org.apache.royale.style.stylebeads.LeafStyleBase
                 */
-               override public function 
decorateChildStyle(style:ILeafStyleBead):void
+               override public function 
decorateChildStyle(style:ILeafStyleBead, decorations:Array):void
                {
                        assert(style.isLeaf, "LeafDecorator can only decorate 
leaf styles");
                        var leafStyle:LeafStyleBase = style as LeafStyleBase;
-                       leafStyle.rulePrefix = preDecorator + 
leafStyle.rulePrefix;
-                       leafStyle.ruleSuffix = leafStyle.ruleSuffix + 
postDecorator;
-                       leafStyle.selectorPrefix = preDecorator + 
leafStyle.selectorPrefix;
+                       leafStyle.selectorPrefix = selectorDecorator + 
leafStyle.selectorPrefix;
+
+                       decorations.push(new StyleDecoration(decoratorType, 
ruleDecorator));
+                       /**
+                        * Default behavior is for state decorators. In that 
case, the decoration is added as a suffix.
+                        * Otherwise, the decoration is passed to the parent 
which handles the decoration based on the type.
+                        */
+                       if(!parentStyle || parentStyle.isGroup)
+                       {
+                               leafStyle.ruleSuffix = leafStyle.ruleSuffix + 
ruleDecorator;
+                       }
                        if(parentStyle)
-                               parentStyle.decorateChildStyle(style);
+                               parentStyle.decorateChildStyle(style, 
decorations);
 
                }
        }
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/OddState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/OddState.as
index de3594a1ad..a95c0c07dc 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/OddState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/OddState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function OddState()
                {
                        super();
-                       preDecorator = "odd:";
-                       postDecorator = ":nth-child(odd)";
+                       selectorDecorator = "odd:";
+                       ruleDecorator = ":nth-child(odd)";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/PeerPseudo.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/PeerPseudo.as
index 0bd37fc4cd..367c9b2f76 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/PeerPseudo.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/PeerPseudo.as
@@ -20,23 +20,35 @@ package org.apache.royale.style.stylebeads.states
 {
        import org.apache.royale.style.stylebeads.IStyleBead;
        import org.apache.royale.style.stylebeads.ILeafStyleBead;
+       import org.apache.royale.style.util.StyleDecoration;
 
-       public class PeerPseudo extends StyleStateBase
+       public class PeerPseudo extends LeafDecorator
        {
                public function PeerPseudo(styles:Array = null)
                {
                        super();
                        this.styles = styles;
+                       selectorDecorator = "peer-";
+                       ruleDecorator = "peer";
+
+                       decoratorType = COMBINER;
                }
-               override public function 
decorateChildStyle(style:ILeafStyleBead):void
+               override public function 
decorateChildStyle(style:ILeafStyleBead, decorations:Array):void
                {
-                       var selector:String = "peer";
-                       style.selectorPrefix = selector + "-" + 
style.selectorPrefix;
-                       style.rulePrefix = "." + selector + ":" +  
style.rulePrefix + " ~ ";
+                       style.selectorPrefix = selectorDecorator + 
style.selectorPrefix;
+
+                       //TODO figure out more complex combinations. For now, 
just handle limited nesting.
+                       var decorationStr:String = 
decorations.map(function(decoration:StyleDecoration, index:int, 
arr:Array):String{
+                               return decoration.decoration;
+                       }).join("");
+                       
+                       decorations.push(new StyleDecoration(decoratorType, 
ruleDecorator));
+
+                       style.rulePrefix = "." + ruleDecorator + decorationStr 
+ " ~ " + style.rulePrefix;
                        // style.ruleSuffix = selector + ":" + style.ruleSuffix;
                        
                        if(parentStyle)
-                               parentStyle.decorateChildStyle(style);
+                               parentStyle.decorateChildStyle(style, 
decorations);
                }
        }
 }
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/QueryBaseStyle.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/QueryBaseStyle.as
index a06120eebd..f4201ec104 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/QueryBaseStyle.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/QueryBaseStyle.as
@@ -27,6 +27,11 @@ package org.apache.royale.style.stylebeads.states
                {
                        super();
                }
+
+               override public function get isGroup():Boolean
+               {
+                       return true;
+               }
                /**
                 * Change in subclasses for other query types such as 
`container` or `supports`.
                 */
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/RequiredState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/RequiredState.as
index cca21bc947..0fc43498c9 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/RequiredState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/RequiredState.as
@@ -23,8 +23,8 @@ package org.apache.royale.style.stylebeads.states
                public function RequiredState()
                {
                        super();
-                       preDecorator = "required:";
-                       postDecorator = ":required";
+                       selectorDecorator = "required:";
+                       ruleDecorator = ":required";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/StyleStateBase.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/StyleStateBase.as
index f791bc8fee..46019a8581 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/StyleStateBase.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/StyleStateBase.as
@@ -44,11 +44,11 @@ selectorPrefix: 
dark:peer-focus-visible:ring-offset-slate-950
 }
 
  */
-               override public function 
decorateChildStyle(style:ILeafStyleBead):void
+               override public function 
decorateChildStyle(style:ILeafStyleBead, decorations:Array):void
                {
                        //TODO: Figure out what goes in here.
                        if(parentStyle)
-                               parentStyle.decorateChildStyle(style);
+                               parentStyle.decorateChildStyle(style, 
decorations);
 
                }
 
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/AriaState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/AriaState.as
index cc58186a71..b81186382a 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/AriaState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/AriaState.as
@@ -42,8 +42,8 @@ package org.apache.royale.style.stylebeads.states.attribute
                public function set aria(value:String):void
                {
                        _aria = value;
-                       preDecorator = value + ":";
-                       postDecorator = "[" + value + "=true]";
+                       selectorDecorator = value + ":";
+                       ruleDecorator = "[" + value + "=true]";
                }
                /**
                 * The aria attribute without the aria- prefix.
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/DataState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/DataState.as
index 0589e4b62e..f2b3bf38b9 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/DataState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/DataState.as
@@ -38,8 +38,8 @@ package org.apache.royale.style.stylebeads.states.attribute
                public function set data(value:String):void
                {
                        _data = value;
-                       preDecorator = value + ":";
-                       postDecorator = "[" + value + "]";
+                       selectorDecorator = value + ":";
+                       ruleDecorator = "[" + value + "]";
                }
                private var _dataType:String;
 
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/InertState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/InertState.as
index be3a9ea6cc..70dd27cee1 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/InertState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/InertState.as
@@ -28,8 +28,8 @@ package org.apache.royale.style.stylebeads.states.attribute
                public function InertState()
                {
                        super();
-                       preDecorator = "inert:";
-                       postDecorator = ":is([inert], [inert] *)";
+                       selectorDecorator = "inert:";
+                       ruleDecorator = ":is([inert], [inert] *)";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/OpenState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/OpenState.as
index 86491f3631..93581e880a 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/OpenState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/OpenState.as
@@ -27,8 +27,8 @@ package org.apache.royale.style.stylebeads.states.attribute
                public function OpenState()
                {
                        super();
-                       preDecorator = "open:";
-                       postDecorator = ":is([open], :popover-open, :open)";
+                       selectorDecorator = "open:";
+                       ruleDecorator = ":is([open], :popover-open, :open)";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/RTLState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/RTLState.as
index 0eb47b5c75..a6cd6cad6b 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/RTLState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/attribute/RTLState.as
@@ -27,8 +27,8 @@ package org.apache.royale.style.stylebeads.states.attribute
                public function RTLState()
                {
                        super();
-                       preDecorator = "rtl:";
-                       postDecorator = 
":where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl]
 *)";
+                       selectorDecorator = "rtl:";
+                       ruleDecorator = 
":where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl]
 *)";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/AfterState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/AfterState.as
index e1041c691c..9e4255a769 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/AfterState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/AfterState.as
@@ -28,8 +28,8 @@ package org.apache.royale.style.stylebeads.states.pseudo
                public function AfterState()
                {
                        super();
-                       preDecorator = "after:";
-                       postDecorator = "::after";
+                       selectorDecorator = "after:";
+                       ruleDecorator = "::after";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/BackdropState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/BackdropState.as
index 462a7e0255..b66471231b 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/BackdropState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/BackdropState.as
@@ -25,8 +25,8 @@ package org.apache.royale.style.stylebeads.states.pseudo
                public function BackdropState()
                {
                        super();
-                       preDecorator = "backdrop:";
-                       postDecorator = "::backdrop";
+                       selectorDecorator = "backdrop:";
+                       ruleDecorator = "::backdrop";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/BeforeState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/BeforeState.as
index 3d3602006f..79ede71409 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/BeforeState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/BeforeState.as
@@ -28,8 +28,8 @@ package org.apache.royale.style.stylebeads.states.pseudo
                public function BeforeState()
                {
                        super();
-                       preDecorator = "before:";
-                       postDecorator = "::before";
+                       selectorDecorator = "before:";
+                       ruleDecorator = "::before";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FileState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FileState.as
index 08771f60e5..ec87fcb576 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FileState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FileState.as
@@ -25,8 +25,8 @@ package org.apache.royale.style.stylebeads.states.pseudo
                public function FileState()
                {
                        super();
-                       preDecorator = "file:";
-                       postDecorator = "::file-selector-button";
+                       selectorDecorator = "file:";
+                       ruleDecorator = "::file-selector-button";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FirstLetterState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FirstLetterState.as
index b07a2085f1..af4516bc96 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FirstLetterState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FirstLetterState.as
@@ -25,8 +25,8 @@ package org.apache.royale.style.stylebeads.states.pseudo
                public function FirstLetterState()
                {
                        super();
-                       preDecorator = "first-letter:";
-                       postDecorator = ":first-letter";
+                       selectorDecorator = "first-letter:";
+                       ruleDecorator = ":first-letter";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FirstLineState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FirstLineState.as
index b62e374aeb..9358f29c09 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FirstLineState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/FirstLineState.as
@@ -25,8 +25,8 @@ package org.apache.royale.style.stylebeads.states.pseudo
                public function FirstLineState()
                {
                        super();
-                       preDecorator = "first-line:";
-                       postDecorator = ":first-line";
+                       selectorDecorator = "first-line:";
+                       ruleDecorator = ":first-line";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/MarkerState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/MarkerState.as
index ef6178c021..1a7b5f8572 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/MarkerState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/MarkerState.as
@@ -25,8 +25,8 @@ package org.apache.royale.style.stylebeads.states.pseudo
                public function MarkerState()
                {
                        super();
-                       preDecorator = "marker:";
-                       postDecorator = "::marker";
+                       selectorDecorator = "marker:";
+                       ruleDecorator = "::marker";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/PlaceholderState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/PlaceholderState.as
index e6a34a1244..d256a6576c 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/PlaceholderState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/PlaceholderState.as
@@ -25,8 +25,8 @@ package org.apache.royale.style.stylebeads.states.pseudo
                public function PlaceholderState()
                {
                        super();
-                       preDecorator = "placeholder:";
-                       postDecorator = "::placeholder";
+                       selectorDecorator = "placeholder:";
+                       ruleDecorator = "::placeholder";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/SelectionState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/SelectionState.as
index c257cacda6..83ed022246 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/SelectionState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/pseudo/SelectionState.as
@@ -25,8 +25,8 @@ package org.apache.royale.style.stylebeads.states.pseudo
                public function SelectionState()
                {
                        super();
-                       preDecorator = "selection:";
-                       postDecorator = "::selection";
+                       selectorDecorator = "selection:";
+                       ruleDecorator = "::selection";
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/EvenState.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/util/StyleDecoration.as
similarity index 79%
copy from 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/EvenState.as
copy to 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/util/StyleDecoration.as
index 5099abeda3..0d0040fb06 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/EvenState.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/util/StyleDecoration.as
@@ -16,15 +16,16 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.style.stylebeads.states
+package org.apache.royale.style.util
 {
-       public class EvenState extends LeafDecorator
+       public class StyleDecoration
        {
-               public function EvenState()
+               public function StyleDecoration(type:String, decoration:String)
                {
-                       super();
-                       preDecorator = "even:";
-                       postDecorator = ":nth-child(2n)";
+                       this.type = type;
+                       this.decoration = decoration;
                }
-       }
+               public var type:String;
+               public var decoration:String;
+       }       
 }
\ No newline at end of file


Reply via email to