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 db3c93d3a1 Fixed styling. Added peer.
     new 592d5c1f23 Merge branch 'develop' of 
https://github.com/apache/royale-asjs into develop
db3c93d3a1 is described below

commit db3c93d3a11bbe265182177e2aa2d84e7fe8a71a
Author: Harbs <[email protected]>
AuthorDate: Tue Mar 10 00:16:40 2026 +0200

    Fixed styling. Added peer.
---
 .../Style/src/main/resources/basic-manifest.xml    | 17 +++++++++
 .../royale/org/apache/royale/style/StyleUIBase.as  |  9 +----
 .../royale/style/stylebeads/CompositeStyle.as      |  5 +--
 .../royale/style/stylebeads/ILeafStyleBead.as      | 11 ++++--
 .../apache/royale/style/stylebeads/IStyleBead.as   |  2 +-
 .../royale/style/stylebeads/LeafStyleBase.as       | 25 +++++++++++---
 .../royale/style/stylebeads/StyleBeadBase.as       |  8 +----
 .../royale/style/stylebeads/border/BorderRadius.as |  4 +--
 .../royale/style/stylebeads/border/BorderWidth.as  | 12 +++----
 .../royale/style/stylebeads/border/Outline.as      | 12 +++----
 .../apache/royale/style/stylebeads/flexgrid/Gap.as |  4 +--
 .../royale/style/stylebeads/flexgrid/GridColumn.as |  4 +--
 .../royale/style/stylebeads/flexgrid/GridRow.as    |  4 +--
 .../royale/style/stylebeads/layout/InsetBase.as    |  4 +--
 .../royale/style/stylebeads/spacing/Margin.as      |  4 +--
 .../royale/style/stylebeads/spacing/Padding.as     |  4 +--
 .../style/stylebeads/states/LeafDecorator.as       |  7 +++-
 .../states/{StyleStateBase.as => PeerPseudo.as}    | 40 ++++++++++++++++------
 .../style/stylebeads/states/StyleStateBase.as      |  6 +++-
 .../style/stylebeads/states/pseudo/AfterState.as   |  6 ++--
 .../stylebeads/states/pseudo/BackdropState.as      |  4 ++-
 .../style/stylebeads/states/pseudo/BeforeState.as  |  6 ++--
 .../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 ++-
 28 files changed, 148 insertions(+), 74 deletions(-)

diff --git a/frameworks/projects/Style/src/main/resources/basic-manifest.xml 
b/frameworks/projects/Style/src/main/resources/basic-manifest.xml
index 3f812da739..41855d9a00 100644
--- a/frameworks/projects/Style/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Style/src/main/resources/basic-manifest.xml
@@ -32,6 +32,23 @@
   <component id="MultiSelectionList" 
class="org.apache.royale.style.MultiSelectionList"/>
   <component id="Tree" class="org.apache.royale.style.Tree"/>
   <component id="DataItemRenderer" 
class="org.apache.royale.style.DataItemRenderer"/>
+  
+  <component id="DataState" 
class="org.apache.royale.style.stylebeads.states.attribute.DataState"/>
+  <component id="AriaState" 
class="org.apache.royale.style.stylebeads.states.attribute.AriaState"/>
+  <component id="InertState" 
class="org.apache.royale.style.stylebeads.states.attribute.InertState"/>
+  <component id="OpenState" 
class="org.apache.royale.style.stylebeads.states.attribute.OpenState"/>
+  <component id="RTLState" 
class="org.apache.royale.style.stylebeads.states.attribute.RTLState"/>
+  <component id="SelectedState" 
class="org.apache.royale.style.stylebeads.states.attribute.SelectedState"/>
+  <component id="AfterState" 
class="org.apache.royale.style.stylebeads.states.pseudo.AfterState"/>
+  <component id="BackdropState" 
class="org.apache.royale.style.stylebeads.states.pseudo.BackdropState"/>
+  <component id="BeforeState" 
class="org.apache.royale.style.stylebeads.states.pseudo.BeforeState"/>
+  <component id="FileState" 
class="org.apache.royale.style.stylebeads.states.pseudo.FileState"/>
+  <component id="FirstLetterState" 
class="org.apache.royale.style.stylebeads.states.pseudo.FirstLetterState"/>
+  <component id="FirstLineState" 
class="org.apache.royale.style.stylebeads.states.pseudo.FirstLineState"/>
+  <component id="MarkerState" 
class="org.apache.royale.style.stylebeads.states.pseudo.MarkerState"/>
+  <component id="PlaceholderState" 
class="org.apache.royale.style.stylebeads.states.pseudo.PlaceholderState"/>
+  <component id="SelectionState" 
class="org.apache.royale.style.stylebeads.states.pseudo.SelectionState"/>
+  <component id="PeerPseudo" 
class="org.apache.royale.style.stylebeads.states.PeerPseudo"/>
 
   <component id="BackgroundStyle" 
