royale-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aha...@apache.org
Subject [royale-asjs] 03/04: components and example of RoyaleWebSite
Date Fri, 22 Dec 2017 07:00:20 GMT
This is an automated email from the ASF dual-hosted git repository.

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

commit 32765b63d1262ce6d331f1ba84777d6dba4eb6e2
Author: Alex Harui <aharui@apache.org>
AuthorDate: Thu Dec 21 22:46:35 2017 -0800

    components and example of RoyaleWebSite
---
 examples/royale/RoyaleWebsite/asconfig.json        |  31 +++
 examples/royale/RoyaleWebsite/build.xml            |  64 ++++++
 examples/royale/RoyaleWebsite/pom.xml              |  74 +++++++
 .../src/main/config/compile-app-config.xml         |  28 +++
 .../src/main/resources/royale-index-template.html  |  32 +++
 .../src/main/royale/RoyaleWebsite.mxml             | 142 +++++++++++++
 frameworks/js/projects/RoyaleSiteJS/build.xml      | 124 +++++++++++
 .../src/main/config/compile-js-config.xml          |  96 +++++++++
 frameworks/projects/RoyaleSite/build.xml           | 132 ++++++++++++
 frameworks/projects/RoyaleSite/pom.xml             | 107 ++++++++++
 .../src/main/config/compile-swf-config.xml         |  94 +++++++++
 .../RoyaleSite/src/main/resources/defaults.css     | 228 +++++++++++++++++++++
 .../src/main/resources/royalesite-manifest.xml     |  33 +++
 .../royale/site/ASFCopyrightAttributionAndLinks.as |  65 ++++++
 .../royale/org/apache/royale/site/BigButton.as     | 128 ++++++++++++
 .../royale/org/apache/royale/site/CurvedTop.as     |  50 +++++
 .../org/apache/royale/site/ResponsiveTable.as      |  51 +++++
 .../org/apache/royale/site/ResponsiveTableTile.as  | 145 +++++++++++++
 .../royale/org/apache/royale/site/SocialButtons.as |  82 ++++++++
 .../org/apache/royale/site/TitledAnchorList.as     | 139 +++++++++++++
 .../main/royale/org/apache/royale/site/TopMenu.as  |  69 +++++++
 .../royale/org/apache/royale/site/TopMenuButton.as | 111 ++++++++++
 .../org/apache/royale/site/data/AnchorListData.as  |  75 +++++++
 .../ResponsiveTableTileContent.as                  |  66 ++++++
 .../ResponsiveTableTileIcon.as                     | 100 +++++++++
 .../ResponsiveTableTileText.as                     |  91 ++++++++
 .../ResponsiveTableTileTitle.as                    |  50 +++++
 27 files changed, 2407 insertions(+)

