diff --git a/.gitignore b/.gitignore
index 81baed62b59a..885bf06f2e05 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,3 +34,18 @@ yarn-debug.log*
# Ignore default target directory for the npm package 'ui5-schemas'
.tmp
+
+
+# Playground
+packages/playground/_site/
+packages/playground/.sass-cache/
+packages/playground/assets/js/ui5-webcomponents/
+
+packages/playground/docs/components
+!packages/playground/docs/components/component.md
+
+packages/playground/docs/documentation
+!packages/playground/docs/documentation/documentation.md
+
+packages/playground/docs/tutorials
+!packages/playground/docs/tutorials/tutorials.md
diff --git a/.travis.yml b/.travis.yml
index 5ee218feff66..7b5ec5fc4c27 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,6 +10,10 @@ before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash
- export PATH="$HOME/.yarn/bin:$PATH"
+ # Playground dependecies:
+ - gem install jekyll -v 3.8.6
+ - gem install jekyll-seo-tag
+
script:
- yarn build
- yarn test
diff --git a/deploy/deploy.sh b/deploy/deploy.sh
index b9787d2b544c..9ac265d2876e 100644
--- a/deploy/deploy.sh
+++ b/deploy/deploy.sh
@@ -56,7 +56,7 @@ if [ "$TRAVIS_BRANCH" == "$TRAVIS_LATEST_RELEASE_WEBSITE_BRANCH" ]; then
# Run the build again so rollup can generate the correct public path urls
cd $TRAVIS_BUILD_DIR
- DEPLOY_PUBLIC_PATH=https://sap.github.io/ui5-webcomponents/ yarn build
+ DEPLOY_PUBLIC_PATH=https://sap.github.io/ui5-webcomponents/assets/js/ui5-webcomponents/ yarn build:playground
# Move master build folder to gh-pages folder
cp -Rf $TRAVIS_BUILD_DIR/packages/playground/dist/* gh-pages
@@ -85,7 +85,7 @@ if [ "$TRAVIS_BRANCH" == "$TRAVIS_LATEST_RELEASE_WEBSITE_BRANCH" ]; then
# Run the build again so rollup can generate the correct public path urls
cd $TRAVIS_BUILD_DIR
- DEPLOY_PUBLIC_PATH=https://sap.github.io/ui5-webcomponents/master yarn build
+ DEPLOY_PUBLIC_PATH=https://sap.github.io/ui5-webcomponents/master/assets/js/ui5-webcomponents/ yarn build:playground
# Move master build folder to gh-pages folder
cp -Rf $TRAVIS_BUILD_DIR/packages/playground/dist/* gh-pages/master
diff --git a/docs/Angular-tutorial.md b/docs/Angular-tutorial.md
index ec059f3473f6..de7407640d3d 100644
--- a/docs/Angular-tutorial.md
+++ b/docs/Angular-tutorial.md
@@ -2,30 +2,36 @@
In this tutorial you will learn how to add UI5 Web Components to your application. The UI5 Web Components can be added both to new Angular applications, as well as already existing ones.
-## Step 1: Install Angular CLI:
-```
+## Step 1: Install Angular CLI
+
+```bash
npm install -g @angular/cli
```
-## Step 2: Create New Angular Application:
-```
+## Step 2: Create New Angular Application
+
+```bash
ng new ui5-web-components-application
cd ui5-web-components-application
```
-## Step 3: Add UI5 Web Components:
-```
+## Step 3: Add UI5 Web Components
+
+```bash
npm install @ui5/webcomponents --save
```
## Step 4. Allow the Use of Custom Elements in Angular
+
Before using UI5 Web Components, you have to allow the use of custom elements in Angular. To do so, you have to import CUSTOM_ELEMENTS_SCHEMA in ```app.module.ts``` :
+
```js
import { ..., CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
```
+
After importing it, you have to add it to the schemas array:
-```
+```js
imports: [
...
],
@@ -34,35 +40,42 @@ schemas: [
]
```
-## Step 5. Import the Components That You Are Going to Use:
+## Step 5. Import the Components That You Are Going to Use
+
```js
import "@ui5/webcomponents/dist/Button";
```
-## Step 6. Use the Imported Elements in Your Application:
+## Step 6. Use the Imported Elements in Your Application
+
```html
Hello world!
```
-## Step 7. Launch the Application:
-```
+## Step 7. Launch the Application
+
+```bash
ng serve -o
```
-## Additional:
+## Additional
-### Two-Way Data Binding:
+### Two-Way Data Binding
You can use two-way data binding with the following components: CheckBox, RadioButton, Input, DatePicker, Switch, TextArea.
In order to use it, you have to use a library called [Origami](https://github.com/hotforfeature/origami), that provides advanced support for two-way data binding of custom elements.
Example:
-1. Install Origami:
-```
+
+1. Install Origami:
+
+```bash
npm install @codebakery/origami
```
+
2. Import the OrigamiFormsModule from Origami
-```
+
+```js
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { OrigamiFormsModule } from '@codebakery/origami/forms';
@@ -78,6 +91,7 @@ export class AppModule {}
```
3. Use Origami in your template:
+
```html
```
diff --git a/docs/Configuration.md b/docs/Configuration.md
index f25f2667204f..067d77e37740 100644
--- a/docs/Configuration.md
+++ b/docs/Configuration.md
@@ -16,7 +16,7 @@ calendarType | Gregorian, Islamic, Buddhist, Japanese, Persian | Gregorian |
[formatSettings](#formatSettings)| See the [Format settings](#formatSettings) section below | Empty object | Allows to override locale-specific configuration
-###RTL
+### RTL
When the `rtl` setting is set to `true`, UI5 Web Components will adjust their styling accordingly.
However, you should also set the HTML attribute `dir` to `rtl` on the `body` or `html` or any other relevant region of your application
diff --git a/docs/HowToUse.md b/docs/How To Use.md
similarity index 100%
rename from docs/HowToUse.md
rename to docs/How To Use.md
diff --git a/docs/PublicModuleImports.md b/docs/Public Module Imports.md
similarity index 100%
rename from docs/PublicModuleImports.md
rename to docs/Public Module Imports.md
diff --git a/docs/React-tutorial.md b/docs/React-tutorial.md
index 5630b34b4bac..20040e696538 100644
--- a/docs/React-tutorial.md
+++ b/docs/React-tutorial.md
@@ -2,36 +2,40 @@
In this tutorial you will learn how to add UI5 Web Components to your application. The UI5 Web Components can be added both to new React applications, as well as already existing ones.
-## Step 1. Start New Application. For Example with create-react-app:
-```
+## Step 1. Start New Application. For Example with create-react-app
+
+```bash
npx create-react-app ui5-web-components-application
cd ui5-web-components-application
```
-## Step 2. Add UI5 Web Components:
-```
+## Step 2. Add UI5 Web Components
+
+```bash
npm install @ui5/webcomponents --save
```
-## Step 3. Import the Components That You Are Going to Use:
+## Step 3. Import the Components That You Are Going to Use
+
```js
import "@ui5/webcomponents/dist/Button";
```
-## Step 4. Use the Imported Elements in Your Application:
+## Step 4. Use the Imported Elements in Your Application
+
```html
Hello world!
```
-## Step 5. Launch the Application:
-```
+## Step 5. Launch the Application
+
+```bash
yarn start
```
+## Additional
-## Additional:
-
-### Event Binding:
+### Event Binding
In order to use the events, provided by UI5 Web Components, currently you need to get a ref to the component, because React doesn't support custom events. Here is an example of what you need to do in order to use the events provided by UI5 Web Components:
@@ -57,7 +61,7 @@ class Home extends Component {
}
```
-### Bolean Properties Binding:
+### Bolean Properties Binding
For boolean properties like ```collapsed``` in ```ui5-panel```, instead of setting true or false, you have to take care of the presence of the property. Here is an example:
@@ -65,4 +69,4 @@ For boolean properties like ```collapsed``` in ```ui5-panel```, instead of sett
-```
\ No newline at end of file
+```
diff --git a/docs/Vue-tutorial.md b/docs/Vue-tutorial.md
index 5781b54fe5c6..b771c6232fa9 100644
--- a/docs/Vue-tutorial.md
+++ b/docs/Vue-tutorial.md
@@ -2,49 +2,57 @@
In this tutorial you will learn how to add UI5 Web Components to your application. The UI5 Web Components can be added both to new VueJS applications, as well as already existing ones.
-## Step 1. Install Vue CLI:
-```
+## Step 1. Install Vue CLI
+
+```bash
npm install -g @vue/cli
```
-## Step 2. Init New App:
-```
+## Step 2. Init New App
+
+```bash
vue create ui5-web-components-application
cd ui5-web-components-application
```
-## Step 3. Add UI5 Web Components:
-```
+## Step 3. Add UI5 Web Components
+
+```bash
npm install @ui5/webcomponents --save
```
## Step 4. Add UI5 Web Components to Vue ignoredElement
+
Add the following line to your ```main.js``` file:
```js
Vue.config.ignoredElements = [/^ui5-/];
```
-## Step 5. Import the Components That You Are Going to Use:
+## Step 5. Import the Components That You Are Going to Use
+
```js
import "@ui5/webcomponents/dist/Button";
```
-## Step 6. Use the Imported Elements in Your Application:
+## Step 6. Use the Imported Elements in Your Application
+
```html
Hello world!
```
-## Step 7: Launch the Application:
-```
+## Step 7: Launch the Application
+
+```bash
yarn serve
```
-## Additional:
+## Additional
-### Two-Way Data Binding:
+### Two-Way Data Binding
`v-model` binding doesn't work as expected for custom elements. In order to use two way data binding, you should bind and update the value yourself like this:
+
```html
{
} catch (err) { }
if (content) {
- const fnRedirect = `
-
- `;
const APIReference = compiledHandlebars(entry).replace(/\[\]/g, " [0..n]");
const EntitySince = compiledSinceTemplate(entry).replace(/\[\]/g, " [0..n]");
- content = content.replace('