class="org.apache.royale.style.stylebeads.BackgroundStyle"/>
   <component id="ContainerPosition" 
class="org.apache.royale.style.stylebeads.ContainerPosition"/>
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/StyleUIBase.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/StyleUIBase.as
index 1b549944db..a9b1923527 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/StyleUIBase.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/StyleUIBase.as
@@ -238,15 +238,8 @@ package org.apache.royale.style
                }
                protected function applyStyle(styleBead:ILeafStyleBead):void
                {
-                       var selector:String = styleBead.selector;
+                       var selector:String = styleBead.getSelector();
                        utilityList.add(selector);
-                       if (!StyleManager.hasStyle(selector))
-                       {
-                               if(styleBead.parentQueryId)
-                                       
StyleManager.addGroupedRule(styleBead.parentQueryId, selector, styleBead.rule);
-                               else
-                                       StyleManager.addStyle(selector, 
styleBead.rule);
-                       }
                }
                public function toggleClass(classNameVal:String, 
add:Boolean):void
                {
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 14ca084afe..27ca8f455f 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
@@ -32,9 +32,10 @@ package org.apache.royale.style.stylebeads
                        super();
                }
                //TODO: Figure this out.
-               override public function 
decorateChildStyle(style:IStyleBead):void
+               override public function 
decorateChildStyle(style:ILeafStyleBead):void
                {
-
+                       if(parentStyle)
+                               parentStyle.decorateChildStyle(style);
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/ILeafStyleBead.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/ILeafStyleBead.as
index f63cdb3185..4d8c09a9ed 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/ILeafStyleBead.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/ILeafStyleBead.as
@@ -22,13 +22,20 @@ package org.apache.royale.style.stylebeads
        {
                function get value():*;
                function set value(value:*):void;
-               function get selector():String;
-               function get rule():String;
+               function getSelector():String;
+               function getRule():String;
                function get selectorBase():String;
                function get styleType():String;
                function get parentQueryId():String;
                function get unit():String;
                function set unit(value:String):void;
+               function get selectorPrefix():String;
+               function set selectorPrefix(value:String):void;
+               function get rulePrefix():String;
+               function set rulePrefix(value:String):void;
+               function get ruleSuffix():String;
+               function set ruleSuffix(value:String):void;
+
 
        }
 }
\ 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 603fda0f90..4f184e4696 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
@@ -34,6 +34,6 @@ package org.apache.royale.style.stylebeads
                function addStyleBead(bead:IStyleBead):void;
                function get parentStyle():IStyleBead;
                function set parentStyle(value:IStyleBead):void;
-               function decorateChildStyle(style:IStyleBead):void;
+               function decorateChildStyle(style:ILeafStyleBead):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 88c3734ad4..b9a2c633cb 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
@@ -23,6 +23,7 @@ package org.apache.royale.style.stylebeads
        import org.apache.royale.style.util.StyleData;
        import org.apache.royale.style.util.ThemeManager;
        import org.apache.royale.style.util.CSSUnit;
+       import org.apache.royale.style.util.StyleManager;
        /**
         * @royalesuppressexport
         */
@@ -40,6 +41,9 @@ package org.apache.royale.style.stylebeads
                }
                override public function getLeaves():Array
                {
+                       // Walk up the chain decorating the styles.
+                       if(parentStyle)
+                               parentStyle.decorateChildStyle(this);
                        return [this];
                }
                protected var _value:*;