diff --git a/examples/royale/RoyaleWebsite/asconfig.json b/examples/royale/RoyaleWebsite/asconfig.json
new file mode 100644
index 0000000..4567458
--- /dev/null
+++ b/examples/royale/RoyaleWebsite/asconfig.json
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+{
+    "config": "royale",
+    "compilerOptions": {
+        "debug": false,
+        "targets": ["JSRoyale"],
+        "source-map": true
+    },
+    "additionalOptions": "-remove-circulars -js-output-optimization=skipAsCoercions -html-template=src/main/resources/mdl-js-index-template.html -compiler.exclude-defaults-css-files=HTML.swc:defaults.css",
+    "files":
+    [
+        "src/main/royale/MDLExample.mxml"
+    ]
+}
diff --git a/examples/royale/RoyaleWebsite/build.xml b/examples/royale/RoyaleWebsite/build.xml
new file mode 100644
index 0000000..d151a44
--- /dev/null
+++ b/examples/royale/RoyaleWebsite/build.xml
@@ -0,0 +1,64 @@
+<?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.
+
+-->
+
+
+<project name="RoyaleWebsite" default="main" basedir=".">
+    <property name="ROYALE_HOME" location="../../.."/>
+    <property name="example" value="RoyaleWebsite" />
+    
+    <property file="${ROYALE_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property file="${ROYALE_HOME}/build.properties"/>
+    <property name="ROYALE_HOME" value="${ROYALE_HOME}"/>
+
+    <include file="${basedir}/../../build_example.xml" />
+    
+    <target name="main" depends="clean,build_example.compile" description="Clean build of ${example}">
+        <mkdir dir="${basedir}/bin/js-debug/assets" />
+        <copy todir="${basedir}/bin/js-debug/assets" >
+            <fileset dir="${basedir}/src/main/resources/assets">
+                <include name="**" />
+            </fileset>
+        </copy>
+        <mkdir dir="${basedir}/bin/js-release/assets" />
+        <copy todir="${basedir}/bin/js-release/assets" >
+            <fileset dir="${basedir}/src/main/resources/assets">
+                <include name="**" />
+            </fileset>
+        </copy>
+    </target>
+    
+    <target name="clean">
+        <delete dir="${basedir}/bin" failonerror="false" />
+        <delete dir="${basedir}/bin-debug" failonerror="false" />
+        <delete dir="${basedir}/bin-release" failonerror="false" />
+        <delete dir="${basedir}/target" failonerror="false" />
+    </target>
+
+    <target name="examine" depends="build_example.get.browser">
+        <property name="which" value="debug" />
+        <echo message="See Material Design Lite components."/>
+        <exec executable="${browser}" dir="${basedir}/bin/js-${which}" failonerror="true">
+            <arg value="${basedir}/bin/js-${which}/index.html"/>
+        </exec>
+    </target>
+
+
+</project>
diff --git a/examples/royale/RoyaleWebsite/pom.xml b/examples/royale/RoyaleWebsite/pom.xml
new file mode 100644
index 0000000..aa04ad2
--- /dev/null
+++ b/examples/royale/RoyaleWebsite/pom.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.royale.examples</groupId>
+    <artifactId>examples-royale</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>MDLExample</artifactId>
+  <version>0.9.0-SNAPSHOT</version>
+  <packaging>swf</packaging>
+
+  <name>Apache Royale: Examples: Royale: MDLExample</name>
+
+  <properties>
+    <!-- Customize MDL colors using this the tool at : https://getmdl.io/customize/index.html -->
+    <primary>indigo</primary>
+    <accent>pink</accent>
+  </properties>
+
+  <build>
+    <sourceDirectory>src/main/royale</sourceDirectory>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>true</filtering>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.royale.compiler</groupId>
+        <artifactId>royale-maven-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <mainClass>App.mxml</mainClass>
+          <targets>JSRoyale</targets>
+          <htmlTemplate>${basedir}/target/javascript/bin/js-debug/mdl-js-index-template.html</htmlTemplate>
+          <additionalCompilerOptions>-compiler.exclude-defaults-css-files=Basic-0.9.0-SNAPSHOT-js.swc:defaults.css</additionalCompilerOptions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.royale.framework</groupId>
+      <artifactId>MaterialDesignLite</artifactId>
+      <version>0.9.0-SNAPSHOT</version>
+      <type>swc</type>
+      <classifier>js</classifier>
+    </dependency>
+  </dependencies>
+
+</project>
diff --git a/examples/royale/RoyaleWebsite/src/main/config/compile-app-config.xml b/examples/royale/RoyaleWebsite/src/main/config/compile-app-config.xml
new file mode 100644
index 0000000..fecd735
--- /dev/null
+++ b/examples/royale/RoyaleWebsite/src/main/config/compile-app-config.xml
@@ -0,0 +1,28 @@
+<!--
+
+  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.
+
+-->
+<royale-config>
+    <compiler>
+        <targets><target>JSRoyale</target></targets>
+        <exclude-defaults-css-files>
+            <filename>BasicJS.swc:defaults.css</filename>
+            <filename>Basic.swc:defaults.css</filename>
+        </exclude-defaults-css-files>
+    </compiler>
+    <html-template>../resources/royale-index-template.html</html-template>
+</royale-config>
diff --git a/examples/royale/RoyaleWebsite/src/main/resources/royale-index-template.html b/examples/royale/RoyaleWebsite/src/main/resources/royale-index-template.html
new file mode 100644
index 0000000..0d97bee
--- /dev/null
+++ b/examples/royale/RoyaleWebsite/src/main/resources/royale-index-template.html
@@ -0,0 +1,32 @@
+<!--
+  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.
+-->
+<!DOCTYPE html>
+<html>
+<head>
+	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+	<meta name="Royale Website Template">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
+    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
+    <link rel="stylesheet" href="RoyaleWebsite.css" />
+    <title>Apache Royale</title>
+${head}
+</head>
+<body>
+${body}
+</body>
+</html>
diff --git a/examples/royale/RoyaleWebsite/src/main/royale/RoyaleWebsite.mxml b/examples/royale/RoyaleWebsite/src/main/royale/RoyaleWebsite.mxml
new file mode 100644
index 0000000..bbd3fd6
--- /dev/null
+++ b/examples/royale/RoyaleWebsite/src/main/royale/RoyaleWebsite.mxml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+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.
+
+-->
+<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+                 xmlns="library://ns.apache.org/royale/html"
+                 xmlns:js="library://ns.apache.org/royale/basic"
+                 xmlns:rs="library://ns.apache.org/royale/site"
+                 xmlns:local="*">
+
+    <fx:Script>
+        <![CDATA[
+            
+        ]]>
+    </fx:Script>
+    <js:valuesImpl>
+        <js:SimpleCSSValuesImpl />
+    </js:valuesImpl>
+    
+    <js:initialView>
+        <js:View width="100%" height="100%" className="page">
+            <Div className="topbar">
+                <Img src="http://royale.codeoscopic.com/wp-content/uploads/2017/11/apache-royale-tm-logo-default.png" />
+                <rs:TopMenu>
+                    <rs:TopMenuButton href="features.html">FEATURES</rs:TopMenuButton>
+                    <rs:TopMenuButton href="tryitnow/index.html">TRY IT NOW</rs:TopMenuButton>
+                    <rs:TopMenuButton href="download.html">DOWNLOAD</rs:TopMenuButton>
+                    <rs:TopMenuButton href="documentation.html">DOCS</rs:TopMenuButton>
+                    <rs:TopMenuButton href="blog.html">BLOG</rs:TopMenuButton>
+                    <rs:TopMenuButton href="github.html">GITHUB</rs:TopMenuButton>
+                </rs:TopMenu>
+                <rs:SocialButtons />
+            </Div>
+            <H3>Designed for the future</H3>
+            <H2>Code Once.  Run Everywhere.</H2>
+            <P className="intro">
+                Apache Royale™ is a productive open source frontend application technology that allows you to code in MXML &amp; AS3 and output to different formats.
+            </P>
+            <Div className="big-buttons">
+                <rs:BigButton className="red-button" href="getstarted.html">GET STARTED</rs:BigButton>
+                <rs:BigButton className="blue-button" href="tryitnow/index.html">TRY IT NOW</rs:BigButton>
+            </Div>
+            <rs:CurvedTop>
+                <rs:ResponsiveTable>
+                    <rs:ResponsiveTableTile icon1="fa-university" title="Enterprise Class Level">
+                        Design &amp; Code in enterprise level languages and tools to ensure the level of quality your applications and clients demand
+                    </rs:ResponsiveTableTile>
+                    <rs:ResponsiveTableTile icon1="fa-desktop" icon2="fa-mobile" title="Multiple Targets &amp; Devices">
+                        Maintain your knowledge and workflows intact for years to come and let Royale provide you with the right output you need.
+                    </rs:ResponsiveTableTile>
+                    <rs:ResponsiveTableTile icon1="fa-clock-o" title="Fast Performance &amp; Lightweight">
+                        Royale Apps are light and performant thanks to the PAYG (Pay as you go) philosophy combined with their Composition architecture (Strands &amp; Beads).
+                    </rs:ResponsiveTableTile>
+                    <rs:ResponsiveTableTile icon1="fa-code" title="OOP &amp; Declarative Programming">
+                        Code in a robust OOP language (AS3) and build your interfaces in a fast declarative XML language (MXML).
+                    </rs:ResponsiveTableTile>
+                    <rs:ResponsiveTableTile icon1="fa-exchange" title="Advanced Communications">
+                        Royale support AMF communications a performant way to share object graphs with your backend of choice.
+                    </rs:ResponsiveTableTile>
+                    <rs:ResponsiveTableTile icon1="fa-users" title="Supported by Apache">
+                        A great Open Source Foundation ensures long term evolution with the technologies you choose far beyond market &amp; corporate trends
+                    </rs:ResponsiveTableTile>
+                </rs:ResponsiveTable>
+            </rs:CurvedTop>
+            <Div className="orange-box">
+                <H1 className="npm-title">Install Apache Royale via npm</H1>
+                <H2 className="npm-command">npm install royale -g</H2>
+                <P className="fa orange-box-text">After global installation, the following compiler tools will be available for you to use: mxmlc, compc, asjsc, asjscompc, asnodec, and externc.</P>
+                <P className="fa orange-box-text">Usage:</P>
+                <P className="orange-box-code">mxmlc &lt;path to main.mxml file&gt;<br />
+                asjsc &lt;path to main.as file&gt;</P>
+                <Div className="centerButton">
+                    <rs:BigButton icon="fa-external-link" className="white-border-button"
+                        href="tryitnow/index.html">LEARN MORE ABOUT</rs:BigButton>
+                </Div>
+            </Div>
+            <Div className="footer">
+                <Div className="footer-column">
+                    <rs:TitledAnchorList title="APACHE ROYALE" titleClassName="apacheroyale">
+                        <rs:AnchorListData href="index.html">Home</rs:AnchorListData>
+                        <rs:AnchorListData href="features.html">Features</rs:AnchorListData>
+                        <rs:AnchorListData href="tryitnow/index.html">Try it now</rs:AnchorListData>
+                        <rs:AnchorListData href="download.html">Download</rs:AnchorListData>
+                        <rs:AnchorListData href="showcase.html">Showcase</rs:AnchorListData>
+                        <rs:AnchorListData href="blog.html">Blog</rs:AnchorListData>
+                        <rs:AnchorListData href="team.html">Team</rs:AnchorListData>
+                        <rs:AnchorListData href="royalenpm.html">Royale in npm</rs:AnchorListData>
+                        <rs:AnchorListData href="license.html">License</rs:AnchorListData>
+                    </rs:TitledAnchorList>
+                </Div>
+                <Div className="footer-column">
+                    <rs:TitledAnchorList title="DOCUMENTATION" titleClassName="documentation">
+                        <rs:AnchorListData href="index.html">Getting Started</rs:AnchorListData>
+                        <rs:AnchorListData href="docs.html">Docs</rs:AnchorListData>
+                        <rs:AnchorListData href="reference/index.html">Reference</rs:AnchorListData>
+                        <rs:AnchorListData href="wiki.html">Wiki</rs:AnchorListData>
+                    </rs:TitledAnchorList>
+                    <rs:TitledAnchorList title="COMMUNITY" titleClassName="community">
+                        <rs:AnchorListData href="contribute.html">Get Involved</rs:AnchorListData>
+                        <rs:AnchorListData href="mailinglists.html">MailingLists</rs:AnchorListData>
+                        <rs:AnchorListData href="faq.html">FAQ</rs:AnchorListData>
+                    </rs:TitledAnchorList>
+                </Div>
+                <Div className="footer-column">
+                    <rs:TitledAnchorList title="DEVELOPMENT" titleClassName="development">
+                        <rs:AnchorListData href="github.html">Github</rs:AnchorListData>
+                        <rs:AnchorListData href="source.html">Source Code</rs:AnchorListData>
+                        <rs:AnchorListData href="issues.html">Issues</rs:AnchorListData>
+                    </rs:TitledAnchorList>
+                    <rs:TitledAnchorList title="APACHE" titleClassName="apache">
+                        <rs:AnchorListData href="http://www.apache.org/">Apache</rs:AnchorListData>
+                        <rs:AnchorListData href="http://www.apache.org/donations.html">Donations</rs:AnchorListData>
+                        <rs:AnchorListData href="http://www.apache.org/thanks.html">Sponsorship</rs:AnchorListData>
+                        <rs:AnchorListData href="http://www.apache.org/thanks.html">Thanks</rs:AnchorListData>
+                    </rs:TitledAnchorList>
+                </Div>
+                <Div className="aboutusdiv" >
+                    <P className="aboutus">ABOUT US</P>
+                    <P><img class="aboutus-logo" src="http://royale.codeoscopic.com/wp-content/uploads/2017/10/apache-royale-logo-footer-circle-grey.svg"/>Apache Royale™ is a highly productive open source application technology for building expressive frontend applications that outputs to different formats and deploy consistently on all major browsers, desktops and devices.</P>
+                    <P><img class="aboutus-apache-logo" src="http://royale.codeoscopic.com/wp-content/uploads/2017/10/Apache_PoweredBy.svg" />
+                    Apache Royale™, Apache™ and the Apache feather logo™ are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. Read more about our privacy policy on our Privacy Policy page.</P>
+                </Div>
+            </Div>
+            <rs:ASFCopyrightAttributionAndLinks />
+        </js:View>
+    </js:initialView>
+</js:Application>
diff --git a/frameworks/js/projects/RoyaleSiteJS/build.xml b/frameworks/js/projects/RoyaleSiteJS/build.xml
new file mode 100644
index 0000000..5463375
--- /dev/null
+++ b/frameworks/js/projects/RoyaleSiteJS/build.xml
@@ -0,0 +1,124 @@
+<?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.
+
+-->
+
+
+<project name="RoyaleSiteJS" default="main" basedir=".">
+    <property name="ROYALE_HOME" location="../../../.."/>
+    
+    <property file="${ROYALE_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property file="${ROYALE_HOME}/build.properties"/>
+    <property name="ROYALE_HOME" value="${ROYALE_HOME}"/>
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    <echo file="${basedir}/${target.name}.properties">target.name.nojs=${ant.project.name}</echo>
+    <replaceregexp file="${basedir}/${target.name}.properties" match="(.*)JS$" replace="\1" flags="m" />
+    <property file="${basedir}/${target.name}.properties"/>
+    <delete file="${basedir}/${target.name}.properties"/>
+    
+    <target name="main" depends="clean,check-compiler,compile" description="Full build of ${ant.project.name}.swc">
+    </target>
+    
+    <target name="clean">
+        <delete failonerror="false">
+            <fileset dir="${ROYALE_HOME}/frameworks/js/libs">
+                <include name="${target.name}"/>
+            </fileset>
+        </delete>
+        <delete failonerror="false" includeemptydirs="true">
+            <fileset dir="${basedir}/target">
+                <include name="**/**"/>
+            </fileset>
+        </delete>
+    </target>
+    
+    <target name="compile" depends="check-compiler">
+        <echo message="Cross-compiling ${target.name}"/>
+        <echo message="ROYALE_COMPILER_HOME: ${ROYALE_COMPILER_HOME}"/>
+        <mkdir dir="${basedir}/target/generated-sources/royale"/>
+        <java jar="${ROYALE_COMPILER_HOME}/lib/compc.jar" fork="true" >
+            <jvmarg value="-Xmx384m" />
+            <jvmarg value="-Dsun.io.useCanonCaches=false" />
+            <jvmarg value="-Droyalelib=${ROYALE_HOME}/frameworks" />
+            <arg value="+royalelib=${ROYALE_HOME}/frameworks" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-compiler.targets=SWF,JSRoyale" />
+            <arg value="-output=${basedir}/target/${target.name}" />
+            <arg value="-load-config=${ROYALE_HOME}/frameworks/js-config.xml" />
+            <arg value="-load-config+=${basedir}/src/main/config/compile-js-config.xml" />
+        </java>
+        <copy file="${basedir}/target/${target.name}" tofile="${ROYALE_HOME}/frameworks/js/libs/${target.name}" />
+    </target>
+    
+    <target name="copy-js" >
+        <mkdir dir="${ROYALE_HOME}/frameworks/js/generated-sources"/>
+        <copy todir="${ROYALE_HOME}/frameworks/js/generated-sources">
+            <fileset dir="${basedir}/target/generated-sources/royale">
+                <include name="**/**" />
+            </fileset>
+        </copy>
+    </target>
+    
+    <target name="check-compiler" depends="check-compiler-home, check-transpiler-home">
+        <path id="lib.path">
+            <fileset dir="${ROYALE_COMPILER_HOME}/lib" includes="compiler-royaleTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-compiler-home" unless="ROYALE_SWF_COMPILER_HOME"
+        description="Check ROYALE_SWF_COMPILER_HOME is a directory.">
+        
+        <echo message="ROYALE_SWF_COMPILER_HOME is ${env.ROYALE_SWF_COMPILER_HOME}"/>
+        
+        <available file="${env.ROYALE_SWF_COMPILER_HOME}/lib/compiler-mxmlc.jar"
+        type="file"
+        property="ROYALE_SWF_COMPILER_HOME"
+        value="${env.ROYALE_SWF_COMPILER_HOME}"/>
+        
+        <available file="${ROYALE_HOME}/../royale-compiler/compiler/lib/compiler-mxmlc.jar"
+        type="file"
+        property="ROYALE_SWF_COMPILER_HOME"
+        value="${ROYALE_HOME}/../royale-compiler/compiler"/>
+        
+        <fail message="ROYALE_SWF_COMPILER_HOME must be set to a folder with a lib sub-folder containing compiler-mxmlc.jar such as the compiler folder in royale-compiler repo or a Royale SDK folder"
+        unless="ROYALE_SWF_COMPILER_HOME"/>
+    </target>
+    
+    <target name="check-transpiler-home" unless="ROYALE_COMPILER_HOME"
+        description="Check ROYALE_SWF_COMPILER_HOME is a directory.">
+        
+        <echo message="ROYALE_COMPILER_HOME is ${env.ROYALE_COMPILER_HOME}"/>
+        
+        <available file="${env.ROYALE_COMPILER_HOME}/lib/jsc.jar"
+        type="file"
+        property="ROYALE_COMPILER_HOME"
+        value="${env.ROYALE_COMPILER_HOME}"/>
+        
+        <available file="${ROYALE_HOME}/../royale-compiler/compiler-jx/lib/jsc.jar"
+        type="file"
+        property="ROYALE_COMPILER_HOME"
+        value="${ROYALE_HOME}/../royale-compiler/compiler-jx"/>
+        
+        <fail message="ROYALE_COMPILER_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in royale-compiler repo or the js folder of a Royale SDK"
+        unless="ROYALE_COMPILER_HOME"/>
+    </target>
+    
+</project>
diff --git a/frameworks/js/projects/RoyaleSiteJS/src/main/config/compile-js-config.xml b/frameworks/js/projects/RoyaleSiteJS/src/main/config/compile-js-config.xml
new file mode 100644
index 0000000..04938ba
--- /dev/null
+++ b/frameworks/js/projects/RoyaleSiteJS/src/main/config/compile-js-config.xml
@@ -0,0 +1,96 @@
+<!--
+
+  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.
+
+-->
+<royale-config>
+
+    <compiler>
+        <accessible>false</accessible>
+        
+        <!-- build both SWF and JS. -->
+        <targets>
+            <target>SWF</target>
+            <target>JSRoyale</target>
+        </targets>
+        <strict-xml>true</strict-xml>
+        
+		<mxml>
+			<children-as-data>true</children-as-data>
+		</mxml>
+		<binding-value-change-event>org.apache.royale.events.ValueChangeEvent</binding-value-change-event>
+		<binding-value-change-event-kind>org.apache.royale.events.ValueChangeEvent</binding-value-change-event-kind>
+		<binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+        <define>
+            <name>COMPILE::SWF</name>
+            <value>false</value>
+        </define>
+        <define>
+            <name>COMPILE::JS</name>
+            <value>true</value>
+        </define>
+
+        <keep-as3-metadata>
+          <name>Bindable</name>
+          <name>Managed</name>
+          <name>ChangeEvent</name>
+          <name>NonCommittingChangeEvent</name>
+          <name>Transient</name>
+          <name>Mixin</name>
+        </keep-as3-metadata>
+	  
+        <locale/>
+        
+        <!-- overwrite the default library-path setting -->
+        <library-path>
+            <path-element>../../../../../../../js/libs/GCL.swc</path-element>
+            <!-- asjscompc won't 'link' these classes in, but will list their requires
+                 if these swcs are on the external-library-path then their requires
+                 will not be listed -->
+            <path-element>../../../../../libs/CoreJS.swc</path-element>
+            <path-element>../../../../../libs/BasicJS.swc</path-element>
+            <path-element>../../../../../libs/HTMLJS.swc</path-element>
+        </library-path>
+        
+        <namespaces>
+            <namespace>
+                <uri>library://ns.apache.org/royale/site</uri>
+                <manifest>../../../../../../projects/RoyaleSite/src/main/resources/royalesite-manifest.xml</manifest>
+            </namespace>
+        </namespaces>
+        
+        <source-path>
+            <path-element>../../../../../../projects/RoyaleSite/src/main/royale</path-element>
+        </source-path>
+        
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+    
+    <include-file>
+        <name>defaults.css</name>
+        <path>../../../../../../projects/RoyaleSite/src/main/resources/defaults.css</path>
+    </include-file>
+    
+    <include-sources>
+    </include-sources>
+    
+    <include-namespaces>
+        <uri>library://ns.apache.org/royale/site</uri>
+    </include-namespaces>
+        
+
+</royale-config>
diff --git a/frameworks/projects/RoyaleSite/build.xml b/frameworks/projects/RoyaleSite/build.xml
new file mode 100644
index 0000000..c39dc70
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/build.xml
@@ -0,0 +1,132 @@
+<?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.
+
+-->
+
+
+<project name="RoyaleSite" default="main" basedir=".">
+    <property name="ROYALE_HOME" location="../../.."/>
+
+    <property file="${ROYALE_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property name="swf.version" value="17" />
+    <property name="playerglobal.version" value="11.4" />
+	<property file="${ROYALE_HOME}/build.properties"/>
+    <property name="ROYALE_HOME" value="${ROYALE_HOME}"/>
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,compile,compile-js,copy-swc,test" description="Full build of ${ant.project.name}.swc">
+    </target>
+    
+    <target name="compile-js">
+        <ant dir="${ROYALE_HOME}/frameworks/js/projects/${ant.project.name}JS/" inheritAll="false" >
+            <property name="ROYALE_SWF_COMPILER_HOME" value="${ROYALE_SWF_COMPILER_HOME}"/>
+            <property name="ROYALE_COMPILER_HOME" value="${ROYALE_COMPILER_HOME}"/>
+            <property name="ROYALE_HOME" value="${ROYALE_HOME}"/>
+        </ant>
+    </target>
+        
+    <target name="copy-swc" if="env.AIR_HOME">
+        <copy file="${basedir}/target/${target.name}" tofile="${ROYALE_HOME}/frameworks/libs/${target.name}" />
+    </target>
+    
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/royale/build.xml" />
+            </not>
+        </condition>
+    </target>
+    
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/royale" />
+    </target>
+    
+    <target name="clean">
+        <delete failonerror="false">
+            <fileset dir="${ROYALE_HOME}/frameworks/libs">
+                <include name="${target.name}"/>
+            </fileset>
+        </delete>
+        <delete failonerror="false" includeemptydirs="true">
+            <fileset dir="${basedir}/target">
+                <include name="**/**"/>
+            </fileset>
+        </delete>
+        <antcall target="clean-tests" />
+    </target>
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/royale" target="clean"/>
+    </target>
+    
+    <target name="compile" description="Compiles .as files into .swc" if="env.AIR_HOME">
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
+        <echo message="ROYALE_HOME: ${ROYALE_HOME}"/>
+        <echo message="ROYALE_SWF_COMPILER_HOME: ${ROYALE_SWF_COMPILER_HOME}"/>
+        <echo message="ROYALE_COMPILER_HOME: ${ROYALE_COMPILER_HOME}"/>
+        
+        <java jar="${ROYALE_COMPILER_HOME}/lib/compc.jar" fork="true" >
+            <jvmarg value="-Xmx384m" />
+            <jvmarg value="-Dsun.io.useCanonCaches=false" />
+            <jvmarg value="-Droyalelib=${ROYALE_HOME}/frameworks" />
+            <arg value="+royalelib=${ROYALE_HOME}/frameworks" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-compiler.targets=SWF,JSRoyale" />
+            <arg value="-output=${basedir}/target/${target.name}" />
+            <arg value="-load-config=${basedir}/src/main/config/compile-swf-config.xml" />
+            <arg value="-js-load-config=${ROYALE_HOME}/frameworks/js-config.xml" />
+            <arg value="-js-load-config+=${basedir}/../../js/projects/${ant.project.name}JS/src/main/config/compile-js-config.xml" />
+        </java>
+    </target>
+    
+    <target name="check-compiler" depends="check-compiler-home,check-transpiler-home">
+        <path id="lib.path">
+            <fileset dir="${ROYALE_COMPILER_HOME}/lib" includes="compiler-royaleTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-compiler-home"
+        description="Set ROYALE_SWF_COMPILER_HOME to point at the compiler.">
+        
+        <available file="${ROYALE_HOME}/lib/compiler-mxmlc.jar"
+        type="file"
+        property="ROYALE_SWF_COMPILER_HOME"
+        value="${ROYALE_HOME}"/>
+        
+        <fail message="ROYALE_SWF_COMPILER_HOME must be set to a folder with a lib sub-folder containing compiler-mxmlc.jar such as the compiler folder in royale-compiler repo or the root of a Royale SDK"
+        unless="ROYALE_SWF_COMPILER_HOME"/>
+    </target>
+    
+    <target name="check-transpiler-home"
+        description="Set ROYALE_COMPILER_HOME to point at the cross-compiler.">
+        
+        <available file="${ROYALE_HOME}/js/lib/jsc.jar"
+        type="file"
+        property="ROYALE_COMPILER_HOME"
+        value="${ROYALE_HOME}/js"/>
+        
+        <fail message="ROYALE_COMPILER_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in royale-compiler repo or the js folder of a Royale SDK"
+        unless="ROYALE_COMPILER_HOME"/>
+    </target>
+    
+</project>
diff --git a/frameworks/projects/RoyaleSite/pom.xml b/frameworks/projects/RoyaleSite/pom.xml
new file mode 100644
index 0000000..f1919d6
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/pom.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.royale.framework</groupId>
+    <artifactId>projects</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>Mobile</artifactId>
+  <version>0.9.0-SNAPSHOT</version>
+  <packaging>swc</packaging>
+
+  <name>Apache Royale: Framework: Libs: RoyaleSite</name>
+
+  <build>
+    <sourceDirectory>src/main/royale</sourceDirectory>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.royale.compiler</groupId>
+        <artifactId>royale-maven-plugin</artifactId>
+        <version>${royale.compiler.version}</version>
+        <extensions>true</extensions>
+        <configuration>
+          <namespaces>
+            <namespace>
+              <uri>library://ns.apache.org/royale/site</uri>
+              <manifest>${project.basedir}/src/main/resources/royalesite-manifest.xml</manifest>
+            </namespace>
+          </namespaces>
+          <includeFiles>
+            <include-file>
+              <name>defaults.css</name>
+              <path>../src/main/resources/defaults.css</path>
+            </include-file>
+          </includeFiles>
+          <skipExtern>true</skipExtern>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.royale.framework</groupId>
+      <artifactId>Core</artifactId>
+      <version>0.9.0-SNAPSHOT</version>
+      <type>swc</type>
+      <classifier>swf</classifier>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.royale.framework</groupId>
+      <artifactId>Core</artifactId>
+      <version>0.9.0-SNAPSHOT</version>
+      <type>swc</type>
+      <classifier>js</classifier>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.royale.framework</groupId>
+      <artifactId>Graphics</artifactId>
+      <version>0.9.0-SNAPSHOT</version>
+      <type>swc</type>
+      <classifier>swf</classifier>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.royale.framework</groupId>
+      <artifactId>Graphics</artifactId>
+      <version>0.9.0-SNAPSHOT</version>
+      <type>swc</type>
+      <classifier>js</classifier>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.royale.framework</groupId>
+      <artifactId>Basic</artifactId>
+      <version>0.9.0-SNAPSHOT</version>
+      <type>swc</type>
+      <classifier>swf</classifier>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.royale.framework</groupId>
+      <artifactId>Basic</artifactId>
+      <version>0.9.0-SNAPSHOT</version>
+      <type>swc</type>
+      <classifier>js</classifier>
+    </dependency>
+  </dependencies>
+
+</project>
diff --git a/frameworks/projects/RoyaleSite/src/main/config/compile-swf-config.xml b/frameworks/projects/RoyaleSite/src/main/config/compile-swf-config.xml
new file mode 100644
index 0000000..67b5fbc
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/config/compile-swf-config.xml
@@ -0,0 +1,94 @@
+<!--
+
+  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.
+
+-->
+<royale-config>
+
+    <compiler>
+        <accessible>false</accessible>
+        
+        <!-- build both SWF and JS. -->
+        <targets>
+            <target>SWF</target>
+            <target>JSRoyale</target>
+        </targets>
+        <strict-xml>true</strict-xml>
+
+        <external-library-path>
+            <path-element>${env.AIR_HOME}/frameworks/libs/air/airglobal.swc</path-element>
+            <path-element>../../../../../libs/Core.swc</path-element>
+            <path-element>../../../../../libs/Basic.swc</path-element>
+            <path-element>../../../../../libs/HTML.swc</path-element>
+        </external-library-path>
+        
+        <allow-subclass-overrides>true</allow-subclass-overrides>
+		<mxml>
+			<children-as-data>true</children-as-data>
+		</mxml>
+		<binding-value-change-event>org.apache.royale.events.ValueChangeEvent</binding-value-change-event>
+		<binding-value-change-event-kind>org.apache.royale.events.ValueChangeEvent</binding-value-change-event-kind>
+		<binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+        <define>
+            <name>COMPILE::SWF</name>
+            <value>true</value>
+        </define>
+        <define>
+            <name>COMPILE::JS</name>
+            <value>false</value>
+        </define>
+
+        <keep-as3-metadata>
+          <name>Bindable</name>
+          <name>Managed</name>
+          <name>ChangeEvent</name>
+          <name>NonCommittingChangeEvent</name>
+          <name>Transient</name>
+          <name>Mixin</name>
+        </keep-as3-metadata>
+	  
+        <locale/>
+        
+        <library-path/>
+
+        <namespaces>
+            <namespace>
+                <uri>library://ns.apache.org/royale/site</uri>
+                <manifest>../resources/royalesite-manifest.xml</manifest>
+            </namespace>
+        </namespaces>
+        
+        <source-path>
+            <path-element>../royale</path-element>
+        </source-path>
+        
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+    
+    <include-file>
+        <name>defaults.css</name>
+        <path>../resources/defaults.css</path>
+    </include-file>
+
+    <include-namespaces>
+        <uri>library://ns.apache.org/royale/site</uri>
+    </include-namespaces>
+        
+    <target-player>${playerglobal.version}</target-player>
+	
+
+</royale-config>
diff --git a/frameworks/projects/RoyaleSite/src/main/resources/defaults.css b/frameworks/projects/RoyaleSite/src/main/resources/defaults.css
new file mode 100644
index 0000000..234b365
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/resources/defaults.css
@@ -0,0 +1,228 @@
+/**
+ * Licensed 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.
+ */
+
+@namespace "library://ns.apache.org/royale/site";
+
+ASFCopyrightAttributionAndLinks
+{
+	text-align: center;
+	font-family: Verdana, Geneva, sans-serif;
+	font-size: 10px;
+}
+
+CurvedTop {
+	background-color: #ffffff;
+	border-top-right-radius: 50% 20px;
+	border-top-left-radius: 50% 20px;
+	border-color: #ffffff;
+	border-style: solid none none none;
+	width: 100%;
+	padding: 30px;
+}
+
+ResponsiveTable {
+	display: flex;
+	flex-wrap: wrap;
+}
+
+ResponsiveTableTile {
+	width: 350px;
+}
+
+.ResponsiveTableTileText {
+	margin-left: 60px;
+	margin-top: 16px;
+}
+
+.ResponsiveTableTileIcon {
+	font-size: 40px;
+	float: left;
+}
+
+.ResponsiveTableTileTitle {
+	color: #00ffff;
+}
+
+.ResponsiveTableTextContent {
+}
+
+.big-buttons {
+	
+}
+
+BigButton {
+	border-radius: 100px;
+	padding: 30px;
+	margin: 20px;
+	display: inline-block;
+}
+
+.BigButtonContent {
+	color: #ffffff;
+	text-decoration: none;
+}
+
+.red-button {
+	background-color: #ff0000;
+	border-color: #ff0000;
+}
+
+.blue-button {
+	background-color: #0000ff;
+	border-color: #0000ff;
+}
+
+.centerButton {
+	display: flex;
+	justify-content: center;
+}
+
+.white-border-button {
+	border-color: #fff;
+	border-style: solid;
+}
+
+.intro {
+	width: 40%;
+	font-family:Verdana, Geneva, sans-serif;
+}
+
+.page {
+	width: 100%;
+	background-color: #cccccc;
+	background-image: url('http://royale.codeoscopic.com/wp-content/uploads/2017/10/isometric-devices-light-curve-1920x1025.png');
+	background-size: 100%;
+	background-repeat: no-repeat;
+}
+
+SocialButtons {
+	display: inline;
+	position: absolute;
+	right: 0px;
+}
+
+.SocialButton {
+	display: inline;
+	margin-right: 20px;
+}
+
+.topbar {
+	width: 100%;
+}
+
+TopMenu {
+	display: inline-block;
+	vertical-align: top;
+	list-style: none;
+}
+
+TopMenuButton {
+	display: inline;
+	margin-right: 20px;
+	font-size: 12px;
+}
+
+.TopMenuButtonContent {
+	text-decoration: none;
+}
+
+.orange-box {
+	background-color: #F93;
+	width: 100%;
+	padding-top: 20px;
+	padding-bottom: 20px;
+}
+
+.orange-box-text {
+	margin: 20px 200px;
+}
+
+.orange-box-code {
+	font-family: "Courier New", Courier, monospace;
+	background-color: #FC0;
+	text-align: left;
+	margin: 20px 200px;
+}
+
+.npm-title {
+	color: #fff;
+	text-align: center;
+}
+
+.npm-command {
+	background-color: #000;
+	color: #fff;
+	text-align: center;
+	margin: 20px 300px;
+}
+
+.apache {
+	color: #f0f;
+}
+
+.apacheroyale {
+	color: #f00;
+}
+
+.documentation {
+	color: #000;
+}
+
+.development {
+	color: #ff0;
+}
+
+.community {
+	color: #0f0;
+}
+
+.footer {
+	width: 100%;
+	display: flex;
+	flex-wrap: wrap;
+	justify-content: space-between;
+	font-family: Verdana, Geneva, sans-serif;
+}
+
+.footer-column {
+}
+
+TitledAnchorList {
+	list-style: none;
+}
+
+.AnchorListContent {
+	text-decoration: none;
+}
+
+.aboutusdiv {
+	min-width: 150px;
+	flex-basis: 40%;
+	flex-grow: 1;
+}
+
+.aboutus {
+	color: #000;
+}
+
+.aboutus-logo {
+	float: left;
+	width: 100px;
+}
+
+.aboutus-apache-logo {
+	float: right;
+	width: 100px;
+}
+
diff --git a/frameworks/projects/RoyaleSite/src/main/resources/royalesite-manifest.xml b/frameworks/projects/RoyaleSite/src/main/resources/royalesite-manifest.xml
new file mode 100644
index 0000000..4731370
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/resources/royalesite-manifest.xml
@@ -0,0 +1,33 @@
+<?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.
+
+-->
+
+
+<componentPackage>
+    <component id="AnchorListData" class="org.apache.royale.site.data.AnchorListData" />
+    <component id="ASFCopyrightAttributionAndLinks" class="org.apache.royale.site.ASFCopyrightAttributionAndLinks" />
+    <component id="BigButton" class="org.apache.royale.site.BigButton" />
+    <component id="CurvedTop" class="org.apache.royale.site.CurvedTop" />
+    <component id="ResponsiveTable" class="org.apache.royale.site.ResponsiveTable" />
+    <component id="ResponsiveTableTile" class="org.apache.royale.site.ResponsiveTableTile" />
+    <component id="SocialButtons" class="org.apache.royale.site.SocialButtons" />
+    <component id="TitledAnchorList" class="org.apache.royale.site.TitledAnchorList" />
+    <component id="TopMenu" class="org.apache.royale.site.TopMenu" />
+    <component id="TopMenuButton" class="org.apache.royale.site.TopMenuButton" />
+</componentPackage>
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/ASFCopyrightAttributionAndLinks.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/ASFCopyrightAttributionAndLinks.as
new file mode 100644
index 0000000..bdfd029
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/ASFCopyrightAttributionAndLinks.as
@@ -0,0 +1,65 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site
+{	
+	import org.apache.royale.core.UIBase;
+    COMPILE::JS
+    {
+        import org.apache.royale.core.WrappedHTMLElement;
+    }
+	
+	/**
+	 * The ASFCopyrightAttributionAndLinks displays an 
+     * attribution for the Apache Software Foundation.
+	 * It is used at the very bottom of each page on the Apache Royale site
+	 * where it says 'Copyright © 2017 The Apache Software Foundation, 
+	 * Licensed under the Apache License, Version 2.0.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class ASFCopyrightAttributionAndLinks extends UIBase
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function ASFCopyrightAttributionAndLinks()
+		{
+			super();
+			
+			typeNames = "ASFCopyrightAttributionAndLinks";
+		}
+		
+		COMPILE::JS
+		override protected function createElement():WrappedHTMLElement
+		{
+			super.createElement();
+			element.innerHTML = "Copyright © 2017 <a href='http://www.apache.org'>The Apache Software Foundation</a>, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0'>Apache License, Version 2.0</a>";
+			return element;
+		}
+		
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/BigButton.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/BigButton.as
new file mode 100644
index 0000000..26cc8c9
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/BigButton.as
@@ -0,0 +1,128 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site
+{	
+	import org.apache.royale.core.UIBase;
+    COMPILE::JS
+    {
+        import org.apache.royale.core.WrappedHTMLElement;
+        import org.apache.royale.html.util.addElementToWrapper;
+    }
+	
+    [DefaultProperty("htmlText")]
+    
+	/**
+	 * The BigButton is a large rounded button used in the
+     * Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class BigButton extends UIBase
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function BigButton()
+		{
+			super();
+			
+			typeNames = "BigButton";
+		}
+		
+        private var _htmlText:String;
+        
+        /**
+         * the html content for the tile.
+         */
+        public function get htmlText():String
+        {
+            return _htmlText;
+        }
+        public function set htmlText(value:String):void
+        {
+            _htmlText = value;
+        }
+        
+        private var _href:String;
+        
+        /**
+         * the href for the button.
+         */
+        public function get href():String
+        {
+            return _href;
+        }
+        public function set href(value:String):void
+        {
+            _href = value;
+        }
+        
+        private var _icon:String;
+        
+        /**
+         * the FontAwesome 'style' (e.g. fa_university)
+         * for the first icon in the tile.
+         */
+        public function get icon():String
+        {
+            return _icon;
+        }
+        public function set icon(value:String):void
+        {
+            _icon = value;
+        }
+
+        /**
+         * @return The actual element to be parented.
+         * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+         * @royaleignorecoercion HTMLAnchorElement
+         */
+        COMPILE::JS
+		override protected function createElement():WrappedHTMLElement
+		{
+            addElementToWrapper(this,'div');
+            return element;
+        }
+        
+        /**
+         * @royaleignorecoercion HTMLAnchorElement
+         */
+        COMPILE::JS
+        override public function addedToParent():void
+        {
+            super.addedToParent();
+            var anchor:HTMLAnchorElement = document.createElement("a") as HTMLAnchorElement;
+            anchor.href = href;
+            anchor.textContent = htmlText;
+            anchor.className = "BigButtonContent";
+            element.appendChild(anchor);
+            if (icon)
+                className += " " + icon;
+		}
+		
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/CurvedTop.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/CurvedTop.as
new file mode 100644
index 0000000..d454b7f
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/CurvedTop.as
@@ -0,0 +1,50 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site
+{	
+	import org.apache.royale.html.Group;
+	
+	/**
+	 * The CurvedTop displays a container with a curved top.
+	 * It is used on the home page of the Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class CurvedTop extends Group
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function CurvedTop()
+		{
+			super();
+			
+			typeNames = "CurvedTop";
+		}
+				
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/ResponsiveTable.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/ResponsiveTable.as
new file mode 100644
index 0000000..04a825e
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/ResponsiveTable.as
@@ -0,0 +1,51 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site
+{	
+	import org.apache.royale.html.Group;
+	
+	/**
+	 * The ResponsiveTable displays an container that wraps a
+	 * set of ResponsiveTableTiles in row order.
+	 * It is used on the home page of the Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class ResponsiveTable extends Group
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function ResponsiveTable()
+		{
+			super();
+			
+			typeNames = "ResponsiveTable";
+		}
+				
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/ResponsiveTableTile.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/ResponsiveTableTile.as
new file mode 100644
index 0000000..575c366
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/ResponsiveTableTile.as
@@ -0,0 +1,145 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site
+{	
+	import org.apache.royale.core.UIBase;
+    import org.apache.royale.site.responsiveTableClasses.ResponsiveTableTileIcon;
+    import org.apache.royale.site.responsiveTableClasses.ResponsiveTableTileText;
+    COMPILE::JS
+    {
+        import org.apache.royale.core.WrappedHTMLElement;
+        import org.apache.royale.html.util.addElementToWrapper;
+    }
+	
+	[DefaultProperty("htmlText")]
+	
+	/**
+	 * The ResponsiveTableTile displays a tile with one
+	 * or two icons a title, and some content.
+	 * It is used on the home page of the Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class ResponsiveTableTile extends UIBase
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function ResponsiveTableTile()
+		{
+			super();
+			
+			typeNames = "ResponsiveTableTile";
+		}
+		
+		private var _icon1:String;
+		
+		/**
+		 * the FontAwesome 'style' (e.g. fa_university)
+		 * for the first icon in the tile.
+		 */
+		public function get icon1():String
+		{
+			return _icon1;
+		}
+		public function set icon1(value:String):void
+		{
+			_icon1 = value;
+		}
+				
+		private var _icon2:String;
+		
+		/**
+		 * the FontAwesome 'style' (e.g. fa_mobile)
+		 * for the second icon in the tile.
+		 */
+		public function get icon2():String
+		{
+			return _icon2;
+		}
+		public function set icon2(value:String):void
+		{
+			_icon2 = value;
+		}
+		
+		private var _title:String;
+		
+		/**
+		 * the title for the tile.
+		 */
+		public function get title():String
+		{
+			return _title;
+		}
+		public function set title(value:String):void
+		{
+			_title = value;
+		}
+
+		private var _htmlText:String;
+		
+		/**
+		 * the html content for the tile.
+		 */
+		public function get htmlText():String
+		{
+			return _htmlText;
+		}
+		public function set htmlText(value:String):void
+		{
+			_htmlText = value;
+		}
+		
+        /**
+         * @return The actual element to be parented.
+         * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+         */
+        COMPILE::JS
+        override protected function createElement():WrappedHTMLElement
+        {
+            addElementToWrapper(this,'div');
+            return element;
+        }
+        
+		private var icons:ResponsiveTableTileIcon;
+		private var textContent:ResponsiveTableTileText;
+		
+		override public function addedToParent():void
+		{
+			super.addedToParent();
+			icons = new ResponsiveTableTileIcon();
+			icons.icon1 = icon1;
+			icons.icon2 = icon2;
+            addElement(icons);
+			textContent = new ResponsiveTableTileText;
+			textContent.title = title;
+			textContent.htmlText = htmlText;
+            addElement(textContent);
+		}
+		
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/SocialButtons.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/SocialButtons.as
new file mode 100644
index 0000000..42a5abb
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/SocialButtons.as
@@ -0,0 +1,82 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site
+{	
+	import org.apache.royale.core.UIBase;
+    COMPILE::JS
+    {
+        import org.apache.royale.core.WrappedHTMLElement;
+    }
+	
+	/**
+	 * The SocialButtons is set of social media related
+     * buttons used in the
+     * Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class SocialButtons extends UIBase
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function SocialButtons()
+		{
+			super();
+			
+			typeNames = "SocialButtons";
+		}
+		
+
+        /**
+         * @return The actual element to be parented.
+         * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+         * @royaleignorecoercion HTMLUListElement
+         * @royaleignorecoercion HTMLLIElement
+         */
+        COMPILE::JS
+		override protected function createElement():WrappedHTMLElement
+		{
+            var ul:HTMLUListElement = document.createElement("ul") as HTMLUListElement;
+            element = ul as WrappedHTMLElement;
+            var li:HTMLLIElement = document.createElement("li") as HTMLLIElement;
+            li.className = "fa SocialButton fa-search";
+            li.innerHTML = "<a href='search.html'></a>";
+            element.appendChild(li);
+            li = document.createElement("li") as HTMLLIElement;
+            li.className = "fa SocialButton fa-share-alt";
+            li.innerHTML = "<a href='share.html'></a>";
+            element.appendChild(li);
+            li = document.createElement("li") as HTMLLIElement;
+            li.className = "fa SocialButton fa-th";
+            li.innerHTML = "<a href='menu.html'></a>";
+            element.appendChild(li);
+			return element;
+		}
+		
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/TitledAnchorList.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/TitledAnchorList.as
new file mode 100644
index 0000000..d7cf0ed
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/TitledAnchorList.as
@@ -0,0 +1,139 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site
+{	
+	import org.apache.royale.core.UIBase;
+    import org.apache.royale.site.data.AnchorListData;
+    COMPILE::JS
+    {
+        import org.apache.royale.core.WrappedHTMLElement;
+    }
+	
+    [DefaultProperty("list")]
+    
+	/**
+	 * The TitledAnchorList displays a title with a
+	 * list of anchors below it.
+	 * It is used on the home page of the Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class TitledAnchorList extends UIBase
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function TitledAnchorList()
+		{
+			super();
+			
+			typeNames = "TitledAnchorList";
+		}
+		
+		private var _title:String;
+		
+		/**
+		 * the title for the tile.
+		 */
+		public function get title():String
+		{
+			return _title;
+		}
+		public function set title(value:String):void
+		{
+			_title = value;
+		}
+
+        private var _titleClassName:String;
+        
+        /**
+         * the className for the tile.
+         */
+        public function get titleClassName():String
+        {
+            return _titleClassName;
+        }
+        public function set titleClassName(value:String):void
+        {
+            _titleClassName = value;
+        }
+        
+		private var _list:Array;
+		
+		/**
+		 * the array of AnchorListData for the list.
+		 */
+		public function get list():Array
+		{
+			return _list;
+		}
+		public function set list(value:Array):void
+		{
+            _list = value;
+		}
+		
+        /**
+         * @return The actual element to be parented.
+         * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+         * @royaleignorecoercion HTMLUListElement
+         */
+        COMPILE::JS
+        override protected function createElement():WrappedHTMLElement
+        {
+            var ul:HTMLUListElement = document.createElement("ul") as HTMLUListElement;
+            element = ul as WrappedHTMLElement;
+            return element;
+        }
+        
+        /**
+         * @royaleignorecoercion HTMLAnchorElement
+         * @royaleignorecoercion HTMLLIElement
+         */
+        COMPILE::JS
+		protected function addedToParent():void
+		{
+			super.addedToParent();
+            var li:HTMLLIElement = document.createElement("li") as HTMLLIElement;
+            li.className = titleClassName;
+            li.innerHTML = title;
+            element.appendChild(li);
+            var n:int = list.length;
+            for (var i:int = 0; i < n; i++)
+            {
+                var data:AnchorListData = list[i] as AnchorListData;
+                li = document.createElement("li") as HTMLLIElement;
+                var anchor:HTMLAnchorElement = document.createElement("a") as HTMLAnchorElement;
+                anchor.href = data.href;
+                anchor.innerHTML = data.htmlText;
+                anchor.className = "AnchorListContent";
+                li.appendChild(anchor);
+                element.appendChild(li);
+            }                
+		}
+		
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/TopMenu.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/TopMenu.as
new file mode 100644
index 0000000..5e3a924
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/TopMenu.as
@@ -0,0 +1,69 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site
+{	
+	import org.apache.royale.html.Group;
+    COMPILE::JS
+    {
+        import org.apache.royale.core.WrappedHTMLElement;
+    }
+	
+	/**
+	 * The TopMenu is set of buttons at the top
+     * of the
+     * Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class TopMenu extends Group
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function TopMenu()
+		{
+			super();
+			
+			typeNames = "TopMenu";
+		}
+		
+
+        /**
+         * @return The actual element to be parented.
+         * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+         * @royaleignorecoercion HTMLUListElement
+         */
+        COMPILE::JS
+		override protected function createElement():WrappedHTMLElement
+		{
+            var ul:HTMLUListElement = document.createElement("ul") as HTMLUListElement;
+            element = ul as WrappedHTMLElement;
+			return element;
+		}
+		
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/TopMenuButton.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/TopMenuButton.as
new file mode 100644
index 0000000..d0e3b4b
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/TopMenuButton.as
@@ -0,0 +1,111 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site
+{	
+	import org.apache.royale.core.UIBase;
+    COMPILE::JS
+    {
+        import org.apache.royale.core.WrappedHTMLElement;
+    }
+    
+    [DefaultProperty("htmlText")]
+    
+	/**
+	 * The TopMenuButton is a button used in the TopMenu in the
+     * Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class TopMenuButton extends UIBase
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function TopMenuButton()
+		{
+			super();
+			
+			typeNames = "TopMenuButton";
+		}
+		
+        private var _htmlText:String;
+        
+        /**
+         * the html content for the tile.
+         */
+        public function get htmlText():String
+        {
+            return _htmlText;
+        }
+        public function set htmlText(value:String):void
+        {
+            _htmlText = value;
+        }
+        
+        private var _href:String;
+        
+        /**
+         * the href for the button.
+         */
+        public function get href():String
+        {
+            return _href;
+        }
+        public function set href(value:String):void
+        {
+            _href = value;
+        }
+        
+        /**
+         * @return The actual element to be parented.
+         * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+         * @royaleignorecoercion HTMLLIElement
+         */
+        COMPILE::JS
+		override protected function createElement():WrappedHTMLElement
+		{
+            var li:HTMLLIElement = document.createElement("li") as HTMLLIElement;
+            element = li as WrappedHTMLElement;
+            return element;
+        }
+        
+        /**
+         * @royaleignorecoercion HTMLAnchorElement
+         */
+        COMPILE::JS
+        override public function addedToParent():void
+        {
+            super.addedToParent();
+            var anchor:HTMLAnchorElement = document.createElement("a") as HTMLAnchorElement;
+            anchor.className = "TopMenuButtonContent";
+            anchor.href = href;
+            anchor.textContent = htmlText;
+            element.appendChild(anchor);
+		}
+		
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/data/AnchorListData.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/data/AnchorListData.as
new file mode 100644
index 0000000..bcb2762
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/data/AnchorListData.as
@@ -0,0 +1,75 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site.data
+{	
+	
+    [DefaultProperty("htmlText")]
+    
+	/**
+	 * The AnchorListData is used as data for a list of anchors,
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class AnchorListData
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function AnchorListData()
+		{
+			super();
+		}
+		
+        private var _htmlText:String;
+        
+        /**
+         * the html content.
+         */
+        public function get htmlText():String
+        {
+            return _htmlText;
+        }
+        public function set htmlText(value:String):void
+        {
+            _htmlText = value;
+        }
+        
+        private var _href:String;
+        
+        /**
+         * the href.
+         */
+        public function get href():String
+        {
+            return _href;
+        }
+        public function set href(value:String):void
+        {
+            _href = value;
+        }
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileContent.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileContent.as
new file mode 100644
index 0000000..87f7da0
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileContent.as
@@ -0,0 +1,66 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site.responsiveTableClasses
+{	
+	import org.apache.royale.core.UIBase;
+    COMPILE::JS
+    {
+        import org.apache.royale.core.WrappedHTMLElement;
+    }
+	
+	/**
+	 * The ResponsiveTableTileContent displays the text in a
+	 * ResponsiveTableTile.
+	 * It is used on the home page of the Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class ResponsiveTableTileContent extends UIBase
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function ResponsiveTableTileContent()
+		{
+			super();
+			
+			typeNames = "ResponsiveTableTileContent";
+		}
+		
+        /**
+         * @return The actual element to be parented.
+         * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+         */
+        COMPILE::JS
+		override protected function createElement():WrappedHTMLElement
+		{
+            element = document.createElement("p") as WrappedHTMLElement;
+            return element;
+		}
+		
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileIcon.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileIcon.as
new file mode 100644
index 0000000..91c85c3
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileIcon.as
@@ -0,0 +1,100 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site.responsiveTableClasses
+{	
+	import org.apache.royale.core.UIBase;
+	
+	/**
+	 * The ResponsiveTableTileIcon displays the icons in a
+	 * ResponsiveTableTile.
+	 * It is used on the home page of the Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class ResponsiveTableTileIcon extends UIBase
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function ResponsiveTableTileIcon()
+		{
+			super();
+			
+			typeNames = "ResponsiveTableTileIcon";
+		}
+		
+		private var _icon1:String;
+		
+		/**
+		 * the FontAwesome 'style' (e.g. fa_university)
+		 * for the first icon in the tile.
+		 */
+		public function get icon1():String
+		{
+			return _icon1;
+		}
+		public function set icon1(value:String):void
+		{
+			_icon1 = value;
+		}
+				
+		private var _icon2:String;
+		
+		/**
+		 * the FontAwesome 'style' (e.g. fa_mobile)
+		 * for the second icon in the tile.
+		 */
+		public function get icon2():String
+		{
+			return _icon2;
+		}
+		public function set icon2(value:String):void
+		{
+			_icon2 = value;
+		}
+		
+        /**
+         * @return The actual element to be parented.
+         * @royaleignorecoercion HTMLSpanElement
+         */
+        COMPILE::JS
+		override public function addedToParent():void
+		{
+			super.addedToParent();
+			var span:HTMLSpanElement = document.createElement("span") as HTMLSpanElement;
+            span.className = "fa " + icon1;
+            element.appendChild(span);
+            if (icon2)
+            {
+                span = document.createElement("span") as HTMLSpanElement;
+                span.className = "fa " + icon2;
+                element.appendChild(span);
+            }
+		}
+		
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileText.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileText.as
new file mode 100644
index 0000000..dffeff6
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileText.as
@@ -0,0 +1,91 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site.responsiveTableClasses
+{	
+	import org.apache.royale.core.UIBase;
+	
+	/**
+	 * The ResponsiveTableTileText displays the text in a
+	 * ResponsiveTableTile.
+	 * It is used on the home page of the Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class ResponsiveTableTileText extends UIBase
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function ResponsiveTableTileText()
+		{
+			super();
+			
+			typeNames = "ResponsiveTableTileText";
+		}
+		
+        private var _title:String;
+        
+        /**
+         * the title for the tile.
+         */
+        public function get title():String
+        {
+            return _title;
+        }
+        public function set title(value:String):void
+        {
+            _title = value;
+        }
+        
+        private var _htmlText:String;
+        
+        /**
+         * the html content for the tile.
+         */
+        public function get htmlText():String
+        {
+            return _htmlText;
+        }
+        public function set htmlText(value:String):void
+        {
+            _htmlText = value;
+        }
+        		
+        COMPILE::JS
+		override public function addedToParent():void
+		{
+			super.addedToParent();
+			var titleElement:ResponsiveTableTileTitle = new ResponsiveTableTileTitle();
+            titleElement.element.innerHTML = title;
+            addElement(titleElement);
+            var content:ResponsiveTableTileContent = new ResponsiveTableTileContent();
+            content.element.innerHTML = htmlText;
+            addElement(content);
+		}
+		
+	}
+}
diff --git a/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileTitle.as b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileTitle.as
new file mode 100644
index 0000000..45b3ce5
--- /dev/null
+++ b/frameworks/projects/RoyaleSite/src/main/royale/org/apache/royale/site/responsiveTableClasses/ResponsiveTableTileTitle.as
@@ -0,0 +1,50 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.site.responsiveTableClasses
+{	
+	import org.apache.royale.html.elements.Span;
+	
+	/**
+	 * The ResponsiveTableTileTitle displays the title in a
+	 * ResponsiveTableTile.
+	 * It is used on the home page of the Apache Royale site.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class ResponsiveTableTileTitle extends Span
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function ResponsiveTableTileTitle()
+		{
+			super();
+			
+			typeNames = "ResponsiveTableTileTitle";
+		}
+	}
+}

-- 
To stop receiving notification emails like this one, please contact
"commits@royale.apache.org" <commits@royale.apache.org>.

Mime
View raw message