@@ -152,13 +156,26 @@ package org.apache.royale.style.stylebeads
                        _calculatedSelector = sanitizeSelector(value);
                }
                protected var calculatedRuleValue:String;
-               public function get selector():String
+               public function getSelector():String
                {
                        if(!calculatedSelector)
                                return "";
-                       return selectorPrefix + selectorBase + "-" + 
calculatedSelector;
+                       
+                       var selector:String = selectorPrefix + selectorBase + 
"-" + calculatedSelector;
+                       /**
+                        * Always add the rule automatically when accessing the 
selector if needed.
+                        */
+                       if (!StyleManager.hasStyle(selector))
+                       {
+                               if(parentQueryId)
+                                       
StyleManager.addGroupedRule(parentQueryId, selector, getRule());
+                               else
+                                       StyleManager.addStyle(selector, 
getRule());
+                       }
+
+                       return selector;
                }
-               public function get rule():String
+               public function getRule():String
                {
                        if(!calculatedRuleValue)
                                return "";
@@ -245,7 +262,7 @@ package org.apache.royale.style.stylebeads
                {
                        _parentQueryId = value;
                }
-               override public function 
decorateChildStyle(style:IStyleBead):void
+               override public function 
decorateChildStyle(style:ILeafStyleBead):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 949e12e828..581a828c06 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
@@ -58,13 +58,7 @@ package org.apache.royale.style.stylebeads
                        for each(var style:IStyleBead in styles)
                        {
                                style.parentStyle = this;
-
                                retVal = retVal.concat(style.getLeaves());
-                               /**
-                                * We want to decorate styles from to bottom up,
-                                * so we do this after we recursively traverse 
down the the leaves.
-                                */
-                               decorateChildStyle(style);
                        }
                return retVal;
                }
@@ -95,7 +89,7 @@ package org.apache.royale.style.stylebeads
                {
                        _parentStyle = value;
                }
-               abstract public function 
decorateChildStyle(style:IStyleBead):void;
+               abstract public function 
decorateChildStyle(style:ILeafStyleBead):void;
                public function get isLeaf():Boolean
                {
                        return false;
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderRadius.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderRadius.as
index b71c25f9fc..24b5620e3c 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderRadius.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderRadius.as
@@ -188,9 +188,9 @@ import org.apache.royale.style.stylebeads.LeafStyleBase;
 
 class Radius extends LeafStyleBase
 {
-       public function Radius(selectorPrefix:String = "rounded", 
rulePrefix:String = "border-radius")
+       public function Radius(selectorBase:String = "rounded", ruleBase:String 
= "border-radius")
        {
-               super(selectorPrefix, rulePrefix);
+               super(selectorBase, ruleBase);
        }
        override public function set value(value:*):void
        {
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderWidth.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderWidth.as
index aea0d75452..3eef0d4f0d 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderWidth.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/BorderWidth.as
@@ -227,9 +227,9 @@ import org.apache.royale.style.stylebeads.LeafStyleBase;
 
 class Width extends LeafStyleBase
 {
-       public function Width(selectorPrefix:String = "border", 
rulePrefix:String = "border-width")
+       public function Width(selectorBase:String = "border", ruleBase:String = 
"border-width")
        {
-               super(selectorPrefix, rulePrefix);
+               super(selectorBase, ruleBase);
        }
        override public function set value(value:*):void
        {
@@ -237,19 +237,19 @@ class Width extends LeafStyleBase
                calculatedRuleValue = value;
                calculatedSelector = sanitizeSelector(value);
        }
-       override public function get selector():String
+       override public function getSelector():String
        {
                if(!calculatedSelector)
                        return selectorBase;
                
-               return super.selector;
+               return super.getSelector();
        }
-       override public function get rule():String
+       override public function getRule():String
        {
                if(!calculatedRuleValue)
                        return "1px";
                
-               return super.rule;
+               return super.getRule();
        }
 }
 class Top extends Width
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/Outline.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/Outline.as
index 0e52ac97dc..44e81076a0 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/Outline.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/border/Outline.as
@@ -150,14 +150,14 @@ class Style extends LeafStyleBase
                
assert(["solid","dashed","dotted","double","hidden","none"].indexOf(value) >= 
0, "The value must be a valid outline style: " + value);
                calculatedSelector = calculatedRuleValue = _value = value;
        }
-       override public function get rule():String
+       override public function getRule():String
        {
                // enable outline in in forced colors mode
                if(calculatedSelector == "hidden")
                {
                        return "outline: 2px solid transparent; outline-offset: 
2px;";
                }
-               return super.rule;
+               return super.getRule();
        }
 }
 class Width extends LeafStyleBase
@@ -172,18 +172,18 @@ class Width extends LeafStyleBase
                calculatedRuleValue = value;
                calculatedSelector = sanitizeSelector(value);
        }
-       override public function get selector():String
+       override public function getSelector():String
        {
                if(!calculatedSelector)
                        return selectorBase;
                
-               return super.selector;
+               return super.getSelector();
        }
-       override public function get rule():String
+       override public function getRule():String
        {
                if(!calculatedRuleValue)
                        return "1px";
                
-               return super.rule;
+               return super.getRule();
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Gap.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Gap.as
index be5421054e..64eada6ac3 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Gap.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Gap.as
@@ -25,9 +25,9 @@ package org.apache.royale.style.stylebeads.flexgrid
 
        public class Gap extends LeafStyleBase
        {
-               public function Gap(selectorPrefix:String="gap", 
rulePrefix:String="gap")
+               public function Gap(selectorBase:String="gap", 
ruleBase:String="gap")
                {
-                       super(selectorPrefix, rulePrefix);
+                       super(selectorBase, ruleBase);
                        // TODO: Is this the correct default?
                        unit = "rem";
 
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumn.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumn.as
index 094befa56b..1df3f47544 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumn.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumn.as
@@ -22,9 +22,9 @@ package org.apache.royale.style.stylebeads.flexgrid
 
        public class GridColumn extends LeafStyleBase
        {
-               public function GridColumn(selectorPrefix:String = "col", 
rulePrefix:String = "grid-column")
+               public function GridColumn(selectorBase:String = "col", 
ruleBase:String = "grid-column")
                {
-                       super(selectorPrefix, rulePrefix);
+                       super(selectorBase, ruleBase);
                }
 
                override public function set value(value:*):void
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRow.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRow.as
index dbbd56413a..840353785f 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRow.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRow.as
@@ -22,9 +22,9 @@ package org.apache.royale.style.stylebeads.flexgrid
 
        public class GridRow extends LeafStyleBase
        {
-               public function GridRow(selectorPrefix:String = "row", 
rulePrefix:String = "grid-row")
+               public function GridRow(selectorBase:String = "row", 
ruleBase:String = "grid-row")
                {
-                       super(selectorPrefix, rulePrefix);
+                       super(selectorBase, ruleBase);
                }
 
                override public function set value(value:*):void
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/layout/InsetBase.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/layout/InsetBase.as
index 55eaf2dcb3..f0f380808f 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/layout/InsetBase.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/layout/InsetBase.as
@@ -23,9 +23,9 @@ package org.apache.royale.style.stylebeads.layout
 
        public class InsetBase extends LeafStyleBase
        {
-               public function InsetBase(selectorPrefix:String, 
rulePrefix:String)
+               public function InsetBase(selectorBase:String, ruleBase:String)
                {
-                       super(selectorPrefix, rulePrefix);
+                       super(selectorBase, ruleBase);
                }
                private var savedPrefix:String;
                override public function set value(value:*):void
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/spacing/Margin.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/spacing/Margin.as
index 46de2feb05..a3f2ef28fb 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/spacing/Margin.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/spacing/Margin.as
@@ -251,9 +251,9 @@ import org.apache.royale.style.util.CSSUnit;
 
 class Marg extends LeafStyleBase
 {
-       public function Marg(selectorPrefix:String = "m", rulePrefix:String = 
"margin")
+       public function Marg(selectorBase:String = "m", ruleBase:String = 
"margin")
        {
-               super(selectorPrefix, rulePrefix);
+               super(selectorBase, ruleBase);
        }
        private function toSelector(value:String):String
        {
diff --git 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/spacing/Padding.as
 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/spacing/Padding.as
index 38cd91b88d..3f75570dac 100644
--- 
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/spacing/Padding.as
+++ 
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/spacing/Padding.as
@@ -249,9 +249,9 @@ import org.apache.royale.style.util.CSSUnit;
 
 class Pad extends LeafStyleBase
 {
-       public function Pad(selectorPrefix:String = "p", rulePrefix:String = 
"padding")
+       public function Pad(selectorBase:String = "p", ruleBase:String = 
"padding")
        {
-               super(selectorPrefix, rulePrefix);
+               super(selectorBase, ruleBase);
        }
        private function toSelector(value:String):String
        {
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 25ba2e4cff..600824237e 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
@@ -22,6 +22,7 @@ package org.apache.royale.style.stylebeads.states
        import org.apache.royale.style.stylebeads.StyleBeadBase;
        import org.apache.royale.debugging.assert;
        import org.apache.royale.style.stylebeads.LeafStyleBase;
+       import org.apache.royale.style.stylebeads.ILeafStyleBead;
 
        public class LeafDecorator extends StyleBeadBase
        {
@@ -32,16 +33,20 @@ package org.apache.royale.style.stylebeads.states
 
                protected var preDecorator:String;
                protected var postDecorator:String;
+               protected var leafStyle:LeafStyleBase;
                /**
                 * @royaleignorecoercion 
org.apache.royale.style.stylebeads.LeafStyleBase
                 */
-               override public function 
decorateChildStyle(style:IStyleBead):void
+               override public function 
decorateChildStyle(style:ILeafStyleBead):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;
+                       if(parentStyle)
+                               parentStyle.decorateChildStyle(style);
+
                }
        }
 }
\ 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/PeerPseudo.as
similarity index 54%
copy from 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/StyleStateBase.as
copy to 
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/states/PeerPseudo.as
index 3f54015f52..d096176158 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/PeerPseudo.as
@@ -18,24 +18,42 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.style.stylebeads.states
 {
-       import org.apache.royale.style.stylebeads.StyleBeadBase;
        import org.apache.royale.style.stylebeads.IStyleBead;
+       import org.apache.royale.style.stylebeads.ILeafStyleBead;
 
-       abstract public class StyleStateBase extends StyleBeadBase
+       public class PeerPseudo extends StyleStateBase
        {
-               public function StyleStateBase()
+               public function PeerPseudo()
                {
                        super();
                }
-
-               override public function 
decorateChildStyle(style:IStyleBead):void
+               private var _forState:String;
+               [Inspectable(category="General", enumeration="one,two,three", 
defaultValue="one")]
+               public function get forState():String
                {
-                       //TODO: Figure out what goes in here.
+                       return _forState;
                }
 
-               /**
-                * TODO: Figure out what goes in here.
-                */
-
+               public function set forState(value:String):void
+               {
+                       _forState = value;
+               }
+               override public function 
decorateChildStyle(style:ILeafStyleBead):void
+               {
+                       var selector:String = "peer-" + forState;
+                       style.selectorPrefix = selector + ":" + 
style.selectorPrefix;
+                       style.rulePrefix = selector + "\\:" +  style.rulePrefix;
+                       style.ruleSuffix = selector + ":" +  
":is(:where(.peer):" + forState + " ~ *)" + style.ruleSuffix;
+                       
+                       if(parentStyle)
+                               parentStyle.decorateChildStyle(style);
+               }
        }
-}
\ No newline at end of file
+}
+/**
+ .peer-checked\:border-blue-700 {
+  &:is(:where(.peer):checked ~ *) {
+    border-color: var(--color-blue-700);
+  }
+}
+ */
\ 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 3f54015f52..49ce2e49ef 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
@@ -20,6 +20,7 @@ package org.apache.royale.style.stylebeads.states
 {
        import org.apache.royale.style.stylebeads.StyleBeadBase;
        import org.apache.royale.style.stylebeads.IStyleBead;
+       import org.apache.royale.style.stylebeads.ILeafStyleBead;
 
        abstract public class StyleStateBase extends StyleBeadBase
        {
@@ -28,9 +29,12 @@ package org.apache.royale.style.stylebeads.states
                        super();
                }
 
-               override public function 
decorateChildStyle(style:IStyleBead):void
+               override public function 
decorateChildStyle(style:ILeafStyleBead):void
                {
                        //TODO: Figure out what goes in here.
+                       if(parentStyle)
+                               parentStyle.decorateChildStyle(style);
+
                }
 
                /**
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 2e1dce0eb0..e1041c691c 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
@@ -16,8 +16,10 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.style.stylebeads.states
+package org.apache.royale.style.stylebeads.states.pseudo
 {
+       import org.apache.royale.style.stylebeads.states.LeafDecorator;
+
        /**
         * Avoid using before or after unless an extra element is a problem.
         */
@@ -27,7 +29,7 @@ package org.apache.royale.style.stylebeads.states
                {
                        super();
                        preDecorator = "after:";
-                       postDecorator = ":after";
+                       postDecorator = "::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 e64f260383..462a7e0255 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
@@ -16,8 +16,10 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.style.stylebeads.states
+package org.apache.royale.style.stylebeads.states.pseudo
 {
+       import org.apache.royale.style.stylebeads.states.LeafDecorator;
+
        public class BackdropState extends LeafDecorator
        {
                public function BackdropState()
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 56d58a1681..3d3602006f 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
@@ -16,8 +16,10 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.style.stylebeads.states
+package org.apache.royale.style.stylebeads.states.pseudo
 {
+       import org.apache.royale.style.stylebeads.states.LeafDecorator;
+
        /**
         * Avoid using before or after unless an extra element is a problem.
         */
@@ -27,7 +29,7 @@ package org.apache.royale.style.stylebeads.states
                {
                        super();
                        preDecorator = "before:";
-                       postDecorator = ":before";
+                       postDecorator = "::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 118fa19f18..08771f60e5 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
@@ -16,8 +16,10 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.style.stylebeads.states
+package org.apache.royale.style.stylebeads.states.pseudo
 {
+       import org.apache.royale.style.stylebeads.states.LeafDecorator;
+
        public class FileState extends LeafDecorator
        {
                public function FileState()
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 4c70496208..b07a2085f1 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
@@ -16,8 +16,10 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.style.stylebeads.states
+package org.apache.royale.style.stylebeads.states.pseudo
 {
+       import org.apache.royale.style.stylebeads.states.LeafDecorator;
+
        public class FirstLetterState extends LeafDecorator
        {
                public function FirstLetterState()
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 0f6b7fd03f..b62e374aeb 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
@@ -16,8 +16,10 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.style.stylebeads.states
+package org.apache.royale.style.stylebeads.states.pseudo
 {
+       import org.apache.royale.style.stylebeads.states.LeafDecorator;
+
        public class FirstLineState extends LeafDecorator
        {
                public function FirstLineState()
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 1a65a385fa..ef6178c021 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
@@ -16,8 +16,10 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.style.stylebeads.states
+package org.apache.royale.style.stylebeads.states.pseudo
 {
+       import org.apache.royale.style.stylebeads.states.LeafDecorator;
+
        public class MarkerState extends LeafDecorator
        {
                public function MarkerState()
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 9f71f35176..e6a34a1244 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
@@ -16,8 +16,10 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.style.stylebeads.states
+package org.apache.royale.style.stylebeads.states.pseudo
 {
+       import org.apache.royale.style.stylebeads.states.LeafDecorator;
+
        public class PlaceholderState extends LeafDecorator
        {
                public function PlaceholderState()
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 d4a7cecf8d..c257cacda6 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
@@ -16,8 +16,10 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.style.stylebeads.states
+package org.apache.royale.style.stylebeads.states.pseudo
 {
+       import org.apache.royale.style.stylebeads.states.LeafDecorator;
+
        public class SelectionState extends LeafDecorator
        {
                public function SelectionState()

Reply via email to