From 1b055fcbd121d1327f15a03e956480922a1ea7e8 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Mon, 4 May 2020 17:43:46 +0300
Subject: [PATCH 01/22] wip(ui5-li-notification): introduce new component

The component covers the main functionaly of the sap.m.NotificationListItem.
It is meant to display a notification and has a rich set of properties and slots to do it.

Missing parts
- no tests
- no rtl support
- not tested on all browser device matrix
---
 packages/fiori/bundle.esm.js                  |   2 +
 packages/fiori/src/NotificationListItem.hbs   |  77 +++
 packages/fiori/src/NotificationListItem.js    | 492 ++++++++++++++++++
 .../fiori/src/NotificationListItemPopover.hbs |  18 +
 .../fiori/src/NotificationOverflowAction.js   |  60 +++
 .../fiori/src/i18n/messagebundle.properties   |   3 +
 .../src/themes/NotifactionListItemPopover.css |  12 +
 .../fiori/src/themes/NotificationListItem.css | 176 +++++++
 packages/fiori/src/types/Priority.js          |  55 ++
 .../fiori/test/pages/NotificationList.html    | 185 +++++++
 .../fiori/test/pages/img/man_avatar_1.png     | Bin 0 -> 118473 bytes
 packages/main/src/List.js                     |  22 +
 packages/main/src/themes/List.css             |   1 +
 13 files changed, 1103 insertions(+)
 create mode 100644 packages/fiori/src/NotificationListItem.hbs
 create mode 100644 packages/fiori/src/NotificationListItem.js
 create mode 100644 packages/fiori/src/NotificationListItemPopover.hbs
 create mode 100644 packages/fiori/src/NotificationOverflowAction.js
 create mode 100644 packages/fiori/src/themes/NotifactionListItemPopover.css
 create mode 100644 packages/fiori/src/themes/NotificationListItem.css
 create mode 100644 packages/fiori/src/types/Priority.js
 create mode 100644 packages/fiori/test/pages/NotificationList.html
 create mode 100644 packages/fiori/test/pages/img/man_avatar_1.png

diff --git a/packages/fiori/bundle.esm.js b/packages/fiori/bundle.esm.js
index c9d0e50219ca..ee25e43394b5 100644
--- a/packages/fiori/bundle.esm.js
+++ b/packages/fiori/bundle.esm.js
@@ -13,3 +13,5 @@ import ShellBar from "./dist/ShellBar.js";
 import ShellBarItem from "./dist/ShellBarItem.js";
 import UploadCollection from "./dist/UploadCollection.js";
 import UploadCollectionItem from "./dist/UploadCollectionItem.js";
+import NotificationListItem from "./dist/NotificationListItem.js";
+import NotificationOverflowAction from "./dist/NotificationOverflowAction.js";
\ No newline at end of file
diff --git a/packages/fiori/src/NotificationListItem.hbs b/packages/fiori/src/NotificationListItem.hbs
new file mode 100644
index 000000000000..8251b039eba7
--- /dev/null
+++ b/packages/fiori/src/NotificationListItem.hbs
@@ -0,0 +1,77 @@
+<li
+	class="ui5-nli-root"
+	@focusin="{{_onfocusin}}"
+	@focusout="{{_onfocusout}}"
+	@keydown="{{_onkeydown}}"
+	@keyup="{{_onkeyup}}"
+	@click="{{_onclick}}"
+	role="option"
+	tabindex="{{_tabIndex}}"
+>
+
+	<div class="ui5-nli-avatar">
+		<slot name="avatar"></slot>
+	</div>
+
+	<div class="ui5-nli-content {{classes.content}}">
+		<div class="ui5-nli-heading">
+			{{#if hasPriority}}
+				<ui5-icon
+					class="ui5-nli-prio-icon ui5-nli-prio-icon--{{priorityIcon}}"
+					name="{{priorityIcon}}">
+				</ui5-icon>
+			{{/if}}
+
+			<div class="ui5-nli-title" part="heading">
+				{{heading}}
+			</div>
+		</div>
+
+		{{#if hasDesc}}
+			<div class="ui5-nli-description">
+				<slot></slot>
+			</div>
+		{{/if}}
+
+		<div class="ui5-nli-footer">
+			{{#each footerItems}}
+				<slot name="{{slotName}}"></slot>
+				{{#if showDivider}}
+					<div class="ui5-nli-footer-divider"></div>
+				{{/if}}
+			{{/each}}
+
+			<ui5-link
+				class="ui5-nli-footer-showMore"
+				?hidden="{{hideShowMore}}"
+				@click="{{_onShowMoreClick}}">{{showMoreText}}</ui5-link>
+		</div>
+	</div>
+
+	<div class="ui5-nli-actions">
+		{{#unless showOverflow}}
+			{{#each standardActions}}
+				<ui5-button
+					icon="{{this.icon}}"
+					class="ui5-nli-action"
+					@click="{{this.press}}"
+					data-ui5-external-action-item-id="{{this.refItemid}}"
+				>{{this.text}}
+				</ui5-button>
+			{{/each}}
+		{{/unless}}
+
+		{{#if showOverflow}}
+			<ui5-button
+				icon="overflow"
+				design="Transparent"
+				@click="{{_onBtnOverflowClick}}"
+				class="ui5-nli-overflow-btn">
+			</ui5-button>
+		{{/if}}
+
+		{{#if showClose}}
+			<ui5-button icon="decline" design="Transparent" @click="{{_onBtnCloseClick}}"></ui5-button>
+		{{/if}}
+	</div>
+</li>	
\ No newline at end of file
diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
new file mode 100644
index 000000000000..e34cc75bb49a
--- /dev/null
+++ b/packages/fiori/src/NotificationListItem.js
@@ -0,0 +1,492 @@
+import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
+import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
+import { getI18nBundle, fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
+import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
+import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
+
+import ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
+import Button from "@ui5/webcomponents/dist/Button.js";
+import Icon from "@ui5/webcomponents/dist/Icon.js";
+import Priority from "./types/Priority.js";
+
+// icons
+import "@ui5/webcomponents-icons/dist/icons/decline.js";
+import "@ui5/webcomponents-icons/dist/icons/message-success.js";
+import "@ui5/webcomponents-icons/dist/icons/message-error.js";
+import "@ui5/webcomponents-icons/dist/icons/message-warning.js";
+
+// text
+import { NOTIFICATIONLISTITEM_SHOW_MORE } from "./generated/i18n/i18n-defaults.js";
+
+// Template
+import NotificationListItemTemplate from "./generated/templates/NotificationListItemTemplate.lit.js";
+import NotificationListItemPopoverTemplate from "./generated/templates/NotificationListItemPopoverTemplate.lit.js";
+
+// Styles
+import NotificationListItemCss from "./generated/themes/NotificationListItem.css.js";
+import NotifactionListItemPopoverCss from "./generated/themes/NotifactionListItemPopover.css.js";
+
+const PRIORITY_ICONS_MAP = {
+	"High": "message-error",
+	"Medium": "message-warning",
+	"Low": "message-success",
+};
+
+const MAX_WRAP_HEIGHT = 32; // px.
+
+/**
+ * @public
+ */
+const metadata = {
+	tag: "ui5-li-notification",
+	managedSlots: true,
+	properties: /** @lends sap.ui.webcomponents.fiori.NotificationListItem.prototype */ {
+		/**
+		 * Defines the heading.
+		 * @type {string}
+		 * @defaultvalue: ""
+		 * @public
+		 */
+		heading: {
+			type: String,
+		},
+
+		/**
+		 * Defines the priority of the notification.
+		 * @type {Priority}
+		 * @defaultvalue: "None"
+		 * @public
+		 */
+		priority: {
+			type: Priority,
+			defaultValue: Priority.None,
+		},
+
+		/**
+		 * Defines if a <code>close</code> button should be displayed.
+		 * @type {boolean}
+		 * @defaultvalue false
+		 * @public
+		 */
+		showClose: {
+			type: Boolean,
+		},
+
+		/**
+		 * Defines if the <code>heading</code> and <code>decription</code> should truncate,
+		 * they would wrap by default.
+		 * @type {boolean}
+		 * @defaultvalue false
+		 * @public
+		 */
+		truncate: {
+			type: Boolean,
+		},
+
+		/**
+		 * Defines the truncation of the <code>heading</code> and <code>decription</code>.
+		 * @private
+		 */
+		noTruncation: {
+			type: Boolean,
+		},
+
+		/**
+		 * Defines the visibility of the <code>showMore</code> button.
+		 * @private
+		 */
+		showMore: {
+			type: Boolean,
+		},
+	},
+	slots: /** @lends sap.ui.webcomponents.fiori.NotificationListItem.prototype */ {
+
+		/**
+		 * Defines the actions, displayed in the <code>ui5-li-notification</code>.
+		 *
+		 * <b>Note:</b> Consider using the <code>ui5-notification-action</code>.
+		 *
+		 * @type {HTMLElement}
+		 * @slot
+		 * @public
+		 */
+		actions: {
+			type: HTMLElement,
+			propertyName: "actions",
+		},
+
+		/**
+		 * Defines the avatar, displayed in the <code>ui5-li-notification</code>.
+		 *
+		 * <br><br>
+		 * <b>Note:</b> Consider using the <code>ui5-avatar</code> to dipslay icons, initials or images.
+		 *
+		 * @type {HTMLElement}
+		 * @slot
+		 * @public
+		 */
+		avatar: {
+			type: HTMLElement,
+		},
+
+		/**
+		 * Defines the elements dipalyed in the footer of the of the <code>ui5-li-notification</code>.
+		 *
+		 *
+		 * @type {HTMLElement[]}
+		 * @slot
+		 * @public
+		 */
+		footnotes: {
+			type: HTMLElement,
+			propertyName: "footnotes",
+			individualSlots: true,
+		},
+
+		/**
+		 * Defines the description of the <code>ui5-li-notification</code>.
+		 *
+		 * <br><br>
+		 * <b>Note:</b> Аlthough this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.
+		 *
+		 * @type {Node[]}
+		 * @slot
+		 * @public
+		 */
+		"default": {
+			propertyName: "description",
+			type: Node,
+		},
+	},
+	events: /** @lends sap.ui.webcomponents.fiori.NotificationListItem.prototype */ {
+		_close: {},
+		_press: {},
+	},
+};
+
+/**
+ * @class
+ *
+ * <h3 class="comment-api-title">Overview</h3>
+ * The <code>ui5-li-notification</code> is a type of list item, meant to dispaly notifcatations.
+ * The component has a rich set of various properties that allows the user to set an <code>avatar, <code>heading, descriptive <code>content</code>
+ * and <code>footnotes</code> that appear at the bottom of the notifcation.
+ *
+ * The user can optionally display a <code>close</code> button.
+ * The user can control whether the <code>heading</code> and <code>description</code> should wrap or truncate
+ * and display a <code>ShomeMore</code> button to switch between less and more information.
+ *
+ * The user can also add custom actions by using the <code>ui5-notification-overflow-action</code>.
+ * When it is a single action, it would appear nex to the heading and
+ * but there are multiple actions, they would be displayed within a popover, that can be opened by an <code>overflow</code> button.
+ *
+ * <h3>Usage</h3>
+ * The component can be used in a standard <code>ui5-list</code>.
+ *
+ * For the <code>ui5-li-notification</code>
+ * <h3>ES6 Module Import</h3>
+ *
+ * <code>import @ui5/webcomponents/dist/NotificationListItem.js";</code>
+ * <code>import @ui5/webcomponents/dist/NotificationOverflowAction.js";</code> (optional)
+ * @constructor
+ * @author SAP SE
+ * @alias sap.ui.webcomponents.fiori.NotificationListItem
+ * @extends UI5Element
+ * @tagname ui5-li-notification
+ * @appenddocs NotificationOverflowAction
+ * @public
+ */
+class NotificationListItem extends ListItemBase {
+	constructor() {
+		super();
+
+		// indicates if the showMore has been pressed
+		this._showMorePressed = false;
+
+		// the heading overflow height
+		this._headingOverflowHeight = 0;
+
+		// the description overflow height
+		this._descOverflowHeight = 0;
+
+		this.onResizeBind = this.onResize.bind(this);
+		this.i18nBundle = getI18nBundle("@ui5/webcomponents-fiori");
+	}
+
+	static get metadata() {
+		return metadata;
+	}
+
+	static get render() {
+		return litRender;
+	}
+
+	static get styles() {
+		return NotificationListItemCss;
+	}
+
+	static get template() {
+		return NotificationListItemTemplate;
+	}
+
+	static get staticAreaTemplate() {
+		return NotificationListItemPopoverTemplate;
+	}
+
+	static get staticAreaStyles() {
+		return NotifactionListItemPopoverCss;
+	}
+
+	static async onDefine() {
+		await Promise.all([
+			Button.define(),
+			Icon.define(),
+			fetchI18nBundle("@ui5/webcomponents-fiori"),
+		]);
+	}
+
+	onEnterDOM() {
+		ResizeHandler.register(this, this.onResizeBind);
+	}
+
+	onExitDOM() {
+		ResizeHandler.deregister(this, this.onResizeBind);
+	}
+
+	get footerItems() {
+		return this.footnotes.map((el, idx, arr) => {
+			return {
+				slotName: el._individualSlot,
+				showDivider: idx !== arr.length - 1,
+			};
+		});
+	}
+
+	get hasHeading() {
+		return !!this.heading.length;
+	}
+
+	get hasDesc() {
+		return !!this.description.length;
+	}
+
+	get hasFootNotes() {
+		return !!this.footnotes.length;
+	}
+
+	get hasPriority() {
+		return this.priority !== Priority.None;
+	}
+
+	get priorityIcon() {
+		return PRIORITY_ICONS_MAP[this.priority];
+	}
+
+	get showMoreText() {
+		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_SHOW_MORE);
+	}
+
+	get hideShowMore() {
+		if (this.truncate && this.showMore) {
+			return undefined;
+		}
+
+		return true;
+	}
+
+	get descriptionDOM() {
+		return this.shadowRoot.querySelector(".ui5-nli-description");
+	}
+
+	get headingDOM() {
+		return this.shadowRoot.querySelector(".ui5-nli-title");
+	}
+
+	get headingHeight() {
+		return this.headingDOM.offsetHeight;
+	}
+
+	get descriptionHeight() {
+		return this.descriptionDOM.offsetHeight;
+	}
+
+	get headingOverflows() {
+		const heading = this.headingDOM;
+
+		if (!heading) {
+			return false;
+		}
+
+		if (isIE()) {
+			return heading.scrollHeight > MAX_WRAP_HEIGHT;
+		}
+
+		return heading.offsetHeight < heading.scrollHeight;
+	}
+
+	get descriptionOverflows() {
+		const description = this.descriptionDOM;
+
+		if (!description) {
+			return false;
+		}
+
+		if (isIE()) {
+			return description.scrollHeight > MAX_WRAP_HEIGHT;
+		}
+
+		return description.offsetHeight < description.scrollHeight;
+	}
+
+	get overflowButtonDOM() {
+		return this.shadowRoot.querySelector(".ui5-nli-overflow-btn");
+	}
+
+	get showOverflow() {
+		return !!this.overflowActions.length;
+	}
+
+	get overflowActions() {
+		if (this.actions.length <= 1) {
+			return [];
+		}
+
+		return this.clonedActions;
+	}
+
+	get standardActions() {
+		if (this.actions.length > 1) {
+			return [];
+		}
+
+		return this.clonedActions;
+	}
+
+	get clonedActions() {
+		return this.actions.map(action => {
+			return {
+				icon: action.icon,
+				text: action.text,
+				press: this._onCustomActionPress.bind(this),
+				refItemid: action._id,
+			};
+		});
+	}
+
+	get classes() {
+		return {
+			content: {
+				"ui5-nli-content--ie": isIE(),
+			},
+		};
+	}
+
+	/**
+	 * Event handlers
+	 *
+	 */
+
+	_onclick(event) {
+		if (event.isMarked === "button") {
+			return;
+		}
+		this.fireItemPress(event);
+	}
+
+	_onShowMoreClick() {
+		this._showMorePressed = !this._showMorePressed;
+		this.noTruncation = !this.noTruncation;
+	}
+
+	_onBtnCloseClick() {
+		this.fireEvent("_close", { item: this });
+	}
+
+	_onBtnOverflowClick() {
+		this.openOverflow();
+	}
+
+	_onkeydown(event) {
+		super._onkeydown(event);
+
+		if (isSpace(event)) {
+			event.preventDefault();
+		}
+
+		if (isEnter(event)) {
+			this.fireItemPress(event);
+		}
+	}
+
+	_onkeyup(event) {
+		if (isSpace(event)) {
+			this.fireItemPress(event);
+		}
+	}
+
+	/**
+	 * Private
+	 */
+	fireItemPress() {
+		this.fireEvent("_press", { item: this });
+	}
+
+	onResize() {
+		if (!this.truncate) {
+			this.showMore = false;
+			return;
+		}
+
+		if (this._showMorePressed
+			&& (this.headingHeight > this._headingOverflowHeight
+				|| this.descriptionHeight > this._descOverflowHeight)) {
+			this.showMore = true;
+			return;
+		}
+
+		if (this.headingOverflows || this.descriptionOverflows) {
+			this._headingOverflowHeight = this.headingHeight;
+			this._descOverflowHeight = this.descriptionHeight;
+			this.showMore = true;
+			return;
+		}
+
+		this.showMore = false;
+	}
+
+	_onCustomActionPress(event) {
+		const refItemId = event.target.getAttribute("data-ui5-external-action-item-id");
+
+		if (refItemId) {
+			this.getActionByID(refItemId).fireEvent("click", {
+				targetRef: event.target,
+			}, true);
+
+			this.closeOverflow();
+		}
+	}
+
+
+	getActionByID(id) {
+		return this.actions.find(action => action._id === id);
+	}
+
+	async openOverflow() {
+		const overflowPopover = await this.overflowPopover();
+		overflowPopover.openBy(this.overflowButtonDOM);
+	}
+
+	async closeOverflow() {
+		const overflowPopover = await this.overflowPopover();
+		overflowPopover.close();
+	}
+
+	async overflowPopover() {
+		const staticAreaItem = await this.getStaticAreaItemDomRef();
+		return staticAreaItem.querySelector(".ui5-nli-overflow-popover");
+	}
+}
+
+NotificationListItem.define();
+
+export default NotificationListItem;
diff --git a/packages/fiori/src/NotificationListItemPopover.hbs b/packages/fiori/src/NotificationListItemPopover.hbs
new file mode 100644
index 000000000000..545ad4a7bc8b
--- /dev/null
+++ b/packages/fiori/src/NotificationListItemPopover.hbs
@@ -0,0 +1,18 @@
+<ui5-popover
+	class="ui5-nli-overflow-popover"
+	placement-type="Bottom"
+	horizontal-align="Right"
+	no-arrow
+>
+	<div class="ui5-nli-overflow-list">
+		{{#each overflowActions}}
+			<ui5-button
+				icon="{{this.icon}}"
+				design="Transparent"
+				@click="{{this.press}}"
+				data-ui5-external-action-item-id="{{this.refItemid}}"
+				>{{this.text}}
+			</ui5-button>
+		{{/each}}
+	</div>
+</ui5-popover>
\ No newline at end of file
diff --git a/packages/fiori/src/NotificationOverflowAction.js b/packages/fiori/src/NotificationOverflowAction.js
new file mode 100644
index 000000000000..4515f4cdd1ae
--- /dev/null
+++ b/packages/fiori/src/NotificationOverflowAction.js
@@ -0,0 +1,60 @@
+import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
+
+/**
+ * @public
+ */
+const metadata = {
+	tag: "ui5-notification-overflow-action",
+	properties: /** @lends  sap.ui.webcomponents.fiori.NotificationOverflowAction.prototype */ {
+		/**
+		 * Defines the text of the <code>ui5-notification-overflow-action</code>.
+		 *
+		 * @type {string}
+		 * @defaultvalue ""
+		 * @public
+		 */
+		text: {
+			type: String,
+		},
+
+		/**
+		 * Defines the <code>icon</code> source URI.
+		 * <br><br>
+		 * <b>Note:</b>
+		 * SAP-icons font provides numerous buil-in icons. To find all the available icons, see the
+		 * <ui5-link target="_blank" href="https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html" class="api-table-content-cell-link">Icon Explorer</ui5-link>.
+		 *
+		 * @type {string}
+		 * @public
+		 */
+		icon: {
+			type: String,
+		},
+	},
+	slots: {
+	},
+	events: {
+		click: {},
+	},
+};
+
+/**
+ * @class
+ * The <code>ui5-notification-overflow-action</code> represents an astract action,
+ * used in the <code>ui5-li-notication</code>.
+ *
+ * @constructor
+ * @author SAP SE
+ * @alias sap.ui.webcomponents.fiori.NotificationOverflowAction
+ * @extends UI5Element
+ * @public
+ */
+class NotificationOverflowAction extends UI5Element {
+	static get metadata() {
+		return metadata;
+	}
+}
+
+NotificationOverflowAction.define();
+
+export default NotificationOverflowAction;
diff --git a/packages/fiori/src/i18n/messagebundle.properties b/packages/fiori/src/i18n/messagebundle.properties
index 742bfd79f9f4..97f1074ea203 100644
--- a/packages/fiori/src/i18n/messagebundle.properties
+++ b/packages/fiori/src/i18n/messagebundle.properties
@@ -1,6 +1,9 @@
 #This is the resource bundle for the UI5 Web Components
 #__ldi.translation.uuid=95d47730-48a4-4d6d-92f6-61f8c9d8f274
 
+#XTXT: Text for the 'ShowMore' link of the  NotificationListItem
+NOTIFICATIONLISTITEM_SHOW_MORE=Show More
+
 #XBUT: Button text for cancel button in the UploadCollectionItem
 UPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT=Cancel
 
diff --git a/packages/fiori/src/themes/NotifactionListItemPopover.css b/packages/fiori/src/themes/NotifactionListItemPopover.css
new file mode 100644
index 000000000000..18d90838602c
--- /dev/null
+++ b/packages/fiori/src/themes/NotifactionListItemPopover.css
@@ -0,0 +1,12 @@
+.ui5-nli-overflow-list {
+	display: flex;
+	flex-direction: column;
+	padding: 0 0.5rem;
+}
+
+.ui5-nli-overflow-content {
+	display: flex;
+	align-items: center;
+	height: var(--_ui5_tc_item_text);
+	pointer-events: none;
+}
\ No newline at end of file
diff --git a/packages/fiori/src/themes/NotificationListItem.css b/packages/fiori/src/themes/NotificationListItem.css
new file mode 100644
index 000000000000..6ab221d278b4
--- /dev/null
+++ b/packages/fiori/src/themes/NotificationListItem.css
@@ -0,0 +1,176 @@
+:host(:not([hidden])) {
+	display: block;
+	width: 100%;
+	min-height: var(--_ui5_list_item_base_height);
+	background: var(--ui5-listitem-background-color);
+}
+
+:host([has-border]) {
+	border-bottom: var(--ui5-listitem-border-bottom);
+}
+
+:host([focused]) .ui5-nli-root {
+	outline: none;
+}
+
+:host([focused]) .ui5-nli-root:after {
+	content: "";
+	border: var(--_ui5_listitembase_focus_width) dotted var(--sapContent_FocusColor);
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	pointer-events: none;
+}
+
+:host([truncate]) .ui5-nli-title {
+	display: -webkit-box;
+	-webkit-line-clamp: 2;
+	-webkit-box-orient: vertical;
+	overflow: hidden;
+}
+
+:host([truncate]) .ui5-nli-description {
+	display: -webkit-box;
+	-webkit-line-clamp: 2;
+	-webkit-box-orient: vertical;
+	overflow: hidden;
+}
+
+:host([no-truncation]) .ui5-nli-title {
+	-webkit-line-clamp: unset;
+}
+
+:host([no-truncation]) .ui5-nli-description  {
+	-webkit-line-clamp: unset;
+}
+
+
+/* IE */
+:host([truncate]) .ui5-nli-content--ie .ui5-nli-description {
+	max-height: 32px;
+}
+
+:host([truncate]) .ui5-nli-content--ie .ui5-nli-title {
+	max-height: 32px;
+}
+
+:host([no-truncation]) .ui5-nli-content--ie .ui5-nli-title {
+	max-height: inherit;
+}
+
+:host([no-truncation]) .ui5-nli-content--ie .ui5-nli-description  {
+	max-height: inherit;
+}
+/* End */
+
+.ui5-nli-root {
+	display: flex;
+	position: relative;
+	width: 100%;
+	padding: 1rem 0.5rem 1rem 1rem;
+	box-sizing: border-box;
+	cursor: pointer;
+}
+
+.ui5-nli-content {
+	display: flex;
+	flex-direction: column;
+	width: 100%;
+	padding: 0 1rem 0 0.75rem;
+	font-family: var(--sapFontFamily);
+	box-sizing: border-box;
+}
+
+.ui5-nli-heading {
+	display: flex;
+	margin-bottom: 0.25rem;
+	color: var(--sapGroup_TitleTextColor);
+	font-weight: bold;
+	font-size: var(--sapFontHeader6Size);
+	box-sizing: border-box;
+}
+
+.ui5-nli-description {
+	display: flex;
+	margin-top: 0.5rem;
+	color: var(--sapTextColor);
+	font-size: var(--sapFontSize);
+	box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+/*  Footer */
+.ui5-nli-footer {
+	display: flex;
+	color: var(--sapContent_LabelColor);
+	font-size: var(--sapFontSize);
+	padding-top: 0.5rem;
+	box-sizing: border-box;
+	flex-wrap: wrap;
+}
+
+.ui5-nli-footer-divider {
+	position: relative;
+	align-items: center;
+
+	/* implement rtl */
+	margin-left: 0.5rem;
+	margin-right: 0.625rem;
+}
+
+.ui5-nli-footer-divider::after {
+	position: absolute;
+	content: ".";
+	top: -20%;
+}
+
+.ui5-nli-footer-showMore {
+	/* implement rtl */
+	margin-left: 1rem;
+}
+
+::slotted([slot^="footnotes"]) {
+	color: var(--sapContent_LabelColor);
+	font-size: var(--sapFontSize);
+	text-overflow: ellipsis;
+	white-space: nowrap;
+	overflow: hidden;
+}
+
+/* Priority icon */
+.ui5-nli-prio-icon {
+	min-width: 1rem;
+	min-height: 1rem;
+
+	/* implement rtl */
+	padding-right: 0.5rem;
+}
+
+.ui5-nli-prio-icon--message-error {
+	color: var(--sapNegativeElementColor);
+}
+
+.ui5-nli-prio-icon--message-warning {
+	color: var(--sapCriticalElementColor);
+}
+
+.ui5-nli-prio-icon--message-success {
+	color: var(--sapPositiveElementColor);
+}
+
+/* Actions */
+.ui5-nli-actions {
+	display: flex;
+}
+
+.ui5-nli-action {
+	/* implement rtl */
+	margin-right: 0.5rem;
+}
+
+.ui5-nli-overflow-btn {
+	/* implement rtl */
+	margin-right: 0.5rem;
+}
\ No newline at end of file
diff --git a/packages/fiori/src/types/Priority.js b/packages/fiori/src/types/Priority.js
new file mode 100644
index 000000000000..2eed4c377e62
--- /dev/null
+++ b/packages/fiori/src/types/Priority.js
@@ -0,0 +1,55 @@
+import DataType from "@ui5/webcomponents-base/dist/types/DataType.js";
+
+/**
+ * Different types of Priority.
+ * @lends sap.ui.webcomponents.main.types.Priority.prototype
+ * @public
+ */
+const Priorities = {
+	/**
+	 * High priority.
+	 * @public
+	 * @type {High}
+	 */
+	High: "High",
+
+	/**
+	 * Medium priority.
+	 * @public
+	 * @type {Medium}
+	 */
+	Medium: "Medium",
+
+	/**
+	 * Low priority.
+	 * @public
+	 * @type {Low}
+	 */
+	Low: "Low",
+
+	/**
+	 * Default, none priority.
+	 * @public
+	 * @type {None}
+	 */
+	None: "None",
+};
+
+/**
+ * @class
+ * Different types of Priority.
+ * @constructor
+ * @author SAP SE
+ * @alias sap.ui.webcomponents.main.types.Priority
+ * @public
+ * @enum {string}
+ */
+class Priority extends DataType {
+	static isValid(value) {
+		return !!Priorities[value];
+	}
+}
+
+Priority.generataTypeAcessors(Priorities);
+
+export default Priority;
diff --git a/packages/fiori/test/pages/NotificationList.html b/packages/fiori/test/pages/NotificationList.html
new file mode 100644
index 000000000000..452fbb569558
--- /dev/null
+++ b/packages/fiori/test/pages/NotificationList.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+	<meta http-equiv="X-UA-Compatible" content="ie=edge">
+	<title>NotificationList</title>
+
+	<script src="../../webcomponentsjs/webcomponents-loader.js"></script>
+	<script src="../../resources/bundle.esm.js" type="module"></script>
+	<script nomodule src="../../resources/bundle.es5.js"></script>
+
+	<script>delete Document.prototype.adoptedStyleSheets;</script>
+</head>
+
+<body style="background-color: var(--sapBackgroundColor);">
+
+	<button>dsadas</button>
+	<div style="display: flex; flex-direction: column;">
+		<ui5-label>click event:</ui5-label>
+
+		<ui5-input id="clickInput">
+		</ui5-input>
+	</div>
+
+	<br/>
+	
+	<div style="display: flex; flex-direction: column;">
+		<ui5-label>close event:</ui5-label>
+
+		<ui5-input id="closeInput">
+		</ui5-input>
+	</div>
+
+	<ui5-list id="notificationList" header-text="Notifications heading and content 'truncates'">
+
+		<ui5-li-notification
+			show-close
+			truncate
+			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+		>
+			And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+			<ui5-avatar image="./img/man_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+			<span slot="footnotes">John Doe</span>
+			<span slot="footnotes">2 Days</span>
+			<span slot="footnotes">Other stuff</span>
+
+			<ui5-notification-overflow-action id="acceptBtn" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+			<ui5-notification-overflow-action id="rejectBtn" icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+		</ui5-li-notification>
+
+		<ui5-li-notification
+			show-close
+			truncate
+			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			priority="High"
+		>
+			And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+			<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+			<span slot="footnotes">Office Notifications</span>
+			<span slot="footnotes">3 Days</span>
+
+			<ui5-notification-overflow-action id="acceptBtn2" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+		</ui5-li-notification>
+
+		<ui5-li-notification
+			heading="New order (#2565) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			priority="Medium"
+			truncate>
+				Short description
+			<ui5-avatar initials="JS" size="XS" slot="avatar"></ui5-avatar>
+
+			<span slot="footnotes">Patricia Clarck</span>
+			<span slot="footnotes">3 Days</span>
+
+			<ui5-notification-overflow-action icon="accept" text="Accept All Requested Information" slot="actions"></ui5-notification-overflow-action>
+			<ui5-notification-overflow-action icon="decline" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
+		</ui5-li-notification>
+
+		<ui5-li-notification heading="New order (#2523)" truncate>
+			<div>. With a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
+
+			<span slot="footnotes">John SMith</span>
+			<span slot="footnotes">3 Days</span>
+
+			<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+		</ui5-li-notification>
+	</ui5-list>
+
+	<br><br>
+
+
+	<ui5-list id="notificationList2" header-text="Notifications heading and content 'wraps'">
+
+		<ui5-li-notification
+			show-close
+			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+		>
+			And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+			<ui5-avatar image="./img/man_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+			<span slot="footnotes">John Doe</span>
+			<span slot="footnotes">2 Days</span>
+			<span slot="footnotes">Other stuff</span>
+		</ui5-li-notification>
+
+		<ui5-li-notification
+			show-close
+			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			priority="High"
+		>
+			And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+			<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+			<span slot="footnotes">Office Notifications</span>
+			<span slot="footnotes">3 Days</span>
+		</ui5-li-notification>
+
+		<ui5-li-notification
+			heading="New order (#2522)"
+			priority="Low"
+		>
+			And short description
+			<ui5-avatar initials="PS" size="XS" slot="avatar"></ui5-avatar>
+
+			<span slot="footnotes">John Doe</span>
+			<span slot="footnotes">3 Days</span>
+		</ui5-li-notification>
+
+		<ui5-li-notification heading="New order (#2523)">
+			<div>With a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
+
+			<span slot="footnotes">John SMith</span>
+			<span slot="footnotes">3 Days</span>
+		</ui5-li-notification>
+	</ui5-list>
+
+
+	<ui5-toast id="wcToastBS" duration="2000"></ui5-toast>
+
+	<script>
+		notificationList.addEventListener("itemClick", function(event) {
+			clickInput.value = event.detail.item.heading;
+		});
+
+		notificationList.addEventListener("itemClose", function(event) {
+			closeInput.value = event.detail.item.heading;
+
+			wcToastBS.textContent = event.detail.item.heading;
+			wcToastBS.show();
+		});
+
+		notificationList2.addEventListener("itemClick", function(event) {
+			wcToastBS.textContent = event.detail.item.heading;
+			wcToastBS.show();
+		});
+
+		notificationList2.addEventListener("itemClose", function(event) {
+			wcToastBS.textContent = event.detail.item.heading;
+			wcToastBS.show();
+		});
+
+		acceptBtn.addEventListener("click", function(event) {
+			wcToastBS.textContent = "Accept btn clicked";
+			wcToastBS.show();
+
+			console.log("Accept btn clicked");
+		});
+
+		acceptBtn2.addEventListener("click", function(event) {
+			wcToastBS.textContent = "Accept2 btn clicked";
+			wcToastBS.show();
+
+			console.log("Accept2 btn clicked");
+		});
+
+		rejectBtn.addEventListener("click", function(event) {
+			wcToastBS.textContent = "Reject btn clicked";
+			wcToastBS.show();
+
+			console.log("Reject btn clicked");
+		});
+	</script>
+</body>
+</html>
diff --git a/packages/fiori/test/pages/img/man_avatar_1.png b/packages/fiori/test/pages/img/man_avatar_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..55b581163771c43b6aba08df1b5ca4c7ae6ca40f
GIT binary patch
literal 118473
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
KMNUMnLSTZSsD0D`

literal 0
HcmV?d00001

diff --git a/packages/main/src/List.js b/packages/main/src/List.js
index 0c1af807b236..47c640db3f7c 100644
--- a/packages/main/src/List.js
+++ b/packages/main/src/List.js
@@ -179,6 +179,22 @@ const metadata = {
 			},
 		},
 
+		/**
+		 * Fired when the Close button of any item is clicked
+		 * <br><br>
+		 * <b>Note:</b> This event is applicable to NotificationListItem only,
+		 * to not be confused with <code>itemDelete</code>.
+		 * @event
+		 * @param {HTMLElement} item the item about to be closed.
+		 * @public
+		 * @since 1.0.0-rc.8
+		 */
+		itemClose: {
+			detail: {
+				item: { type: HTMLElement },
+			},
+		},
+
 		/**
 		 * Fired when the Delete button of any item is pressed.
 		 * <br><br>
@@ -293,6 +309,7 @@ class List extends UI5Element {
 		this._previouslySelectedItem = null;
 
 		this.addEventListener("ui5-_press", this.onItemPress.bind(this));
+		this.addEventListener("ui5-_close", this.onItemClose.bind(this));
 		this.addEventListener("ui5-_focused", this.onItemFocused.bind(this));
 		this.addEventListener("ui5-_forwardAfter", this.onForwardAfter.bind(this));
 		this.addEventListener("ui5-_forwardBefore", this.onForwardBefore.bind(this));
@@ -538,6 +555,11 @@ class List extends UI5Element {
 		this._selectionRequested = false;
 	}
 
+	// This is applicable to NoficationListItem
+	onItemClose(event) {
+		this.fireEvent("itemClose", { item: event.detail.item });
+	}
+
 	onForwardBefore(event) {
 		this.setPreviouslyFocusedItem(event.target);
 		this.focusBeforeElement();
diff --git a/packages/main/src/themes/List.css b/packages/main/src/themes/List.css
index 3bd63689881a..7e6e8b3e4dea 100644
--- a/packages/main/src/themes/List.css
+++ b/packages/main/src/themes/List.css
@@ -1,6 +1,7 @@
 :host(:not([hidden])) {
 	display: block;
 	max-width: 100%;
+	width: 100%;
 }
 
 :host([inset]) .ui5-list-root {

From d9acfeed0d52e036b2bb5dc9cc2ed7718232a78e Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Tue, 5 May 2020 15:27:40 +0300
Subject: [PATCH 02/22] add more samples and JS docs

---
 packages/fiori/src/NotificationListItem.js    |  44 +--
 .../fiori/src/NotificationOverflowAction.js   |   2 +-
 .../fiori/test/pages/NotificationList.html    | 106 +++++-
 .../samples/NotificationListItem.sample.html  | 308 ++++++++++++++++++
 packages/playground/Gemfile.lock              |   2 +-
 5 files changed, 437 insertions(+), 25 deletions(-)
 create mode 100644 packages/fiori/test/samples/NotificationListItem.sample.html

diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index e34cc75bb49a..286876163487 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -42,9 +42,9 @@ const metadata = {
 	managedSlots: true,
 	properties: /** @lends sap.ui.webcomponents.fiori.NotificationListItem.prototype */ {
 		/**
-		 * Defines the heading.
+		 * Defines the <code>heading</code>.
 		 * @type {string}
-		 * @defaultvalue: ""
+		 * @defaultvalue ""
 		 * @public
 		 */
 		heading: {
@@ -52,9 +52,9 @@ const metadata = {
 		},
 
 		/**
-		 * Defines the priority of the notification.
+		 * Defines the <code>priority</code> of the notification.
 		 * @type {Priority}
-		 * @defaultvalue: "None"
+		 * @defaultvalue "None"
 		 * @public
 		 */
 		priority: {
@@ -74,7 +74,7 @@ const metadata = {
 
 		/**
 		 * Defines if the <code>heading</code> and <code>decription</code> should truncate,
-		 * they would wrap by default.
+		 * otherwise they would wrap by default.
 		 * @type {boolean}
 		 * @defaultvalue false
 		 * @public
@@ -103,8 +103,8 @@ const metadata = {
 
 		/**
 		 * Defines the actions, displayed in the <code>ui5-li-notification</code>.
-		 *
-		 * <b>Note:</b> Consider using the <code>ui5-notification-action</code>.
+		 * <br><br>
+		 * <b>Note:</b> Consider using the <code>ui5-notification-overflow-action</code>.
 		 *
 		 * @type {HTMLElement}
 		 * @slot
@@ -119,7 +119,7 @@ const metadata = {
 		 * Defines the avatar, displayed in the <code>ui5-li-notification</code>.
 		 *
 		 * <br><br>
-		 * <b>Note:</b> Consider using the <code>ui5-avatar</code> to dipslay icons, initials or images.
+		 * <b>Note:</b> Consider using the <code>ui5-avatar</code> to display icons, initials or images.
 		 *
 		 * @type {HTMLElement}
 		 * @slot
@@ -130,9 +130,7 @@ const metadata = {
 		},
 
 		/**
-		 * Defines the elements dipalyed in the footer of the of the <code>ui5-li-notification</code>.
-		 *
-		 *
+		 * Defines the elements, dipalyed in the footer of the of the <code>ui5-li-notification</code>.
 		 * @type {HTMLElement[]}
 		 * @slot
 		 * @public
@@ -144,7 +142,8 @@ const metadata = {
 		},
 
 		/**
-		 * Defines the description of the <code>ui5-li-notification</code>.
+		 * Defines the content of the <code>ui5-li-notification</code>,
+		 * usually a description of the notification.
 		 *
 		 * <br><br>
 		 * <b>Note:</b> Аlthough this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.
@@ -169,21 +168,23 @@ const metadata = {
  *
  * <h3 class="comment-api-title">Overview</h3>
  * The <code>ui5-li-notification</code> is a type of list item, meant to dispaly notifcatations.
- * The component has a rich set of various properties that allows the user to set an <code>avatar, <code>heading, descriptive <code>content</code>
- * and <code>footnotes</code> that appear at the bottom of the notifcation.
+ * <br>
  *
- * The user can optionally display a <code>close</code> button.
- * The user can control whether the <code>heading</code> and <code>description</code> should wrap or truncate
- * and display a <code>ShomeMore</code> button to switch between less and more information.
+ * The component has a rich set of various properties that allows the user to set <code>avatar</code>, <code>heading</code>, descriptive <code>content</code>
+ * and <code>footnotes</code> to fully describe a notifcation.
+ * <br>
  *
- * The user can also add custom actions by using the <code>ui5-notification-overflow-action</code>.
- * When it is a single action, it would appear nex to the heading and
- * but there are multiple actions, they would be displayed within a popover, that can be opened by an <code>overflow</code> button.
+ * The user can:
+ * <ul>
+ * <li>display a <code>Close</code> button</code></li>
+ * <li>can control whether the <code>heading</code> and <code>description</code> should wrap or truncate
+ * and display a <code>ShomeMore</code> button to switch between less and more information</code></li>
+ * <li>add custom actions by using the <code>ui5-notification-overflow-action</code></code> component</li>
+ * </ul>
  *
  * <h3>Usage</h3>
  * The component can be used in a standard <code>ui5-list</code>.
  *
- * For the <code>ui5-li-notification</code>
  * <h3>ES6 Module Import</h3>
  *
  * <code>import @ui5/webcomponents/dist/NotificationListItem.js";</code>
@@ -194,6 +195,7 @@ const metadata = {
  * @extends UI5Element
  * @tagname ui5-li-notification
  * @appenddocs NotificationOverflowAction
+ * @since 1.0.0-rc.8
  * @public
  */
 class NotificationListItem extends ListItemBase {
diff --git a/packages/fiori/src/NotificationOverflowAction.js b/packages/fiori/src/NotificationOverflowAction.js
index 4515f4cdd1ae..397573547d9b 100644
--- a/packages/fiori/src/NotificationOverflowAction.js
+++ b/packages/fiori/src/NotificationOverflowAction.js
@@ -41,7 +41,7 @@ const metadata = {
 /**
  * @class
  * The <code>ui5-notification-overflow-action</code> represents an astract action,
- * used in the <code>ui5-li-notication</code>.
+ * used in the <code>ui5-li-notification</code>.
  *
  * @constructor
  * @author SAP SE
diff --git a/packages/fiori/test/pages/NotificationList.html b/packages/fiori/test/pages/NotificationList.html
index 452fbb569558..f0490b022c95 100644
--- a/packages/fiori/test/pages/NotificationList.html
+++ b/packages/fiori/test/pages/NotificationList.html
@@ -4,7 +4,7 @@
 	<meta charset="UTF-8">
 	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
 	<meta http-equiv="X-UA-Compatible" content="ie=edge">
-	<title>NotificationList</title>
+	<title>NotificationListItem</title>
 
 	<script src="../../webcomponentsjs/webcomponents-loader.js"></script>
 	<script src="../../resources/bundle.esm.js" type="module"></script>
@@ -15,7 +15,13 @@
 
 <body style="background-color: var(--sapBackgroundColor);">
 
-	<button>dsadas</button>
+	<ui5-shellbar id="shellbar" primary-title="Product Title" show-notifications>
+	</ui5-shellbar>
+
+	<div style="display: flex; justify-content: flex-end; padding: 0.25rem; border-bottom: 1px solid grey">
+		<ui5-button id="openNotifications" design="Transparent" icon="bell"></ui5-button>
+	</div>
+
 	<div style="display: flex; flex-direction: column;">
 		<ui5-label>click event:</ui5-label>
 
@@ -138,6 +144,67 @@
 
 	<ui5-toast id="wcToastBS" duration="2000"></ui5-toast>
 
+	<ui5-popover id="notificationsPopover" style="max-width: 400px" placement-type="Bottom" horizontal-align="Right">
+		<ui5-list id="notificationListTop" header-text="Notifications heading and content 'truncates'">
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar image="./img/man_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+				<span slot="footnotes">John Doe</span>
+				<span slot="footnotes">2 Days</span>
+				<span slot="footnotes">Other stuff</span>
+	
+				<ui5-notification-overflow-action id="acceptBtnInPopover" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action id="rejectBtnInPopover" icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+	
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+	
+				<span slot="footnotes">Office Notifications</span>
+				<span slot="footnotes">3 Days</span>
+	
+				<ui5-notification-overflow-action id="acceptBtn2InPopover" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+	
+			<ui5-li-notification
+				heading="New order (#2565) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="Medium"
+				truncate>
+					Short description
+				<ui5-avatar initials="JS" size="XS" slot="avatar"></ui5-avatar>
+	
+				<span slot="footnotes">Patricia Clarck</span>
+				<span slot="footnotes">3 Days</span>
+	
+				<ui5-notification-overflow-action icon="accept" text="Accept All Requested Information" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action icon="decline" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+	
+			<ui5-li-notification heading="New order (#2523)" truncate>
+				<div>. With a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
+	
+				<span slot="footnotes">John SMith</span>
+				<span slot="footnotes">3 Days</span>
+	
+				<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+		</ui5-list>
+	</ui5-popover>
+
+	<div style="display: flex; justify-content: flex-end; padding: 0.25rem; border-bottom: 1px solid grey;">
+		<ui5-button id="openNotifications2" design="Transparent" icon="bell"></ui5-button>
+	</div>
+
 	<script>
 		notificationList.addEventListener("itemClick", function(event) {
 			clickInput.value = event.detail.item.heading;
@@ -160,6 +227,16 @@
 			wcToastBS.show();
 		});
 
+		notificationListTop.addEventListener("itemClick", function(event) {
+			wcToastBS.textContent = event.detail.item.heading;
+			wcToastBS.show();
+		});
+
+		notificationListTop.addEventListener("itemClose", function(event) {
+			wcToastBS.textContent = event.detail.item.heading;
+			wcToastBS.show();
+		});
+
 		acceptBtn.addEventListener("click", function(event) {
 			wcToastBS.textContent = "Accept btn clicked";
 			wcToastBS.show();
@@ -174,12 +251,37 @@
 			console.log("Accept2 btn clicked");
 		});
 
+		acceptBtnInPopover.addEventListener("click", function(event) {
+			wcToastBS.textContent = "Accept btn In popover btn clicked";
+			wcToastBS.show();
+
+			console.log("acceptBtnInPopover btn clicked");
+		});
+
 		rejectBtn.addEventListener("click", function(event) {
 			wcToastBS.textContent = "Reject btn clicked";
 			wcToastBS.show();
 
 			console.log("Reject btn clicked");
 		});
+
+		rejectBtnInPopover.addEventListener("click", function(event) {
+			wcToastBS.textContent = "Reject btn In popover btn clicked";
+			wcToastBS.show();
+
+			console.log("rejectBtnInPopover btn clicked");
+		});
+
+		openNotifications.addEventListener("click", function(event) {
+			notificationsPopover.openBy(openNotifications);
+		});
+		openNotifications2.addEventListener("click", function(event) {
+			notificationsPopover.openBy(openNotifications2);
+		});
+
+		shellbar.addEventListener("ui5-notificationsClick", function(event) {
+			notificationsPopover.openBy(event.detail.targetRef);
+		});
 	</script>
 </body>
 </html>
diff --git a/packages/fiori/test/samples/NotificationListItem.sample.html b/packages/fiori/test/samples/NotificationListItem.sample.html
new file mode 100644
index 000000000000..ce88f77bd3ae
--- /dev/null
+++ b/packages/fiori/test/samples/NotificationListItem.sample.html
@@ -0,0 +1,308 @@
+<header class="component-heading">
+	<h2 class="control-header">NotificationListItem</h2>
+	<div class="component-heading-since">
+		<span><!--since_tag_marker--></span>
+	</div>
+</header>
+
+<div class="component-package">@ui5/webcomponents-fiori</div>
+
+<div class="control-tag">&lt;ui5-list&gt;</div>
+
+<!--Basic -->
+<section>
+	<h3>NotificationListItem</h3>
+	<div class="snippet">
+		<ui5-list id="myList" class="full-width" header-text="Notifications">
+			<ui5-li-notification
+				show-close
+				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar image="../../../assets/images/avatars/woman_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+				<span slot="footnotes">Monique Legrand</span>
+				<span slot="footnotes">2 Days</span>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				show-close
+				heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar image="../../../assets/images/avatars/man_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+				<span slot="footnotes">Alain Chevalier</span>
+				<span slot="footnotes">2 Days</span>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				show-close
+				heading="New order (#2525) With a short title"
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar image="../../../assets/images/avatars/man_avatar_2.png" size="XS" slot="avatar"></ui5-avatar>
+				<span slot="footnotes">John Doe</span>
+				<span slot="footnotes">2 Days</span>
+			</ui5-li-notification>
+		</ui5-list>
+
+		<script>
+			myList.addEventListener("itemClose", function(e) {
+				e.detail.item.hidden = true;
+			});
+		</script>
+	</div>
+	<pre class="prettyprint lang-html"><xmp>
+<ui5-list header-text="Notifications">
+	<ui5-li-notification
+		show-close
+		heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+	>
+		And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+		<ui5-avatar image="../../../assets/images/avatars/woman_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+		<span slot="footnotes">Monique Legrand</span>
+		<span slot="footnotes">2 Days</span>
+	</ui5-li-notification>
+
+	<ui5-li-notification
+		show-close
+		heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+	>
+		And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+		<ui5-avatar image="../../../assets/images/avatars/man_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+		<span slot="footnotes">Alain Chevalier</span>
+		<span slot="footnotes">2 Days</span>
+	</ui5-li-notification>
+	...
+</ui5-list>
+
+<script>
+	myList.addEventListener("itemClose", e => {
+		e.detail.item.hidden = true;
+	});
+</script>
+	</xmp></pre>
+</section>
+
+<section>
+	<h3>NotificationListItem - Show "more/less"</h3>
+	<div class="snippet">
+		<ui5-list id="myList2" class="full-width" header-text="Notifications">
+			<ui5-li-notification
+				truncate
+				show-close
+				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+				<ui5-avatar initials="ML" size="XS" slot="avatar"></ui5-avatar>
+				<span slot="footnotes">Monique Legrand</span>
+				<span slot="footnotes">2 Days</span>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				truncate
+				show-close
+				heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+				<ui5-avatar initials="AC" size="XS" slot="avatar"></ui5-avatar>
+				<span slot="footnotes">Alain Chevalier</span>
+				<span slot="footnotes">2 Days</span>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+				<ui5-avatar initials="JD" size="XS" slot="avatar"></ui5-avatar>
+				<span slot="footnotes">John Doe</span>
+				<span slot="footnotes">2 Days</span>
+			</ui5-li-notification>
+		</ui5-list>
+	</div>
+	<pre class="prettyprint lang-html"><xmp>
+<ui5-list header-text="Notifications">
+	<ui5-li-notification
+		truncate
+		show-close
+		heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
+	>
+		And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+		<ui5-avatar initials="ML" size="XS" slot="avatar"></ui5-avatar>
+		<span slot="footnotes">Monique Legrand</span>
+		<span slot="footnotes">2 Days</span>
+	</ui5-li-notification>
+
+	...
+</ui5-list>
+	</xmp></pre>
+</section>
+
+<section>
+	<h3>NotificationListItem - Custom Actions</h3>
+	<div class="snippet">
+		<ui5-list id="myList3" class="full-width" header-text="Notifications">
+			<ui5-li-notification
+				show-close
+				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar image="../../../assets/images/avatars/woman_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+				<span slot="footnotes">Monique Legrand</span>
+				<span slot="footnotes">2 Days</span>
+
+				<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				show-close
+				heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar image="../../../assets/images/avatars/man_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+				<span slot="footnotes">Alain Chevalier</span>
+				<span slot="footnotes">2 Days</span>
+
+				<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				show-close
+				heading="New order (#2525) With a short title"
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar image="../../../assets/images/avatars/man_avatar_2.png" size="XS" slot="avatar"></ui5-avatar>
+				<span slot="footnotes">John Doe</span>
+				<span slot="footnotes">2 Days</span>
+
+				<ui5-notification-overflow-action icon="accept" text="Accept All Requested Information" slot="actions"></ui5-notification-overflow-action>
+			<ui5-notification-overflow-action icon="decline" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+		</ui5-list>
+	</div>
+	<pre class="prettyprint lang-html"><xmp>
+<ui5-list header-text="Notifications">
+	<ui5-li-notification
+		show-close
+		heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+	>
+		And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+		<ui5-avatar image="../../../assets/images/avatars/woman_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+		<span slot="footnotes">Monique Legrand</span>
+		<span slot="footnotes">2 Days</span>
+	</ui5-li-notification>
+
+	...
+</ui5-list>
+	</xmp></pre>
+</section>
+
+<section>
+	<h3>NotificationListItem In ShellBar</h3>
+	<div class="snippet">
+		<ui5-shellbar id="shellbar" primary-title="Product Title" show-notifications>
+		</ui5-shellbar>
+
+		<ui5-popover id="notificationsPopover" style="max-width: 400px" placement-type="Bottom" horizontal-align="Right">
+			<ui5-list id="notificationListTop" header-text="Notifications">
+				<ui5-li-notification
+					show-close
+					truncate
+					heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar initials="JD" size="XS" slot="avatar"></ui5-avatar>
+					<span slot="footnotes">John Doe</span>
+					<span slot="footnotes">2 Days</span>
+
+					<ui5-notification-overflow-action id="acceptBtnInPopover" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+					<ui5-notification-overflow-action id="rejectBtnInPopover" icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+		
+				<ui5-li-notification
+					show-close
+					truncate
+					heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+					priority="High"
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+		
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+		
+					<ui5-notification-overflow-action id="acceptBtn2InPopover" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+		
+				<ui5-li-notification
+					heading="New order (#2565) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+					priority="Medium"
+					truncate>
+						Short description
+					<ui5-avatar initials="JS" size="XS" slot="avatar"></ui5-avatar>
+		
+					<span slot="footnotes">Patricia Clarck</span>
+					<span slot="footnotes">3 Days</span>
+		
+					<ui5-notification-overflow-action icon="accept" text="Accept All Requested Information" slot="actions"></ui5-notification-overflow-action>
+					<ui5-notification-overflow-action icon="decline" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+		
+				<ui5-li-notification heading="New order (#2523)" truncate>
+					<div>. With a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
+		
+					<span slot="footnotes">John SMith</span>
+					<span slot="footnotes">3 Days</span>
+		
+					<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+			</ui5-list>
+		</ui5-popover>
+
+		<script>
+			shellbar.addEventListener("ui5-notificationsClick", function(event) {
+				notificationsPopover.openBy(event.detail.targetRef);
+			});
+		</script>
+	</div>
+	<pre class="prettyprint lang-html"><xmp>
+<ui5-shellbar id="shellbar" primary-title="Product Title" show-notifications>
+</ui5-shellbar>
+
+<ui5-popover
+	id="notificationsPopover"
+	style="max-width: 400px"
+	placement-type="Bottom"
+	horizontal-align="Right"
+>
+	<ui5-list header-text="Notifications">
+		<ui5-li-notification
+			show-close
+			truncate
+			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+		>
+			And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+			<ui5-avatar image="./img/man_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+			<span slot="footnotes">John Doe</span>
+			<span slot="footnotes">2 Days</span>
+
+			<ui5-notification-overflow-action id="acceptBtnInPopover" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+			<ui5-notification-overflow-action id="rejectBtnInPopover" icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+		</ui5-li-notification>
+		...
+	</ui5-list>
+</ui5-popover>
+
+<script>
+	shellbar.addEventListener("ui5-notificationsClick", function(event) {
+		notificationsPopover.openBy(event.detail.targetRef);
+	});
+</script>
+	
+	</xmp></pre>
+</section>
+
+
+<!-- JSDoc marker -->
diff --git a/packages/playground/Gemfile.lock b/packages/playground/Gemfile.lock
index 1b17ecf7bc25..573e96a73604 100644
--- a/packages/playground/Gemfile.lock
+++ b/packages/playground/Gemfile.lock
@@ -1,7 +1,7 @@
 PATH
   remote: .
   specs:
-    UI5-Web-Components-Playground (1.0.0.pre.rc.6)
+    UI5-Web-Components-Playground (1.0.0.pre.rc.7)
       jekyll (~> 3.8.5)
       jekyll-seo-tag (~> 2.0)
       rake (~> 12.3.1)

From 522f57f4451d9f9d65f6c315656b7cd842e7e4d4 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Tue, 5 May 2020 15:31:05 +0300
Subject: [PATCH 03/22] address some of the comments

---
 packages/fiori/src/NotificationListItem.js | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index 286876163487..b68ee58db04b 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -14,6 +14,7 @@ import "@ui5/webcomponents-icons/dist/icons/decline.js";
 import "@ui5/webcomponents-icons/dist/icons/message-success.js";
 import "@ui5/webcomponents-icons/dist/icons/message-error.js";
 import "@ui5/webcomponents-icons/dist/icons/message-warning.js";
+import "@ui5/webcomponents-icons/dist/icons/overflow.js";
 
 // text
 import { NOTIFICATIONLISTITEM_SHOW_MORE } from "./generated/i18n/i18n-defaults.js";
@@ -112,7 +113,6 @@ const metadata = {
 		 */
 		actions: {
 			type: HTMLElement,
-			propertyName: "actions",
 		},
 
 		/**
@@ -353,7 +353,7 @@ class NotificationListItem extends ListItemBase {
 			return [];
 		}
 
-		return this.clonedActions;
+		return this.actionsInfo;
 	}
 
 	get standardActions() {
@@ -361,10 +361,10 @@ class NotificationListItem extends ListItemBase {
 			return [];
 		}
 
-		return this.clonedActions;
+		return this.actionsInfo;
 	}
 
-	get clonedActions() {
+	get actionsInfo() {
 		return this.actions.map(action => {
 			return {
 				icon: action.icon,

From eb41507190fa066793b27f9f8b0ee7fa28733a05 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Tue, 5 May 2020 17:11:23 +0300
Subject: [PATCH 04/22] address more comments

---
 packages/fiori/src/NotificationListItem.js    | 10 ++++----
 .../fiori/test/pages/NotificationList.html    | 23 +++++++++++++------
 .../{fiori => main}/src/types/Priority.js     |  0
 3 files changed, 22 insertions(+), 11 deletions(-)
 rename packages/{fiori => main}/src/types/Priority.js (100%)

diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index b68ee58db04b..7bca23169dd1 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -7,7 +7,7 @@ import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
 import ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
 import Button from "@ui5/webcomponents/dist/Button.js";
 import Icon from "@ui5/webcomponents/dist/Icon.js";
-import Priority from "./types/Priority.js";
+import Priority from "@ui5/webcomponents/dist/types/Priority.js";
 
 // icons
 import "@ui5/webcomponents-icons/dist/icons/decline.js";
@@ -439,9 +439,11 @@ class NotificationListItem extends ListItemBase {
 			return;
 		}
 
-		if (this._showMorePressed
-			&& (this.headingHeight > this._headingOverflowHeight
-				|| this.descriptionHeight > this._descOverflowHeight)) {
+		const headingWouldOverflow = this.headingHeight > this._headingOverflowHeight;
+		const descWouldOverflow = this.descriptionHeight > this._descOverflowHeight;
+		const overflows = headingWouldOverflow || descWouldOverflow;
+
+		if (this._showMorePressed && overflows) {
 			this.showMore = true;
 			return;
 		}
diff --git a/packages/fiori/test/pages/NotificationList.html b/packages/fiori/test/pages/NotificationList.html
index f0490b022c95..c1dbfae2d710 100644
--- a/packages/fiori/test/pages/NotificationList.html
+++ b/packages/fiori/test/pages/NotificationList.html
@@ -18,9 +18,7 @@
 	<ui5-shellbar id="shellbar" primary-title="Product Title" show-notifications>
 	</ui5-shellbar>
 
-	<div style="display: flex; justify-content: flex-end; padding: 0.25rem; border-bottom: 1px solid grey">
-		<ui5-button id="openNotifications" design="Transparent" icon="bell"></ui5-button>
-	</div>
+	<br/><br/>
 
 	<div style="display: flex; flex-direction: column;">
 		<ui5-label>click event:</ui5-label>
@@ -38,6 +36,20 @@
 		</ui5-input>
 	</div>
 
+	<h3>Properties</h3>
+	<ul>
+		<li>heading</li>
+		<li>truncate</li>
+		<li>show-close</li>
+	</ul>
+
+	<h3>Slots</h3>
+	<ul>
+		<li>avatar</li>
+		<li>actions</li>
+		<li>footnotes</li>
+	</ul>
+
 	<ui5-list id="notificationList" header-text="Notifications heading and content 'truncates'">
 
 		<ui5-li-notification
@@ -202,7 +214,7 @@
 	</ui5-popover>
 
 	<div style="display: flex; justify-content: flex-end; padding: 0.25rem; border-bottom: 1px solid grey;">
-		<ui5-button id="openNotifications2" design="Transparent" icon="bell"></ui5-button>
+		<ui5-button id="openNotifications" design="Transparent" icon="bell"></ui5-button>
 	</div>
 
 	<script>
@@ -275,9 +287,6 @@
 		openNotifications.addEventListener("click", function(event) {
 			notificationsPopover.openBy(openNotifications);
 		});
-		openNotifications2.addEventListener("click", function(event) {
-			notificationsPopover.openBy(openNotifications2);
-		});
 
 		shellbar.addEventListener("ui5-notificationsClick", function(event) {
 			notificationsPopover.openBy(event.detail.targetRef);
diff --git a/packages/fiori/src/types/Priority.js b/packages/main/src/types/Priority.js
similarity index 100%
rename from packages/fiori/src/types/Priority.js
rename to packages/main/src/types/Priority.js

From 28d1c050f6f1106b426c6e2482305423ef7352d3 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Tue, 5 May 2020 17:52:56 +0300
Subject: [PATCH 05/22] make public/private props less confusing

---
 packages/fiori/src/NotificationListItem.js    | 23 +++++++++----------
 .../fiori/src/themes/NotificationListItem.css |  8 +++----
 .../fiori/test/pages/NotificationList.html    | 11 +--------
 3 files changed, 16 insertions(+), 26 deletions(-)

diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index 7bca23169dd1..221fcfdfc72a 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -85,10 +85,11 @@ const metadata = {
 		},
 
 		/**
-		 * Defines the truncation of the <code>heading</code> and <code>decription</code>.
+		 * Defines the state of the <code>heading</code> and <code>decription</code>,
+		 * if less or more information is displayed.
 		 * @private
 		 */
-		noTruncation: {
+		_showMorePressed: {
 			type: Boolean,
 		},
 
@@ -96,7 +97,7 @@ const metadata = {
 		 * Defines the visibility of the <code>showMore</code> button.
 		 * @private
 		 */
-		showMore: {
+		_showMore: {
 			type: Boolean,
 		},
 	},
@@ -202,16 +203,15 @@ class NotificationListItem extends ListItemBase {
 	constructor() {
 		super();
 
-		// indicates if the showMore has been pressed
-		this._showMorePressed = false;
-
 		// the heading overflow height
 		this._headingOverflowHeight = 0;
 
 		// the description overflow height
 		this._descOverflowHeight = 0;
 
+		// the resize handler
 		this.onResizeBind = this.onResize.bind(this);
+
 		this.i18nBundle = getI18nBundle("@ui5/webcomponents-fiori");
 	}
 
@@ -289,7 +289,7 @@ class NotificationListItem extends ListItemBase {
 	}
 
 	get hideShowMore() {
-		if (this.truncate && this.showMore) {
+		if (this.truncate && this._showMore) {
 			return undefined;
 		}
 
@@ -397,7 +397,6 @@ class NotificationListItem extends ListItemBase {
 
 	_onShowMoreClick() {
 		this._showMorePressed = !this._showMorePressed;
-		this.noTruncation = !this.noTruncation;
 	}
 
 	_onBtnCloseClick() {
@@ -435,7 +434,7 @@ class NotificationListItem extends ListItemBase {
 
 	onResize() {
 		if (!this.truncate) {
-			this.showMore = false;
+			this._showMore = false;
 			return;
 		}
 
@@ -444,18 +443,18 @@ class NotificationListItem extends ListItemBase {
 		const overflows = headingWouldOverflow || descWouldOverflow;
 
 		if (this._showMorePressed && overflows) {
-			this.showMore = true;
+			this._showMore = true;
 			return;
 		}
 
 		if (this.headingOverflows || this.descriptionOverflows) {
 			this._headingOverflowHeight = this.headingHeight;
 			this._descOverflowHeight = this.descriptionHeight;
-			this.showMore = true;
+			this._showMore = true;
 			return;
 		}
 
-		this.showMore = false;
+		this._showMore = false;
 	}
 
 	_onCustomActionPress(event) {
diff --git a/packages/fiori/src/themes/NotificationListItem.css b/packages/fiori/src/themes/NotificationListItem.css
index 6ab221d278b4..bd051a89cc93 100644
--- a/packages/fiori/src/themes/NotificationListItem.css
+++ b/packages/fiori/src/themes/NotificationListItem.css
@@ -38,11 +38,11 @@
 	overflow: hidden;
 }
 
-:host([no-truncation]) .ui5-nli-title {
+:host([_show-more-pressed]) .ui5-nli-title {
 	-webkit-line-clamp: unset;
 }
 
-:host([no-truncation]) .ui5-nli-description  {
+:host([_show-more-pressed]) .ui5-nli-description  {
 	-webkit-line-clamp: unset;
 }
 
@@ -56,11 +56,11 @@
 	max-height: 32px;
 }
 
-:host([no-truncation]) .ui5-nli-content--ie .ui5-nli-title {
+:host([_show-more-pressed]) .ui5-nli-content--ie .ui5-nli-title {
 	max-height: inherit;
 }
 
-:host([no-truncation]) .ui5-nli-content--ie .ui5-nli-description  {
+:host([_show-more-pressed]) .ui5-nli-content--ie .ui5-nli-description  {
 	max-height: inherit;
 }
 /* End */
diff --git a/packages/fiori/test/pages/NotificationList.html b/packages/fiori/test/pages/NotificationList.html
index c1dbfae2d710..c313779f4a6b 100644
--- a/packages/fiori/test/pages/NotificationList.html
+++ b/packages/fiori/test/pages/NotificationList.html
@@ -40,6 +40,7 @@ <h3>Properties</h3>
 	<ul>
 		<li>heading</li>
 		<li>truncate</li>
+		<li>priority</li>
 		<li>show-close</li>
 	</ul>
 
@@ -239,16 +240,6 @@ <h3>Slots</h3>
 			wcToastBS.show();
 		});
 
-		notificationListTop.addEventListener("itemClick", function(event) {
-			wcToastBS.textContent = event.detail.item.heading;
-			wcToastBS.show();
-		});
-
-		notificationListTop.addEventListener("itemClose", function(event) {
-			wcToastBS.textContent = event.detail.item.heading;
-			wcToastBS.show();
-		});
-
 		acceptBtn.addEventListener("click", function(event) {
 			wcToastBS.textContent = "Accept btn clicked";
 			wcToastBS.show();

From 5afb3d90b870cec218ad6593991c43f48df7669c Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Tue, 5 May 2020 17:59:20 +0300
Subject: [PATCH 06/22] add RTL support

---
 packages/fiori/src/NotificationListItem.hbs   |  1 +
 packages/fiori/src/NotificationListItem.js    |  5 ++++
 .../fiori/src/themes/NotificationListItem.css | 30 ++++++++++++++-----
 3 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/packages/fiori/src/NotificationListItem.hbs b/packages/fiori/src/NotificationListItem.hbs
index 8251b039eba7..edc288de3531 100644
--- a/packages/fiori/src/NotificationListItem.hbs
+++ b/packages/fiori/src/NotificationListItem.hbs
@@ -7,6 +7,7 @@
 	@click="{{_onclick}}"
 	role="option"
 	tabindex="{{_tabIndex}}"
+	dir="{{rtl}}"
 >
 
 	<div class="ui5-nli-avatar">
diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index 221fcfdfc72a..ae27ae40ea47 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -3,6 +3,7 @@ import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
 import { getI18nBundle, fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
 import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
 import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
+import { getRTL } from "@ui5/webcomponents-base/dist/config/RTL.js";
 
 import ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
 import Button from "@ui5/webcomponents/dist/Button.js";
@@ -375,6 +376,10 @@ class NotificationListItem extends ListItemBase {
 		});
 	}
 
+	get rtl() {
+		return getRTL() ? "rtl" : undefined;
+	}
+
 	get classes() {
 		return {
 			content: {
diff --git a/packages/fiori/src/themes/NotificationListItem.css b/packages/fiori/src/themes/NotificationListItem.css
index bd051a89cc93..03ca103bf15d 100644
--- a/packages/fiori/src/themes/NotificationListItem.css
+++ b/packages/fiori/src/themes/NotificationListItem.css
@@ -114,8 +114,6 @@
 .ui5-nli-footer-divider {
 	position: relative;
 	align-items: center;
-
-	/* implement rtl */
 	margin-left: 0.5rem;
 	margin-right: 0.625rem;
 }
@@ -127,7 +125,6 @@
 }
 
 .ui5-nli-footer-showMore {
-	/* implement rtl */
 	margin-left: 1rem;
 }
 
@@ -143,8 +140,6 @@
 .ui5-nli-prio-icon {
 	min-width: 1rem;
 	min-height: 1rem;
-
-	/* implement rtl */
 	padding-right: 0.5rem;
 }
 
@@ -166,11 +161,32 @@
 }
 
 .ui5-nli-action {
-	/* implement rtl */
 	margin-right: 0.5rem;
 }
 
 .ui5-nli-overflow-btn {
-	/* implement rtl */
 	margin-right: 0.5rem;
+}
+
+/* RTL */
+
+[dir="rtl"] .ui5-nli-footer-divider {
+	margin-right: 0.5rem;
+	margin-left: 0.625rem;
+}
+
+[dir="rtl"] .ui5-nli-footer-showMore {
+	margin-right: 1rem;
+}
+
+[dir="rtl"] .ui5-nli-prio-icon {
+	padding-right: 0.5rem;
+}
+
+[dir="rtl"] .ui5-nli-action {
+	margin-left: 0.5rem;
+}
+
+[dir="rtl"] .ui5-nli-overflow-btn {
+	margin-left: 0.5rem;
 }
\ No newline at end of file

From 1b1692409bf3f178e8e37446e2f0b244917d344f Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Tue, 5 May 2020 22:38:42 +0300
Subject: [PATCH 07/22] fix IE bugs with Avatar initials and cut off actions

---
 packages/fiori/src/themes/NotificationListItem.css | 1 +
 packages/fiori/test/pages/NotificationList.html    | 2 +-
 packages/main/src/themes/Avatar.css                | 1 -
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/packages/fiori/src/themes/NotificationListItem.css b/packages/fiori/src/themes/NotificationListItem.css
index 03ca103bf15d..7807d485ee10 100644
--- a/packages/fiori/src/themes/NotificationListItem.css
+++ b/packages/fiori/src/themes/NotificationListItem.css
@@ -77,6 +77,7 @@
 .ui5-nli-content {
 	display: flex;
 	flex-direction: column;
+	flex: 1;
 	width: 100%;
 	padding: 0 1rem 0 0.75rem;
 	font-family: var(--sapFontFamily);
diff --git a/packages/fiori/test/pages/NotificationList.html b/packages/fiori/test/pages/NotificationList.html
index c313779f4a6b..92c3c5c4dbc1 100644
--- a/packages/fiori/test/pages/NotificationList.html
+++ b/packages/fiori/test/pages/NotificationList.html
@@ -98,7 +98,7 @@ <h3>Slots</h3>
 		</ui5-li-notification>
 
 		<ui5-li-notification heading="New order (#2523)" truncate>
-			<div>. With a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
+			<div>And with a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
 
 			<span slot="footnotes">John SMith</span>
 			<span slot="footnotes">3 Days</span>
diff --git a/packages/main/src/themes/Avatar.css b/packages/main/src/themes/Avatar.css
index 242b8ce666f5..fd8b9d72d988 100644
--- a/packages/main/src/themes/Avatar.css
+++ b/packages/main/src/themes/Avatar.css
@@ -167,6 +167,5 @@
 }
 
 .ui5-avatar-initials {
-	position: absolute;
 	color: inherit;
 }
\ No newline at end of file

From a981576eb1f2e9060f43ceb9faed75fc6614bb28 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Tue, 5 May 2020 23:20:29 +0300
Subject: [PATCH 08/22] add ACC support

---
 packages/fiori/src/NotificationListItem.hbs   | 76 +++++++++++--------
 packages/fiori/src/NotificationListItem.js    | 20 ++++-
 .../fiori/src/i18n/messagebundle.properties   |  8 +-
 .../src/themes/NotifactionListItemPopover.css |  7 --
 .../fiori/src/themes/NotificationListItem.css |  2 +
 packages/main/src/Button.js                   |  3 +-
 packages/main/src/ListItemBase.js             |  4 +
 packages/main/test/pages/List.html            |  2 +-
 8 files changed, 76 insertions(+), 46 deletions(-)

diff --git a/packages/fiori/src/NotificationListItem.hbs b/packages/fiori/src/NotificationListItem.hbs
index edc288de3531..58db8764b19a 100644
--- a/packages/fiori/src/NotificationListItem.hbs
+++ b/packages/fiori/src/NotificationListItem.hbs
@@ -8,10 +8,41 @@
 	role="option"
 	tabindex="{{_tabIndex}}"
 	dir="{{rtl}}"
+	aria-labelledby="{{_id}}-heading {{_id}}-description {{_id}}-footer"
 >
+	{{!-- render the actions first in order to be first in the tab chain as well--}}
+	<div class="ui5-nli-actions">
+		{{#unless showOverflow}}
+			{{#each standardActions}}
+				<ui5-button
+					icon="{{this.icon}}"
+					class="ui5-nli-action"
+					@click="{{this.press}}"
+					data-ui5-external-action-item-id="{{this.refItemid}}"
+				>
+					{{this.text}}
+				</ui5-button>
+			{{/each}}
+		{{/unless}}
 
-	<div class="ui5-nli-avatar">
-		<slot name="avatar"></slot>
+		{{#if showOverflow}}
+			<ui5-button
+				icon="overflow"
+				design="Transparent"
+				@click="{{_onBtnOverflowClick}}"
+				class="ui5-nli-overflow-btn"
+				title="{{overflowBtnTitle}}"
+			></ui5-button>
+		{{/if}}
+
+		{{#if showClose}}
+			<ui5-button
+				icon="decline"
+				design="Transparent"
+				@click="{{_onBtnCloseClick}}"
+				title="{{closeBtnTitle}}"
+			></ui5-button>
+		{{/if}}
 	</div>
 
 	<div class="ui5-nli-content {{classes.content}}">
@@ -23,18 +54,18 @@
 				</ui5-icon>
 			{{/if}}
 
-			<div class="ui5-nli-title" part="heading">
+			<div id="{{_id}}-heading" class="ui5-nli-title" part="heading">
 				{{heading}}
 			</div>
 		</div>
 
 		{{#if hasDesc}}
-			<div class="ui5-nli-description">
+			<div id="{{_id}}-description" class="ui5-nli-description">
 				<slot></slot>
 			</div>
 		{{/if}}
 
-		<div class="ui5-nli-footer">
+		<div id="{{_id}}-footer" class="ui5-nli-footer">
 			{{#each footerItems}}
 				<slot name="{{slotName}}"></slot>
 				{{#if showDivider}}
@@ -45,34 +76,15 @@
 			<ui5-link
 				class="ui5-nli-footer-showMore"
 				?hidden="{{hideShowMore}}"
-				@click="{{_onShowMoreClick}}">{{showMoreText}}</ui5-link>
+				@click="{{_onShowMoreClick}}"
+				aria-hidden="true"
+			>
+				{{showMoreText}}
+			</ui5-link>
 		</div>
 	</div>
 
-	<div class="ui5-nli-actions">
-		{{#unless showOverflow}}
-			{{#each standardActions}}
-				<ui5-button
-					icon="{{this.icon}}"
-					class="ui5-nli-action"
-					@click="{{this.press}}"
-					data-ui5-external-action-item-id="{{this.refItemid}}"
-				>{{this.text}}
-				</ui5-button>
-			{{/each}}
-		{{/unless}}
-
-		{{#if showOverflow}}
-			<ui5-button
-				icon="overflow"
-				design="Transparent"
-				@click="{{_onBtnOverflowClick}}"
-				class="ui5-nli-overflow-btn">
-			</ui5-button>
-		{{/if}}
-
-		{{#if showClose}}
-			<ui5-button icon="decline" design="Transparent" @click="{{_onBtnCloseClick}}"></ui5-button>
-		{{/if}}
+	<div class="ui5-nli-avatar">
+		<slot name="avatar"></slot>
 	</div>
-</li>	
\ No newline at end of file
+</li>
\ No newline at end of file
diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index ae27ae40ea47..9a73dbc77fc8 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -10,17 +10,21 @@ import Button from "@ui5/webcomponents/dist/Button.js";
 import Icon from "@ui5/webcomponents/dist/Icon.js";
 import Priority from "@ui5/webcomponents/dist/types/Priority.js";
 
-// icons
+// Icons
 import "@ui5/webcomponents-icons/dist/icons/decline.js";
 import "@ui5/webcomponents-icons/dist/icons/message-success.js";
 import "@ui5/webcomponents-icons/dist/icons/message-error.js";
 import "@ui5/webcomponents-icons/dist/icons/message-warning.js";
 import "@ui5/webcomponents-icons/dist/icons/overflow.js";
 
-// text
-import { NOTIFICATIONLISTITEM_SHOW_MORE } from "./generated/i18n/i18n-defaults.js";
+// Texts
+import {
+	NOTIFICATIONLISTITEM_SHOW_MORE,
+	NOTIFICATIONLISTITEM_OVERLOW_BTN_TITLE,
+	NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE,
+} from "./generated/i18n/i18n-defaults.js";
 
-// Template
+// Templates
 import NotificationListItemTemplate from "./generated/templates/NotificationListItemTemplate.lit.js";
 import NotificationListItemPopoverTemplate from "./generated/templates/NotificationListItemPopoverTemplate.lit.js";
 
@@ -289,6 +293,14 @@ class NotificationListItem extends ListItemBase {
 		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_SHOW_MORE);
 	}
 
+	get overflowBtnTitle() {
+		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_OVERLOW_BTN_TITLE);
+	}
+
+	get closeBtnTitle() {
+		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE);
+	}
+
 	get hideShowMore() {
 		if (this.truncate && this._showMore) {
 			return undefined;
diff --git a/packages/fiori/src/i18n/messagebundle.properties b/packages/fiori/src/i18n/messagebundle.properties
index 97f1074ea203..1dcf65093564 100644
--- a/packages/fiori/src/i18n/messagebundle.properties
+++ b/packages/fiori/src/i18n/messagebundle.properties
@@ -1,9 +1,15 @@
 #This is the resource bundle for the UI5 Web Components
 #__ldi.translation.uuid=95d47730-48a4-4d6d-92f6-61f8c9d8f274
 
-#XTXT: Text for the 'ShowMore' link of the  NotificationListItem
+#XTXT: Text for the 'ShowMore' link in the NotificationListItem
 NOTIFICATIONLISTITEM_SHOW_MORE=Show More
 
+#XBUT: Tooltip text for 'Overflow' button in the NotificationListItem
+NOTIFICATIONLISTITEM_OVERLOW_BTN_TITLE=More
+
+#XBUT: Tooltip text for 'Close' button in the NotificationListItem
+NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE=Close
+
 #XBUT: Button text for cancel button in the UploadCollectionItem
 UPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT=Cancel
 
diff --git a/packages/fiori/src/themes/NotifactionListItemPopover.css b/packages/fiori/src/themes/NotifactionListItemPopover.css
index 18d90838602c..6c1cbb347ef8 100644
--- a/packages/fiori/src/themes/NotifactionListItemPopover.css
+++ b/packages/fiori/src/themes/NotifactionListItemPopover.css
@@ -2,11 +2,4 @@
 	display: flex;
 	flex-direction: column;
 	padding: 0 0.5rem;
-}
-
-.ui5-nli-overflow-content {
-	display: flex;
-	align-items: center;
-	height: var(--_ui5_tc_item_text);
-	pointer-events: none;
 }
\ No newline at end of file
diff --git a/packages/fiori/src/themes/NotificationListItem.css b/packages/fiori/src/themes/NotificationListItem.css
index 7807d485ee10..7615510016c9 100644
--- a/packages/fiori/src/themes/NotificationListItem.css
+++ b/packages/fiori/src/themes/NotificationListItem.css
@@ -3,6 +3,7 @@
 	width: 100%;
 	min-height: var(--_ui5_list_item_base_height);
 	background: var(--ui5-listitem-background-color);
+	cursor: pointer;
 }
 
 :host([has-border]) {
@@ -67,6 +68,7 @@
 
 .ui5-nli-root {
 	display: flex;
+	flex-direction: row-reverse;
 	position: relative;
 	width: 100%;
 	padding: 1rem 0.5rem 1rem 1rem;
diff --git a/packages/main/src/Button.js b/packages/main/src/Button.js
index bf76a35219dd..a675f28c4f4b 100644
--- a/packages/main/src/Button.js
+++ b/packages/main/src/Button.js
@@ -320,7 +320,8 @@ class Button extends UI5Element {
 		this.focused = false;
 	}
 
-	_onfocusin() {
+	_onfocusin(event) {
+		event.isMarked = "button";
 		this.focused = true;
 	}
 
diff --git a/packages/main/src/ListItemBase.js b/packages/main/src/ListItemBase.js
index 6901c1107aa2..62b7597393c6 100644
--- a/packages/main/src/ListItemBase.js
+++ b/packages/main/src/ListItemBase.js
@@ -71,6 +71,10 @@ class ListItemBase extends UI5Element {
 	}
 
 	_onfocusin(event) {
+		if (event.isMarked === "button") {
+			return;
+		}
+
 		this.focused = true;
 		this.fireEvent("_focused", event);
 	}
diff --git a/packages/main/test/pages/List.html b/packages/main/test/pages/List.html
index 6455ffdfeece..2cd05626ad8f 100644
--- a/packages/main/test/pages/List.html
+++ b/packages/main/test/pages/List.html
@@ -245,7 +245,7 @@ <h3 id="infoLbl">Items 3/3</h3>
 		var getItems = function getItems(items) {
 			return items.map(function (item) {
 				return '<ui5-li  id="' + item.id + '">' + item.textContent + '</ui5-li>';
-			}).join();
+			}).join("");
 		};
 
 		var cleanList = function cleanList() {

From 54d6783ee99cf247eb6cbdd9ab00a794570234b8 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Wed, 6 May 2020 17:34:22 +0300
Subject: [PATCH 09/22] add NotificationListGroupItem

---
 packages/fiori/bundle.esm.js                  |   3 +-
 .../fiori/src/NotificationListGroupItem.hbs   |  74 ++++
 .../fiori/src/NotificationListGroupItem.js    | 347 +++++++++++++++++
 packages/fiori/src/NotificationListItem.hbs   |  27 +-
 packages/fiori/src/NotificationListItem.js    |  43 ++-
 .../fiori/src/NotificationListItemPopover.hbs |   2 +-
 .../fiori/src/NotificationOverflowAction.js   |   4 +-
 .../fiori/src/i18n/messagebundle.properties   |   9 +
 .../fiori/src/themes/InvisibleTextStyles.css  |   7 +
 .../src/themes/NotificationListGroupItem.css  |  81 ++++
 .../fiori/src/themes/NotificationListItem.css |  60 +--
 .../src/themes/NotificationListItemBase.css   |  26 ++
 .../fiori/src/themes/NotificationPrioIcon.css |  21 ++
 .../test/pages/NotificationListGroupItem.html | 326 ++++++++++++++++
 ...ionList.html => NotificationListItem.html} |   7 +
 .../NotificationListGroupItem.sample.html     | 355 ++++++++++++++++++
 .../samples/NotificationListItem.sample.html  |   2 +-
 .../test/specs/NotificationListItem.spec.js   |   0
 packages/main/src/List.js                     |  26 +-
 .../build-scripts/samples-prepare.js          |   4 +-
 20 files changed, 1345 insertions(+), 79 deletions(-)
 create mode 100644 packages/fiori/src/NotificationListGroupItem.hbs
 create mode 100644 packages/fiori/src/NotificationListGroupItem.js
 create mode 100644 packages/fiori/src/themes/InvisibleTextStyles.css
 create mode 100644 packages/fiori/src/themes/NotificationListGroupItem.css
 create mode 100644 packages/fiori/src/themes/NotificationListItemBase.css
 create mode 100644 packages/fiori/src/themes/NotificationPrioIcon.css
 create mode 100644 packages/fiori/test/pages/NotificationListGroupItem.html
 rename packages/fiori/test/pages/{NotificationList.html => NotificationListItem.html} (99%)
 create mode 100644 packages/fiori/test/samples/NotificationListGroupItem.sample.html
 create mode 100644 packages/fiori/test/specs/NotificationListItem.spec.js

diff --git a/packages/fiori/bundle.esm.js b/packages/fiori/bundle.esm.js
index ee25e43394b5..3c1c7f9df6ff 100644
--- a/packages/fiori/bundle.esm.js
+++ b/packages/fiori/bundle.esm.js
@@ -13,5 +13,6 @@ import ShellBar from "./dist/ShellBar.js";
 import ShellBarItem from "./dist/ShellBarItem.js";
 import UploadCollection from "./dist/UploadCollection.js";
 import UploadCollectionItem from "./dist/UploadCollectionItem.js";
-import NotificationListItem from "./dist/NotificationListItem.js";
+import NotificationListItem from "./dist/NotificationListItem.js"
+import NotificationListGroupItem from "./dist/NotificationListGroupItem.js";
 import NotificationOverflowAction from "./dist/NotificationOverflowAction.js";
\ No newline at end of file
diff --git a/packages/fiori/src/NotificationListGroupItem.hbs b/packages/fiori/src/NotificationListGroupItem.hbs
new file mode 100644
index 000000000000..a79e1154b235
--- /dev/null
+++ b/packages/fiori/src/NotificationListGroupItem.hbs
@@ -0,0 +1,74 @@
+<li
+	class="ui5-ng-root ui5-nli-focusable"
+	@focusin="{{_onfocusin}}"
+	@focusout="{{_onfocusout}}"
+	@keydown="{{_onkeydown}}"
+	role="option"
+	tabindex="{{_tabIndex}}"
+	dir="{{rtl}}"
+	aria-labelledby="{{_id}}-heading {{_id}}-invisibleText"
+>
+	<div class="ui5-ng-header">
+		<ui5-button
+			icon="navigation-right-arrow"
+			design="Transparent"
+			@click="{{_onBtnToggleClick}}"
+			class="ui5-ng-toggle-btn"
+		></ui5-button>
+
+		{{#if hasPriority}}
+			<ui5-icon
+				class="ui5-prio-icon ui5-prio-icon--{{priorityIcon}}"
+				name="{{priorityIcon}}">
+			</ui5-icon>
+		{{/if}}
+
+		<div id="{{_id}}-heading" class="ui5-ng-heading" part="heading">
+			{{heading}}
+		</div>
+
+		{{#if showCounter}}
+			<span class="ui5-ng-counter">{{counter}}</span>
+		{{/if}}
+
+		<div class="ui5-ng-divider"></div>
+
+		{{#unless collapsed}}
+			{{#if showOverflow}}
+				<ui5-button
+					icon="overflow"
+					design="Transparent"
+					@click="{{_onBtnOverflowClick}}"
+					class="ui5-ng-overflow-btn"
+					title="{{overflowBtnTitle}}"
+				></ui5-button>
+			{{else}}
+				{{#each standardActions}}
+					<ui5-button
+						icon="{{this.icon}}"
+						class="ui5-ng-action"
+						@click="{{this.press}}"
+						data-ui5-external-action-item-id="{{this.refItemid}}"
+					>
+						{{this.text}}
+					</ui5-button>
+				{{/each}}
+			{{/if}}
+		{{/unless}}
+
+		{{#if showClose}}
+			<ui5-button
+				icon="decline"
+				design="Transparent"
+				@click="{{_onBtnCloseClick}}"
+				title="{{closeBtnTitle}}"
+			></ui5-button>
+		{{/if}}
+
+		<span id="{{_id}}-invisibleText" class="ui5-hidden-text">{{accInvisibleText}}</span>
+	</div>
+
+	<ui5-list class="ui5-ng-items">
+		<slot></slot>
+	</ui5-list>
+</li>
\ No newline at end of file
diff --git a/packages/fiori/src/NotificationListGroupItem.js b/packages/fiori/src/NotificationListGroupItem.js
new file mode 100644
index 000000000000..908ef228b391
--- /dev/null
+++ b/packages/fiori/src/NotificationListGroupItem.js
@@ -0,0 +1,347 @@
+import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
+import { isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
+import { getI18nBundle, fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
+import { getRTL } from "@ui5/webcomponents-base/dist/config/RTL.js";
+
+import ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
+import Button from "@ui5/webcomponents/dist/Button.js";
+import Icon from "@ui5/webcomponents/dist/Icon.js";
+import Priority from "@ui5/webcomponents/dist/types/Priority.js";
+
+// Icons
+import "@ui5/webcomponents-icons/dist/icons/decline.js";
+import "@ui5/webcomponents-icons/dist/icons/message-success.js";
+import "@ui5/webcomponents-icons/dist/icons/message-error.js";
+import "@ui5/webcomponents-icons/dist/icons/message-warning.js";
+import "@ui5/webcomponents-icons/dist/icons/overflow.js";
+
+// Texts
+import {
+	NOTIFICATIONGROUPITEM_TXT,
+	NOTIFICATIONGROUPITEM_PRIORITY_TXT,
+	NOTIFICATIONGROUPITEM_COUNTER_TXT,
+	NOTIFICATIONLISTITEM_OVERLOW_BTN_TITLE,
+	NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE,
+} from "./generated/i18n/i18n-defaults.js";
+
+// Templates
+import NotificationListGroupItemTemplate from "./generated/templates/NotificationListGroupItemTemplate.lit.js";
+import NotificationListItemPopoverTemplate from "./generated/templates/NotificationListItemPopoverTemplate.lit.js";
+
+// Styles
+import NotificationListGroupItemCss from "./generated/themes/NotificationListGroupItem.css.js";
+import NotifactionListItemPopoverCss from "./generated/themes/NotifactionListItemPopover.css.js";
+
+const PRIORITY_ICONS_MAP = {
+	"High": "message-error",
+	"Medium": "message-warning",
+	"Low": "message-success",
+};
+
+/**
+ * @public
+ */
+const metadata = {
+	tag: "ui5-li-notification-group",
+	managedSlots: true,
+	properties: /** @lends sap.ui.webcomponents.fiori.NotificationListGroupItem.prototype */ {
+		/**
+		 * Defines the <code>heading</code> of the group.
+		 * @type {string}
+		 * @defaultvalue ""
+		 * @public
+		 */
+		heading: {
+			type: String,
+		},
+
+		/**
+		 * Defines the <code>priority</code> of the group.
+		 * @type {Priority}
+		 * @defaultvalue "None"
+		 * @public
+		 */
+		priority: {
+			type: Priority,
+			defaultValue: Priority.None,
+		},
+
+		/**
+		 * Defines if the group is collapsed or expanded.
+		 * @type {boolean}
+		 * @defaultvalue false
+		 * @public
+		 */
+		collapsed: {
+			type: Boolean,
+		},
+
+		/**
+		 * Defines if the <code>close</code> button would be displayed.
+		 * @type {boolean}
+		 * @defaultvalue false
+		 * @public
+		 */
+		showClose: {
+			type: Boolean,
+		},
+
+		/**
+		 * Defines if the items <code>counter</code> would be displayed.
+		 * @type {boolean}
+		 * @defaultvalue false
+		 * @public
+		 */
+		showCounter: {
+			type: Boolean,
+		},
+	},
+	slots: /** @lends sap.ui.webcomponents.fiori.NotificationListGroupItem.prototype */ {
+
+		/**
+		 * Defines the actions, displayed in the <code>ui5-li-notification-group</code>.
+		 * <br><br>
+		 * <b>Note:</b> use the <code>ui5-notification-overflow-action</code> component.
+		 *
+		 * @type {HTMLElement}
+		 * @slot
+		 * @public
+		 */
+		actions: {
+			type: HTMLElement,
+		},
+
+		/**
+		 * Defines the items of the <code>ui5-li-notification-group</code>,
+		 * usually <code>ui5-li-notification</code> items.
+		 *
+		 * @type {HTMLElement[]}
+		 * @slot
+		 * @public
+		 */
+		"default": {
+			propertyName: "items",
+			type: HTMLElement,
+		},
+	},
+	events: /** @lends sap.ui.webcomponents.fiori.NotificationListGroupItem.prototype */ {
+		_close: {},
+
+		/**
+		 * Fired when the <code>ui5-li-notification-group</code> is expanded/collapsed by user interaction.
+		 *
+		 * @event
+		 * @public
+		 */
+		toggle: {},
+	},
+};
+
+/**
+ * @class
+ *
+ * <h3 class="comment-api-title">Overview</h3>
+ * The <code>ui5-li-notification-group</code> is a special type of list item,
+ * that unlike others can group items within self, usually <code>ui5-li-notification</code> items.
+ * <br>
+ *
+ * The component consists of:
+ * <ul>
+ * <li><code>Toggle</code> button to expand and collapse the group</li>
+ * <li><code>Priority</code> icon to display the priority of the group</li>
+ * <li><code>Heading</code> to entitle the group</li>
+ * <li>Custom actions</li>
+ * <li>Items of the group</li>
+ * </ul>
+ *
+ * <h3>Usage</h3>
+ * The component can be used in a standard <code>ui5-list</code>.
+ *
+ * <h3>ES6 Module Import</h3>
+ *
+ * <code>import @ui5/webcomponents/dist/NotificationListGroupItem.js";</code>
+ * <br>
+ * <code>import @ui5/webcomponents/dist/NotificationOverflowAction.js";</code> (optional)
+ * @constructor
+ * @author SAP SE
+ * @alias sap.ui.webcomponents.fiori.NotificationListGroupItem
+ * @extends ListItemBase
+ * @tagname ui5-li-notification-group
+ * @since 1.0.0-rc.8
+ * @appenddocs NotificationOverflowAction
+ * @public
+ */
+class NotificationListGroupItem extends ListItemBase {
+	constructor() {
+		super();
+		this.i18nBundle = getI18nBundle("@ui5/webcomponents-fiori");
+	}
+
+	static get metadata() {
+		return metadata;
+	}
+
+	static get render() {
+		return litRender;
+	}
+
+	static get styles() {
+		return NotificationListGroupItemCss;
+	}
+
+	static get template() {
+		return NotificationListGroupItemTemplate;
+	}
+
+	static get staticAreaTemplate() {
+		return NotificationListItemPopoverTemplate;
+	}
+
+	static get staticAreaStyles() {
+		return NotifactionListItemPopoverCss;
+	}
+
+	static async onDefine() {
+		await Promise.all([
+			Button.define(),
+			Icon.define(),
+			fetchI18nBundle("@ui5/webcomponents-fiori"),
+		]);
+	}
+
+	get hasPriority() {
+		return this.priority !== Priority.None;
+	}
+
+	get priorityIcon() {
+		return PRIORITY_ICONS_MAP[this.priority];
+	}
+
+	get overflowBtnTitle() {
+		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_OVERLOW_BTN_TITLE);
+	}
+
+	get closeBtnTitle() {
+		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE);
+	}
+
+	get overflowButtonDOM() {
+		return this.shadowRoot.querySelector(".ui5-ng-overflow-btn");
+	}
+
+	get showOverflow() {
+		return !!this.overflowActions.length;
+	}
+
+	get overflowActions() {
+		if (this.actions.length <= 1) {
+			return [];
+		}
+
+		return this.actionsInfo;
+	}
+
+	get standardActions() {
+		if (this.actions.length > 1) {
+			return [];
+		}
+
+		return this.actionsInfo;
+	}
+
+	get actionsInfo() {
+		return this.actions.map(action => {
+			return {
+				icon: action.icon,
+				text: action.text,
+				press: this._onCustomActionClick.bind(this),
+				refItemid: action._id,
+			};
+		});
+	}
+
+	get rtl() {
+		return getRTL() ? "rtl" : undefined;
+	}
+
+	get itemsCount() {
+		return this.items.length;
+	}
+
+	get counter() {
+		return `(${this.itemsCount})`;
+	}
+
+	get accInvisibleText() {
+		const groupTxt = this.i18nBundle.getText(NOTIFICATIONGROUPITEM_TXT);
+		const prioTxt = this.i18nBundle.getText(NOTIFICATIONGROUPITEM_PRIORITY_TXT);
+		const counterTxt = this.i18nBundle.getText(NOTIFICATIONGROUPITEM_COUNTER_TXT);
+		const counter = this.showCounter ? `${counterTxt} ${this.itemsCount}` : "";
+
+		return `${groupTxt}. ${this.priority} ${prioTxt}. ${counter}`;
+	}
+
+	/**
+	 * Event handlers
+	 *
+	 */
+
+	_onBtnCloseClick() {
+		this.fireEvent("_close", { item: this });
+	}
+
+	_onBtnOverflowClick() {
+		this.openOverflow();
+	}
+
+	_onBtnToggleClick() {
+		this.collapsed = !this.collapsed;
+		this.fireEvent("toggle", { item: this });
+	}
+
+	_onCustomActionClick(event) {
+		const refItemId = event.target.getAttribute("data-ui5-external-action-item-id");
+
+		if (refItemId) {
+			this.getActionByID(refItemId).fireEvent("click", {
+				targetRef: event.target,
+			}, true);
+
+			this.closeOverflow();
+		}
+	}
+
+	_onkeydown(event) {
+		super._onkeydown(event);
+
+		if (isSpace(event)) {
+			event.preventDefault();
+		}
+	}
+
+	/**
+	 * Private
+	 */
+	getActionByID(id) {
+		return this.actions.find(action => action._id === id);
+	}
+
+	async openOverflow() {
+		const overflowPopover = await this.getOverflowPopover();
+		overflowPopover.openBy(this.overflowButtonDOM);
+	}
+
+	async closeOverflow() {
+		const overflowPopover = await this.getOverflowPopover();
+		overflowPopover.close();
+	}
+
+	async getOverflowPopover() {
+		const staticAreaItem = await this.getStaticAreaItemDomRef();
+		return staticAreaItem.querySelector(".ui5-notification-overflow-popover");
+	}
+}
+
+NotificationListGroupItem.define();
+
+export default NotificationListGroupItem;
diff --git a/packages/fiori/src/NotificationListItem.hbs b/packages/fiori/src/NotificationListItem.hbs
index 58db8764b19a..0bc48fa97eca 100644
--- a/packages/fiori/src/NotificationListItem.hbs
+++ b/packages/fiori/src/NotificationListItem.hbs
@@ -1,5 +1,5 @@
 <li
-	class="ui5-nli-root"
+	class="ui5-nli-root ui5-nli-focusable"
 	@focusin="{{_onfocusin}}"
 	@focusout="{{_onfocusout}}"
 	@keydown="{{_onkeydown}}"
@@ -8,11 +8,18 @@
 	role="option"
 	tabindex="{{_tabIndex}}"
 	dir="{{rtl}}"
-	aria-labelledby="{{_id}}-heading {{_id}}-description {{_id}}-footer"
+	aria-labelledby="{{ariaLabelledBy}}"
 >
-	{{!-- render the actions first in order to be first in the tab chain as well--}}
 	<div class="ui5-nli-actions">
-		{{#unless showOverflow}}
+		{{#if showOverflow}}
+			<ui5-button
+				icon="overflow"
+				design="Transparent"
+				@click="{{_onBtnOverflowClick}}"
+				class="ui5-nli-overflow-btn"
+				title="{{overflowBtnTitle}}"
+			></ui5-button>
+		{{else}}
 			{{#each standardActions}}
 				<ui5-button
 					icon="{{this.icon}}"
@@ -23,16 +30,6 @@
 					{{this.text}}
 				</ui5-button>
 			{{/each}}
-		{{/unless}}
-
-		{{#if showOverflow}}
-			<ui5-button
-				icon="overflow"
-				design="Transparent"
-				@click="{{_onBtnOverflowClick}}"
-				class="ui5-nli-overflow-btn"
-				title="{{overflowBtnTitle}}"
-			></ui5-button>
 		{{/if}}
 
 		{{#if showClose}}
@@ -49,7 +46,7 @@
 		<div class="ui5-nli-heading">
 			{{#if hasPriority}}
 				<ui5-icon
-					class="ui5-nli-prio-icon ui5-nli-prio-icon--{{priorityIcon}}"
+					class="ui5-prio-icon ui5-prio-icon--{{priorityIcon}}"
 					name="{{priorityIcon}}">
 				</ui5-icon>
 			{{/if}}
diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index 9a73dbc77fc8..f82918efa3e7 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -89,6 +89,20 @@ const metadata = {
 			type: Boolean,
 		},
 
+
+		/**
+		 * Defines if the <code>notification</code> is new or has been already read.
+		 * <br><br>
+		 * <b>Note:</b> when set to <code>false</code> the <code>heading</code> has bold font
+		 * and if set to true - it has a normal font.
+		 * @type {boolean}
+		 * @defaultvalue false
+		 * @public
+		 */
+		read: {
+			type: Boolean,
+		},
+
 		/**
 		 * Defines the state of the <code>heading</code> and <code>decription</code>,
 		 * if less or more information is displayed.
@@ -194,11 +208,12 @@ const metadata = {
  * <h3>ES6 Module Import</h3>
  *
  * <code>import @ui5/webcomponents/dist/NotificationListItem.js";</code>
+ * <br>
  * <code>import @ui5/webcomponents/dist/NotificationOverflowAction.js";</code> (optional)
  * @constructor
  * @author SAP SE
  * @alias sap.ui.webcomponents.fiori.NotificationListItem
- * @extends UI5Element
+ * @extends ListItemBase
  * @tagname ui5-li-notification
  * @appenddocs NotificationOverflowAction
  * @since 1.0.0-rc.8
@@ -388,6 +403,24 @@ class NotificationListItem extends ListItemBase {
 		});
 	}
 
+	get ariaLabelledBy() {
+		const ids = [];
+
+		if (this.hasHeading) {
+			ids.push(`${this._id}-heading`);
+		}
+		if (this.hasDesc) {
+			ids.push(`${this._id}-description`);
+		}
+
+		if (this.hasFootNotes) {
+			ids.push(`${this._id}-footer`);
+		}
+
+		return ids.join(" ");
+	}
+
+
 	get rtl() {
 		return getRTL() ? "rtl" : undefined;
 	}
@@ -492,18 +525,18 @@ class NotificationListItem extends ListItemBase {
 	}
 
 	async openOverflow() {
-		const overflowPopover = await this.overflowPopover();
+		const overflowPopover = await this.getOverflowPopover();
 		overflowPopover.openBy(this.overflowButtonDOM);
 	}
 
 	async closeOverflow() {
-		const overflowPopover = await this.overflowPopover();
+		const overflowPopover = await this.getOverflowPopover();
 		overflowPopover.close();
 	}
 
-	async overflowPopover() {
+	async getOverflowPopover() {
 		const staticAreaItem = await this.getStaticAreaItemDomRef();
-		return staticAreaItem.querySelector(".ui5-nli-overflow-popover");
+		return staticAreaItem.querySelector(".ui5-notification-overflow-popover");
 	}
 }
 
diff --git a/packages/fiori/src/NotificationListItemPopover.hbs b/packages/fiori/src/NotificationListItemPopover.hbs
index 545ad4a7bc8b..e1b92fb862f4 100644
--- a/packages/fiori/src/NotificationListItemPopover.hbs
+++ b/packages/fiori/src/NotificationListItemPopover.hbs
@@ -1,5 +1,5 @@
 <ui5-popover
-	class="ui5-nli-overflow-popover"
+	class="ui5-notification-overflow-popover"
 	placement-type="Bottom"
 	horizontal-align="Right"
 	no-arrow
diff --git a/packages/fiori/src/NotificationOverflowAction.js b/packages/fiori/src/NotificationOverflowAction.js
index 397573547d9b..3c5efb682adc 100644
--- a/packages/fiori/src/NotificationOverflowAction.js
+++ b/packages/fiori/src/NotificationOverflowAction.js
@@ -40,8 +40,8 @@ const metadata = {
 
 /**
  * @class
- * The <code>ui5-notification-overflow-action</code> represents an astract action,
- * used in the <code>ui5-li-notification</code>.
+ * The <code>ui5-notification-overflow-action</code> represents an abstract action,
+ * used in the <code>ui5-li-notification</code> and the <code>ui5-li-notification-group</code> items.
  *
  * @constructor
  * @author SAP SE
diff --git a/packages/fiori/src/i18n/messagebundle.properties b/packages/fiori/src/i18n/messagebundle.properties
index 1dcf65093564..add1934f2376 100644
--- a/packages/fiori/src/i18n/messagebundle.properties
+++ b/packages/fiori/src/i18n/messagebundle.properties
@@ -10,6 +10,15 @@ NOTIFICATIONLISTITEM_OVERLOW_BTN_TITLE=More
 #XBUT: Tooltip text for 'Close' button in the NotificationListItem
 NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE=Close
 
+#XTXT: Text for the NotificationListGroupItem
+NOTIFICATIONGROUPITEM_TXT=Notification group
+
+#XTXT: Text for the NotificationListGroupItem priority
+NOTIFICATIONGROUPITEM_PRIORITY_TXT=Priority
+
+#XTXT: Text for the NotificationListGroupItem counter
+NOTIFICATIONGROUPITEM_COUNTER_TXT=Counter
+
 #XBUT: Button text for cancel button in the UploadCollectionItem
 UPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT=Cancel
 
diff --git a/packages/fiori/src/themes/InvisibleTextStyles.css b/packages/fiori/src/themes/InvisibleTextStyles.css
new file mode 100644
index 000000000000..4d2cca713f01
--- /dev/null
+++ b/packages/fiori/src/themes/InvisibleTextStyles.css
@@ -0,0 +1,7 @@
+.ui5-hidden-text {
+	position: absolute;
+	clip: rect(1px,1px,1px,1px);
+	user-select: none;
+	left: 0;
+	top: 0;
+}
\ No newline at end of file
diff --git a/packages/fiori/src/themes/NotificationListGroupItem.css b/packages/fiori/src/themes/NotificationListGroupItem.css
new file mode 100644
index 000000000000..2face279664b
--- /dev/null
+++ b/packages/fiori/src/themes/NotificationListGroupItem.css
@@ -0,0 +1,81 @@
+@import "./InvisibleTextStyles.css";
+@import "./NotificationListItemBase.css";
+@import "./NotificationPrioIcon.css";
+
+:host(:not([collapsed])) .ui5-ng-toggle-btn {
+	transform: rotate(90deg);
+}
+
+:host([collapsed]) .ui5-ng-items {
+	display: none;
+}
+
+.ui5-ng-root {
+	display: flex;
+	flex-direction: column;
+	position: relative;
+	width: 100%;
+	box-sizing: border-box;
+}
+
+.ui5-ng-header {
+	display: flex;
+	align-items: center;
+	padding: 0.75rem 0.5rem 0.25rem 0.75rem;
+	width: 100%;
+	border-bottom: 0.0625rem solid var(--sapList_GroupHeaderBorderColor);
+	box-sizing: border-box;
+	cursor: default;
+}
+
+.ui5-ng-toggle-btn {
+	margin-right: 1rem;
+	cursor: pointer;
+}
+
+.ui5-ng-heading {
+	color: var(--sapGroup_TitleTextColor);
+	font-family: var(--sapFontFamily);
+	font-size: var(--sapFontHeader6Size);
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+
+.ui5-ng-divider {
+	flex: 1;
+}
+
+.ui5-ng-counter {
+	margin-left: 0.25rem;
+	margin-right: 1rem;
+	color: var(--sapList_TableGroupHeaderTextColor);
+	font-size: var(--sapFontHeader6Size);
+	font-family: var(--sapFontHeaderFamily);
+}
+
+.ui5-ng-action {
+	flex-shrink: 0;
+	margin-right: 0.5rem;
+}
+
+.ui5-ng-overflow-btn {
+	margin-right: 0.5rem;
+}
+
+[dir="rtl"] .ui5-ng-action {
+	margin-left: 0.5rem;
+}
+
+[dir="rtl"] .ui5-ng-overflow-btn {
+	margin-left: 0.5rem;
+}
+
+[dir="rtl"] .ui5-ng-toggle-btn {
+	margin-left: 1rem;
+}
+
+[dir="rtl"] .ui5-ng-counter {
+	margin-right: 0.25rem;
+	margin-left: 1rem;
+}
\ No newline at end of file
diff --git a/packages/fiori/src/themes/NotificationListItem.css b/packages/fiori/src/themes/NotificationListItem.css
index 7615510016c9..c6ce94baeccd 100644
--- a/packages/fiori/src/themes/NotificationListItem.css
+++ b/packages/fiori/src/themes/NotificationListItem.css
@@ -1,29 +1,5 @@
-:host(:not([hidden])) {
-	display: block;
-	width: 100%;
-	min-height: var(--_ui5_list_item_base_height);
-	background: var(--ui5-listitem-background-color);
-	cursor: pointer;
-}
-
-:host([has-border]) {
-	border-bottom: var(--ui5-listitem-border-bottom);
-}
-
-:host([focused]) .ui5-nli-root {
-	outline: none;
-}
-
-:host([focused]) .ui5-nli-root:after {
-	content: "";
-	border: var(--_ui5_listitembase_focus_width) dotted var(--sapContent_FocusColor);
-	position: absolute;
-	top: 0;
-	right: 0;
-	bottom: 0;
-	left: 0;
-	pointer-events: none;
-}
+@import "./NotificationListItemBase.css";
+@import "./NotificationPrioIcon.css";
 
 :host([truncate]) .ui5-nli-title {
 	display: -webkit-box;
@@ -47,6 +23,9 @@
 	-webkit-line-clamp: unset;
 }
 
+:host([read]) .ui5-nli-title {
+	font-weight: normal;
+}
 
 /* IE */
 :host([truncate]) .ui5-nli-content--ie .ui5-nli-description {
@@ -89,10 +68,13 @@
 .ui5-nli-heading {
 	display: flex;
 	margin-bottom: 0.25rem;
+	box-sizing: border-box;
+}
+
+.ui5-nli-title {
 	color: var(--sapGroup_TitleTextColor);
 	font-weight: bold;
 	font-size: var(--sapFontHeader6Size);
-	box-sizing: border-box;
 }
 
 .ui5-nli-description {
@@ -139,28 +121,10 @@
 	overflow: hidden;
 }
 
-/* Priority icon */
-.ui5-nli-prio-icon {
-	min-width: 1rem;
-	min-height: 1rem;
-	padding-right: 0.5rem;
-}
-
-.ui5-nli-prio-icon--message-error {
-	color: var(--sapNegativeElementColor);
-}
-
-.ui5-nli-prio-icon--message-warning {
-	color: var(--sapCriticalElementColor);
-}
-
-.ui5-nli-prio-icon--message-success {
-	color: var(--sapPositiveElementColor);
-}
-
 /* Actions */
 .ui5-nli-actions {
 	display: flex;
+	box-sizing: border-box;
 }
 
 .ui5-nli-action {
@@ -182,10 +146,6 @@
 	margin-right: 1rem;
 }
 
-[dir="rtl"] .ui5-nli-prio-icon {
-	padding-right: 0.5rem;
-}
-
 [dir="rtl"] .ui5-nli-action {
 	margin-left: 0.5rem;
 }
diff --git a/packages/fiori/src/themes/NotificationListItemBase.css b/packages/fiori/src/themes/NotificationListItemBase.css
new file mode 100644
index 000000000000..19710cdfb069
--- /dev/null
+++ b/packages/fiori/src/themes/NotificationListItemBase.css
@@ -0,0 +1,26 @@
+:host(:not([hidden])) {
+	display: block;
+	width: 100%;
+	min-height: var(--_ui5_list_item_base_height);
+	background: var(--ui5-listitem-background-color);
+	cursor: pointer;
+}
+
+:host([has-border]) {
+	border-bottom: var(--ui5-listitem-border-bottom);
+}
+
+:host([focused]) .ui5-nli-focusable {
+	outline: none;
+}
+
+:host([focused]) .ui5-nli-focusable:after {
+	content: "";
+	border: var(--_ui5_listitembase_focus_width) dotted var(--sapContent_FocusColor);
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	pointer-events: none;
+}
diff --git a/packages/fiori/src/themes/NotificationPrioIcon.css b/packages/fiori/src/themes/NotificationPrioIcon.css
new file mode 100644
index 000000000000..ee53f81fa8a2
--- /dev/null
+++ b/packages/fiori/src/themes/NotificationPrioIcon.css
@@ -0,0 +1,21 @@
+.ui5-prio-icon {
+	min-width: 1rem;
+	min-height: 1rem;
+	padding-right: 0.5rem;
+}
+
+.ui5-prio-icon--message-error {
+	color: var(--sapNegativeElementColor);
+}
+
+.ui5-prio-icon--message-warning {
+	color: var(--sapCriticalElementColor);
+}
+
+.ui5-prio-icon--message-success {
+	color: var(--sapPositiveElementColor);
+}
+
+[dir="rtl"] .ui5-prio-icon {
+	padding-right: 0.5rem;
+}
\ No newline at end of file
diff --git a/packages/fiori/test/pages/NotificationListGroupItem.html b/packages/fiori/test/pages/NotificationListGroupItem.html
new file mode 100644
index 000000000000..8c1d8882d2cf
--- /dev/null
+++ b/packages/fiori/test/pages/NotificationListGroupItem.html
@@ -0,0 +1,326 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+	<meta http-equiv="X-UA-Compatible" content="ie=edge">
+	<title>NotificationGroup</title>
+
+	<script src="../../webcomponentsjs/webcomponents-loader.js"></script>
+	<script src="../../resources/bundle.esm.js" type="module"></script>
+	<script nomodule src="../../resources/bundle.es5.js"></script>
+
+	<script>delete Document.prototype.adoptedStyleSheets;</script>
+</head>
+
+<body style="background-color: var(--sapBackgroundColor);">
+
+	<ui5-shellbar id="shellbar" primary-title="Product Title" show-notifications>
+	</ui5-shellbar>
+
+	<br/><br/>
+
+	<h3>Properties</h3>
+	<ul>
+		<li>heading</li>
+		<li>priority</li>
+		<li>collapsed</li>
+		<li>show-close</li>
+		<li>show-counter</li>
+	</ul>
+
+	<h3>Slots</h3>
+	<ul>
+		<li>items (default)</li>
+		<li>actions</li>
+	</ul>
+
+	<h3>Events on ui5-list level</h3>
+	<ul>
+		<li>itemToggle</li>
+	</ul>
+
+	<ui5-list id="notificationList" header-text="Notifications grouped">
+		<ui5-li-notification-group
+			show-close
+			show-counter
+			heading="Orders"
+			priority="High"
+		>
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+				<span slot="footnotes">Office Notifications</span>
+				<span slot="footnotes">3 Days</span>
+
+				<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action icon="reject" text="Reject" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+				<span slot="footnotes">Office Notifications</span>
+				<span slot="footnotes">3 Days</span>
+
+				<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#252) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+				<span slot="footnotes">Office Notifications</span>
+				<span slot="footnotes">3 Days</span>
+
+				<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+
+			<ui5-notification-overflow-action icon="accept" text="Accept All" slot="actions"></ui5-notification-overflow-action>
+			<ui5-notification-overflow-action icon="message-error" text="Reject All" slot="actions"></ui5-notification-overflow-action>
+		</ui5-li-notification-group>
+
+		<ui5-li-notification-group
+			show-close
+			show-counter
+			heading="Payments"
+			priority="High"
+		>
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#2900) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+				<span slot="footnotes">Office Notifications</span>
+				<span slot="footnotes">3 Days</span>
+
+				<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#29001) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+				<span slot="footnotes">Office Notifications</span>
+				<span slot="footnotes">3 Days</span>
+
+				<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#29003) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+				<span slot="footnotes">Office Notifications</span>
+				<span slot="footnotes">3 Days</span>
+
+				<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+		</ui5-li-notification-group>
+
+		<ui5-li-notification-group
+			show-close
+			show-counter
+			priority="High"
+			heading="Meetings With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+		>
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#35001) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
+				read
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+				<span slot="footnotes">Office Notifications</span>
+				<span slot="footnotes">3 Days</span>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#35002) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
+				read
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+				<span slot="footnotes">Office Notifications</span>
+				<span slot="footnotes">3 Days</span>
+			</ui5-li-notification>
+
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#35003) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
+				read
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+				<span slot="footnotes">Office Notifications</span>
+				<span slot="footnotes">3 Days</span>
+			</ui5-li-notification>
+
+			<ui5-notification-overflow-action icon="accept" text="Accept All" slot="actions"></ui5-notification-overflow-action>
+		</ui5-li-notification-group>
+	</ui5-list>
+
+	<br><br>
+
+	<ui5-toast id="wcToastBS" duration="2000"></ui5-toast>
+
+	<ui5-popover id="notificationsPopover" style="max-width: 400px" placement-type="Bottom" horizontal-align="Right">
+		<ui5-list id="notificationListTop" header-text="Notifications heading and content 'truncates'">
+			<ui5-li-notification-group
+				show-close
+				show-counter
+				heading="Orders"
+				priority="Medium"
+			>
+				<ui5-li-notification
+					show-close
+					truncate
+					priority="Medium"
+					heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar image="./img/man_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+					<span slot="footnotes">John Doe</span>
+					<span slot="footnotes">2 Days</span>
+					<span slot="footnotes">Other stuff</span>
+		
+					<ui5-notification-overflow-action id="acceptBtnInPopover" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+					<ui5-notification-overflow-action id="rejectBtnInPopover" icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+	
+				<ui5-li-notification
+					show-close
+					show-counter
+					heading="Orders"
+					priority="Medium"
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+		
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+		
+					<ui5-notification-overflow-action id="acceptBtn2InPopover" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+	
+			</ui5-li-notification-group>
+
+			<ui5-li-notification-group
+				show-close
+				show-counter
+				heading="Calls"
+				priority="Low"
+			>
+				<ui5-li-notification
+					heading="New order (#2565) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+					priority="Low"
+					truncate
+				>
+					Short description
+					<ui5-avatar initials="JS" size="XS" slot="avatar"></ui5-avatar>
+	
+					<span slot="footnotes">Patricia Clarck</span>
+					<span slot="footnotes">3 Days</span>
+		
+					<ui5-notification-overflow-action icon="accept" text="Accept All Requested Information" slot="actions"></ui5-notification-overflow-action>
+					<ui5-notification-overflow-action icon="message-error" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+	
+				<ui5-li-notification heading="New order (#2523)" truncate priority="Low">
+					<div>. With a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
+		
+					<span slot="footnotes">John SMith</span>
+					<span slot="footnotes">3 Days</span>
+		
+					<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+			</ui5-li-notification-group>
+		</ui5-list>
+	</ui5-popover>
+
+	<div style="display: flex; justify-content: flex-end; padding: 0.25rem; border-bottom: 1px solid grey;">
+		<ui5-button id="openNotifications" design="Transparent" icon="bell"></ui5-button>
+	</div>
+
+	<script>
+		notificationList.addEventListener("itemClick", function(event) {
+			wcToastBS.textContent = event.detail.item.heading;
+			wcToastBS.show();
+		});
+
+		notificationList.addEventListener("itemClose", function(event) {
+			wcToastBS.textContent = event.detail.item.heading;
+			wcToastBS.show();
+		});
+
+		notificationList.addEventListener("itemToggle", function(event) {
+			var item = event.detail.item;
+			wcToastBS.textContent = item.heading + " has been " + (item.collapsed ? "collapsed" : "expanded");
+			wcToastBS.show();
+		});
+
+		acceptBtnInPopover.addEventListener("click", function(event) {
+			wcToastBS.textContent = "Accept btn In popover btn clicked";
+			wcToastBS.show();
+
+			console.log("acceptBtnInPopover btn clicked");
+		});
+
+		rejectBtnInPopover.addEventListener("click", function(event) {
+			wcToastBS.textContent = "Reject btn In popover btn clicked";
+			wcToastBS.show();
+
+			console.log("rejectBtnInPopover btn clicked");
+		});
+
+		openNotifications.addEventListener("click", function(event) {
+			notificationsPopover.openBy(openNotifications);
+		});
+
+		shellbar.addEventListener("ui5-notificationsClick", function(event) {
+			notificationsPopover.openBy(event.detail.targetRef);
+		});
+	</script>
+</body>
+</html>
diff --git a/packages/fiori/test/pages/NotificationList.html b/packages/fiori/test/pages/NotificationListItem.html
similarity index 99%
rename from packages/fiori/test/pages/NotificationList.html
rename to packages/fiori/test/pages/NotificationListItem.html
index 92c3c5c4dbc1..898ca4c7dea4 100644
--- a/packages/fiori/test/pages/NotificationList.html
+++ b/packages/fiori/test/pages/NotificationListItem.html
@@ -41,6 +41,7 @@ <h3>Properties</h3>
 		<li>heading</li>
 		<li>truncate</li>
 		<li>priority</li>
+		<li>read</li>
 		<li>show-close</li>
 	</ul>
 
@@ -51,6 +52,12 @@ <h3>Slots</h3>
 		<li>footnotes</li>
 	</ul>
 
+	<h3>Events on ui5-list level</h3>
+	<ul>
+		<li>itemClick</li>
+		<li>itemClose</li>
+	</ul>
+
 	<ui5-list id="notificationList" header-text="Notifications heading and content 'truncates'">
 
 		<ui5-li-notification
diff --git a/packages/fiori/test/samples/NotificationListGroupItem.sample.html b/packages/fiori/test/samples/NotificationListGroupItem.sample.html
new file mode 100644
index 000000000000..f9a0a9b8dafe
--- /dev/null
+++ b/packages/fiori/test/samples/NotificationListGroupItem.sample.html
@@ -0,0 +1,355 @@
+<header class="component-heading">
+	<h2 class="control-header">NotificationListGroupItem</h2>
+	<div class="component-heading-since">
+		<span><!--since_tag_marker--></span>
+	</div>
+</header>
+
+<div class="component-package">@ui5/webcomponents-fiori</div>
+
+<div class="control-tag">&lt;ui5-li-notification-group&gt;</div>
+
+<!--Basic -->
+<section>
+	<h3>NotificationListGroupItem</h3>
+	<div class="snippet">
+		<ui5-list id="myList" header-text="Notifications grouped">
+			<ui5-li-notification-group
+				show-close
+				show-counter
+				heading="Orders"
+				priority="High"
+			>
+				<ui5-li-notification
+					show-close
+					truncate
+					heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+					priority="High"
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+	
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+	
+					<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+					<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+	
+				<ui5-li-notification
+					show-close
+					truncate
+					heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+					priority="High"
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+	
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+	
+					<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+					<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+	
+				<ui5-notification-overflow-action icon="accept" text="Accept All" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action icon="message-error" text="Reject All" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification-group>
+	
+			<ui5-li-notification-group
+				show-close
+				show-counter
+				heading="Deliveries"
+				priority="Medium"
+			>
+				<ui5-li-notification
+					show-close
+					truncate
+					heading="New Delivery (#2900) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+					priority="Medium"
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+	
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+	
+					<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+	
+				<ui5-li-notification
+					show-close
+					truncate
+					heading="New Delivery (#29001) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+					priority="Medium"
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+	
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+	
+					<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+
+				<ui5-notification-overflow-action icon="accept" text="Accept All" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action icon="message-error" text="Reject All" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification-group>
+	
+			<ui5-li-notification-group
+				show-close
+				show-counter
+				priority="High"
+				heading="Meetings With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			>
+				<ui5-li-notification
+					show-close
+					truncate
+					heading="New meeting at Building (#35001)"
+					priority="High"
+					read
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+	
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+				</ui5-li-notification>
+	
+				<ui5-li-notification
+					show-close
+					truncate
+					heading="New meeting at Building (#35001)"
+					priority="High"
+					read
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+	
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+				</ui5-li-notification>
+
+			</ui5-li-notification-group>
+		</ui5-list>
+
+		<script>
+			myList.addEventListener("itemClose", function(e) {
+				e.detail.item.hidden = true;
+			});
+		</script>
+	</div>
+	<pre class="prettyprint lang-html"><xmp>
+<ui5-list id="myList" header-text="Notifications grouped">
+	<ui5-li-notification-group
+		show-close
+		show-counter
+		heading="Orders"
+		priority="High"
+	>
+		<ui5-li-notification
+			show-close
+			truncate
+			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			priority="High"
+		>
+		...
+		</ui5-li-notification>
+
+		<ui5-li-notification
+			show-close
+			heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			priority="High"
+		>
+		...
+		</ui5-li-notification>
+
+		<ui5-notification-overflow-action icon="accept" text="Accept All" slot="actions"></ui5-notification-overflow-action>
+		<ui5-notification-overflow-action icon="message-error" text="Reject All" slot="actions"></ui5-notification-overflow-action>
+	</ui5-li-notification-group>
+
+	...
+</ui5-list>
+	</xmp></pre>
+</section>
+
+<section>
+	<h3>NotificationListGroupItem In ShellBar</h3>
+	<div class="snippet">
+		<ui5-shellbar id="shellbar" primary-title="Product Title" show-notifications>
+		</ui5-shellbar>
+
+		<ui5-popover id="notificationsPopover" style="max-width: 400px" placement-type="Bottom" horizontal-align="Right">
+			<ui5-list id="notificationListTop" header-text="Notifications grouped">
+				<ui5-li-notification-group
+					show-close
+					show-counter
+					heading="Orders"
+					priority="High"
+				>
+					<ui5-li-notification
+						show-close
+						truncate
+						heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+						priority="High"
+					>
+						And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+						<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+		
+						<span slot="footnotes">Office Notifications</span>
+						<span slot="footnotes">3 Days</span>
+		
+						<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+						<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+					</ui5-li-notification>
+		
+					<ui5-li-notification
+						show-close
+						truncate
+						heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+						priority="High"
+					>
+						And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+						<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+		
+						<span slot="footnotes">Office Notifications</span>
+						<span slot="footnotes">3 Days</span>
+		
+						<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+						<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+					</ui5-li-notification>
+		
+					<ui5-notification-overflow-action icon="accept" text="Accept All" slot="actions"></ui5-notification-overflow-action>
+					<ui5-notification-overflow-action icon="message-error" text="Reject All" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification-group>
+		
+				<ui5-li-notification-group
+					show-close
+					show-counter
+					heading="Deliveries"
+					priority="Medium"
+				>
+					<ui5-li-notification
+						show-close
+						truncate
+						heading="New Delivery (#2900) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+						priority="Medium"
+					>
+						And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+						<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+		
+						<span slot="footnotes">Office Notifications</span>
+						<span slot="footnotes">3 Days</span>
+		
+						<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+					</ui5-li-notification>
+		
+					<ui5-li-notification
+						show-close
+						truncate
+						heading="New Delivery (#29001) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+						priority="Medium"
+					>
+						And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+						<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+		
+						<span slot="footnotes">Office Notifications</span>
+						<span slot="footnotes">3 Days</span>
+		
+						<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+					</ui5-li-notification>
+	
+					<ui5-notification-overflow-action icon="accept" text="Accept All" slot="actions"></ui5-notification-overflow-action>
+					<ui5-notification-overflow-action icon="message-error" text="Reject All" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification-group>
+		
+				<ui5-li-notification-group
+					show-close
+					show-counter
+					priority="High"
+					heading="Meetings With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				>
+					<ui5-li-notification
+						show-close
+						truncate
+						heading="New meeting at Building (#35001)"
+						priority="High"
+						read
+					>
+						And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+						<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+		
+						<span slot="footnotes">Office Notifications</span>
+						<span slot="footnotes">3 Days</span>
+					</ui5-li-notification>
+		
+					<ui5-li-notification
+						show-close
+						truncate
+						heading="New meeting at Building (#35001)"
+						priority="High"
+						read
+					>
+						And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+						<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+		
+						<span slot="footnotes">Office Notifications</span>
+						<span slot="footnotes">3 Days</span>
+					</ui5-li-notification>
+	
+				</ui5-li-notification-group>
+			</ui5-list>
+		</ui5-popover>
+
+		<script>
+			shellbar.addEventListener("ui5-notificationsClick", function(event) {
+				notificationsPopover.openBy(event.detail.targetRef);
+			});
+		</script>
+	</div>
+	<pre class="prettyprint lang-html"><xmp>
+<ui5-shellbar id="shellbar" primary-title="Product Title" show-notifications>
+</ui5-shellbar>
+
+<ui5-popover
+	id="notificationsPopover"
+	style="max-width: 400px"
+	placement-type="Bottom"
+	horizontal-align="Right"
+>
+	<ui5-list header-text="Notifications">
+		<ui5-li-notification-group
+			show-close
+			show-counter
+			heading="Orders"
+			priority="High"
+		>
+			<ui5-li-notification
+				show-close
+				truncate
+				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar image="./img/man_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
+				<span slot="footnotes">John Doe</span>
+				<span slot="footnotes">2 Days</span>
+
+				<ui5-notification-overflow-action id="acceptBtnInPopover" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action id="rejectBtnInPopover" icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+		</ui5-li-notification-group>
+		...
+	</ui5-list>
+</ui5-popover>
+
+<script>
+	shellbar.addEventListener("ui5-notificationsClick", function(event) {
+		notificationsPopover.openBy(event.detail.targetRef);
+	});
+</script>
+	
+	</xmp></pre>
+</section>
+
+
+<!-- JSDoc marker -->
diff --git a/packages/fiori/test/samples/NotificationListItem.sample.html b/packages/fiori/test/samples/NotificationListItem.sample.html
index ce88f77bd3ae..2923e725460a 100644
--- a/packages/fiori/test/samples/NotificationListItem.sample.html
+++ b/packages/fiori/test/samples/NotificationListItem.sample.html
@@ -7,7 +7,7 @@ <h2 class="control-header">NotificationListItem</h2>
 
 <div class="component-package">@ui5/webcomponents-fiori</div>
 
-<div class="control-tag">&lt;ui5-list&gt;</div>
+<div class="control-tag">&lt;ui5-li-notification&gt;</div>
 
 <!--Basic -->
 <section>
diff --git a/packages/fiori/test/specs/NotificationListItem.spec.js b/packages/fiori/test/specs/NotificationListItem.spec.js
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/packages/main/src/List.js b/packages/main/src/List.js
index 47c640db3f7c..3a07f3939118 100644
--- a/packages/main/src/List.js
+++ b/packages/main/src/List.js
@@ -180,10 +180,10 @@ const metadata = {
 		},
 
 		/**
-		 * Fired when the Close button of any item is clicked
+		 * Fired when the <code>Close</code> button of any item is clicked
 		 * <br><br>
-		 * <b>Note:</b> This event is applicable to NotificationListItem only,
-		 * to not be confused with <code>itemDelete</code>.
+		 * <b>Note:</b> This event is applicable to <code>ui5-li-notification</code> items only,
+		 * not to be confused with <code>itemDelete</code>.
 		 * @event
 		 * @param {HTMLElement} item the item about to be closed.
 		 * @public
@@ -195,6 +195,21 @@ const metadata = {
 			},
 		},
 
+		/**
+		 * Fired when the <code>Toggle</code> button of any item is clicked.
+		 * <br><br>
+		 * <b>Note:</b> This event is applicable to <code>ui5-li-notification-group</code> items only.
+		 * @event
+		 * @param {HTMLElement} item the toggled item.
+		 * @public
+		 * @since 1.0.0-rc.8
+		 */
+		itemToggle: {
+			detail: {
+				item: { type: HTMLElement },
+			},
+		},
+
 		/**
 		 * Fired when the Delete button of any item is pressed.
 		 * <br><br>
@@ -310,6 +325,7 @@ class List extends UI5Element {
 
 		this.addEventListener("ui5-_press", this.onItemPress.bind(this));
 		this.addEventListener("ui5-_close", this.onItemClose.bind(this));
+		this.addEventListener("ui5-toggle", this.onItemToggle.bind(this));
 		this.addEventListener("ui5-_focused", this.onItemFocused.bind(this));
 		this.addEventListener("ui5-_forwardAfter", this.onForwardAfter.bind(this));
 		this.addEventListener("ui5-_forwardBefore", this.onForwardBefore.bind(this));
@@ -560,6 +576,10 @@ class List extends UI5Element {
 		this.fireEvent("itemClose", { item: event.detail.item });
 	}
 
+	onItemToggle(event) {
+		this.fireEvent("itemToggle", { item: event.detail.item });
+	}
+
 	onForwardBefore(event) {
 		this.setPreviouslyFocusedItem(event.target);
 		this.focusBeforeElement();
diff --git a/packages/playground/build-scripts/samples-prepare.js b/packages/playground/build-scripts/samples-prepare.js
index 96a92089354a..ef131fb8dd3f 100644
--- a/packages/playground/build-scripts/samples-prepare.js
+++ b/packages/playground/build-scripts/samples-prepare.js
@@ -14,7 +14,9 @@ const components = [];
 const newComponents = [
   "DateTimePicker",
   "DurationPicker",
-  "UploadCollection"
+  "NotificationListItem",
+  "NotificationListGroupItem",
+  "UploadCollection",
 ];
 
 packages.forEach(package => {

From 9ac6d0f2268a3fb4eba3573d6222588aaae88a28 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Wed, 6 May 2020 20:12:52 +0300
Subject: [PATCH 10/22] extract NotificationListItemBase base class

---
 ... => NotifactionOverflowActionsPopover.hbs} |   2 +-
 .../fiori/src/NotificationListGroupItem.hbs   |  19 +-
 .../fiori/src/NotificationListGroupItem.js    | 183 +--------------
 packages/fiori/src/NotificationListItem.hbs   |   1 +
 packages/fiori/src/NotificationListItem.js    | 178 +-------------
 .../fiori/src/NotificationListItemBase.js     | 222 ++++++++++++++++++
 ... => NotifactionOverflowActionsPopover.css} |   2 +-
 .../src/themes/NotificationListGroupItem.css  |  28 +--
 .../test/pages/NotificationListGroupItem.html |  17 +-
 .../test/pages/NotificationListItem.html      |  50 ++--
 packages/main/src/List.js                     |   2 +-
 11 files changed, 305 insertions(+), 399 deletions(-)
 rename packages/fiori/src/{NotificationListItemPopover.hbs => NotifactionOverflowActionsPopover.hbs} (88%)
 create mode 100644 packages/fiori/src/NotificationListItemBase.js
 rename packages/fiori/src/themes/{NotifactionListItemPopover.css => NotifactionOverflowActionsPopover.css} (64%)

diff --git a/packages/fiori/src/NotificationListItemPopover.hbs b/packages/fiori/src/NotifactionOverflowActionsPopover.hbs
similarity index 88%
rename from packages/fiori/src/NotificationListItemPopover.hbs
rename to packages/fiori/src/NotifactionOverflowActionsPopover.hbs
index e1b92fb862f4..f30aead36c08 100644
--- a/packages/fiori/src/NotificationListItemPopover.hbs
+++ b/packages/fiori/src/NotifactionOverflowActionsPopover.hbs
@@ -4,7 +4,7 @@
 	horizontal-align="Right"
 	no-arrow
 >
-	<div class="ui5-nli-overflow-list">
+	<div class="ui5-notification-overflow-list">
 		{{#each overflowActions}}
 			<ui5-button
 				icon="{{this.icon}}"
diff --git a/packages/fiori/src/NotificationListGroupItem.hbs b/packages/fiori/src/NotificationListGroupItem.hbs
index a79e1154b235..f4b4080c50ce 100644
--- a/packages/fiori/src/NotificationListGroupItem.hbs
+++ b/packages/fiori/src/NotificationListGroupItem.hbs
@@ -1,5 +1,5 @@
 <li
-	class="ui5-ng-root ui5-nli-focusable"
+	class="ui5-nli-group-root ui5-nli-focusable"
 	@focusin="{{_onfocusin}}"
 	@focusout="{{_onfocusout}}"
 	@keydown="{{_onkeydown}}"
@@ -8,12 +8,12 @@
 	dir="{{rtl}}"
 	aria-labelledby="{{_id}}-heading {{_id}}-invisibleText"
 >
-	<div class="ui5-ng-header">
+	<div class="ui5-nli-group-header">
 		<ui5-button
 			icon="navigation-right-arrow"
 			design="Transparent"
 			@click="{{_onBtnToggleClick}}"
-			class="ui5-ng-toggle-btn"
+			class="ui5-nli-group-toggle-btn"
 		></ui5-button>
 
 		{{#if hasPriority}}
@@ -23,15 +23,15 @@
 			</ui5-icon>
 		{{/if}}
 
-		<div id="{{_id}}-heading" class="ui5-ng-heading" part="heading">
+		<div id="{{_id}}-heading" class="ui5-nli-group-heading" part="heading">
 			{{heading}}
 		</div>
 
 		{{#if showCounter}}
-			<span class="ui5-ng-counter">{{counter}}</span>
+			<span class="ui5-nli-group-counter">{{counter}}</span>
 		{{/if}}
 
-		<div class="ui5-ng-divider"></div>
+		<div class="ui5-nli-group-divider"></div>
 
 		{{#unless collapsed}}
 			{{#if showOverflow}}
@@ -39,14 +39,15 @@
 					icon="overflow"
 					design="Transparent"
 					@click="{{_onBtnOverflowClick}}"
-					class="ui5-ng-overflow-btn"
+					class="ui5-nli-group-overflow-btn"
 					title="{{overflowBtnTitle}}"
+					overflow-btn
 				></ui5-button>
 			{{else}}
 				{{#each standardActions}}
 					<ui5-button
 						icon="{{this.icon}}"
-						class="ui5-ng-action"
+						class="ui5-nli-group-action"
 						@click="{{this.press}}"
 						data-ui5-external-action-item-id="{{this.refItemid}}"
 					>
@@ -68,7 +69,7 @@
 		<span id="{{_id}}-invisibleText" class="ui5-hidden-text">{{accInvisibleText}}</span>
 	</div>
 
-	<ui5-list class="ui5-ng-items">
+	<ui5-list class="ui5-nli-group-items">
 		<slot></slot>
 	</ui5-list>
 </li>
\ No newline at end of file
diff --git a/packages/fiori/src/NotificationListGroupItem.js b/packages/fiori/src/NotificationListGroupItem.js
index 908ef228b391..46b0966d06ef 100644
--- a/packages/fiori/src/NotificationListGroupItem.js
+++ b/packages/fiori/src/NotificationListGroupItem.js
@@ -1,19 +1,8 @@
 import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
-import { isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
 import { getI18nBundle, fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
-import { getRTL } from "@ui5/webcomponents-base/dist/config/RTL.js";
-
-import ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
 import Button from "@ui5/webcomponents/dist/Button.js";
 import Icon from "@ui5/webcomponents/dist/Icon.js";
-import Priority from "@ui5/webcomponents/dist/types/Priority.js";
-
-// Icons
-import "@ui5/webcomponents-icons/dist/icons/decline.js";
-import "@ui5/webcomponents-icons/dist/icons/message-success.js";
-import "@ui5/webcomponents-icons/dist/icons/message-error.js";
-import "@ui5/webcomponents-icons/dist/icons/message-warning.js";
-import "@ui5/webcomponents-icons/dist/icons/overflow.js";
+import NotificationListItemBase from "./NotificationListItemBase.js";
 
 // Texts
 import {
@@ -26,17 +15,9 @@ import {
 
 // Templates
 import NotificationListGroupItemTemplate from "./generated/templates/NotificationListGroupItemTemplate.lit.js";
-import NotificationListItemPopoverTemplate from "./generated/templates/NotificationListItemPopoverTemplate.lit.js";
 
 // Styles
 import NotificationListGroupItemCss from "./generated/themes/NotificationListGroupItem.css.js";
-import NotifactionListItemPopoverCss from "./generated/themes/NotifactionListItemPopover.css.js";
-
-const PRIORITY_ICONS_MAP = {
-	"High": "message-error",
-	"Medium": "message-warning",
-	"Low": "message-success",
-};
 
 /**
  * @public
@@ -45,26 +26,6 @@ const metadata = {
 	tag: "ui5-li-notification-group",
 	managedSlots: true,
 	properties: /** @lends sap.ui.webcomponents.fiori.NotificationListGroupItem.prototype */ {
-		/**
-		 * Defines the <code>heading</code> of the group.
-		 * @type {string}
-		 * @defaultvalue ""
-		 * @public
-		 */
-		heading: {
-			type: String,
-		},
-
-		/**
-		 * Defines the <code>priority</code> of the group.
-		 * @type {Priority}
-		 * @defaultvalue "None"
-		 * @public
-		 */
-		priority: {
-			type: Priority,
-			defaultValue: Priority.None,
-		},
 
 		/**
 		 * Defines if the group is collapsed or expanded.
@@ -76,16 +37,6 @@ const metadata = {
 			type: Boolean,
 		},
 
-		/**
-		 * Defines if the <code>close</code> button would be displayed.
-		 * @type {boolean}
-		 * @defaultvalue false
-		 * @public
-		 */
-		showClose: {
-			type: Boolean,
-		},
-
 		/**
 		 * Defines if the items <code>counter</code> would be displayed.
 		 * @type {boolean}
@@ -98,19 +49,6 @@ const metadata = {
 	},
 	slots: /** @lends sap.ui.webcomponents.fiori.NotificationListGroupItem.prototype */ {
 
-		/**
-		 * Defines the actions, displayed in the <code>ui5-li-notification-group</code>.
-		 * <br><br>
-		 * <b>Note:</b> use the <code>ui5-notification-overflow-action</code> component.
-		 *
-		 * @type {HTMLElement}
-		 * @slot
-		 * @public
-		 */
-		actions: {
-			type: HTMLElement,
-		},
-
 		/**
 		 * Defines the items of the <code>ui5-li-notification-group</code>,
 		 * usually <code>ui5-li-notification</code> items.
@@ -125,7 +63,6 @@ const metadata = {
 		},
 	},
 	events: /** @lends sap.ui.webcomponents.fiori.NotificationListGroupItem.prototype */ {
-		_close: {},
 
 		/**
 		 * Fired when the <code>ui5-li-notification-group</code> is expanded/collapsed by user interaction.
@@ -165,13 +102,13 @@ const metadata = {
  * @constructor
  * @author SAP SE
  * @alias sap.ui.webcomponents.fiori.NotificationListGroupItem
- * @extends ListItemBase
+ * @extends NotificationListItemBase
  * @tagname ui5-li-notification-group
  * @since 1.0.0-rc.8
  * @appenddocs NotificationOverflowAction
  * @public
  */
-class NotificationListGroupItem extends ListItemBase {
+class NotificationListGroupItem extends NotificationListItemBase {
 	constructor() {
 		super();
 		this.i18nBundle = getI18nBundle("@ui5/webcomponents-fiori");
@@ -193,14 +130,6 @@ class NotificationListGroupItem extends ListItemBase {
 		return NotificationListGroupItemTemplate;
 	}
 
-	static get staticAreaTemplate() {
-		return NotificationListItemPopoverTemplate;
-	}
-
-	static get staticAreaStyles() {
-		return NotifactionListItemPopoverCss;
-	}
-
 	static async onDefine() {
 		await Promise.all([
 			Button.define(),
@@ -209,12 +138,12 @@ class NotificationListGroupItem extends ListItemBase {
 		]);
 	}
 
-	get hasPriority() {
-		return this.priority !== Priority.None;
+	get itemsCount() {
+		return this.items.length;
 	}
 
-	get priorityIcon() {
-		return PRIORITY_ICONS_MAP[this.priority];
+	get counter() {
+		return `(${this.itemsCount})`;
 	}
 
 	get overflowBtnTitle() {
@@ -225,53 +154,6 @@ class NotificationListGroupItem extends ListItemBase {
 		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE);
 	}
 
-	get overflowButtonDOM() {
-		return this.shadowRoot.querySelector(".ui5-ng-overflow-btn");
-	}
-
-	get showOverflow() {
-		return !!this.overflowActions.length;
-	}
-
-	get overflowActions() {
-		if (this.actions.length <= 1) {
-			return [];
-		}
-
-		return this.actionsInfo;
-	}
-
-	get standardActions() {
-		if (this.actions.length > 1) {
-			return [];
-		}
-
-		return this.actionsInfo;
-	}
-
-	get actionsInfo() {
-		return this.actions.map(action => {
-			return {
-				icon: action.icon,
-				text: action.text,
-				press: this._onCustomActionClick.bind(this),
-				refItemid: action._id,
-			};
-		});
-	}
-
-	get rtl() {
-		return getRTL() ? "rtl" : undefined;
-	}
-
-	get itemsCount() {
-		return this.items.length;
-	}
-
-	get counter() {
-		return `(${this.itemsCount})`;
-	}
-
 	get accInvisibleText() {
 		const groupTxt = this.i18nBundle.getText(NOTIFICATIONGROUPITEM_TXT);
 		const prioTxt = this.i18nBundle.getText(NOTIFICATIONGROUPITEM_PRIORITY_TXT);
@@ -285,61 +167,10 @@ class NotificationListGroupItem extends ListItemBase {
 	 * Event handlers
 	 *
 	 */
-
-	_onBtnCloseClick() {
-		this.fireEvent("_close", { item: this });
-	}
-
-	_onBtnOverflowClick() {
-		this.openOverflow();
-	}
-
 	_onBtnToggleClick() {
 		this.collapsed = !this.collapsed;
 		this.fireEvent("toggle", { item: this });
 	}
-
-	_onCustomActionClick(event) {
-		const refItemId = event.target.getAttribute("data-ui5-external-action-item-id");
-
-		if (refItemId) {
-			this.getActionByID(refItemId).fireEvent("click", {
-				targetRef: event.target,
-			}, true);
-
-			this.closeOverflow();
-		}
-	}
-
-	_onkeydown(event) {
-		super._onkeydown(event);
-
-		if (isSpace(event)) {
-			event.preventDefault();
-		}
-	}
-
-	/**
-	 * Private
-	 */
-	getActionByID(id) {
-		return this.actions.find(action => action._id === id);
-	}
-
-	async openOverflow() {
-		const overflowPopover = await this.getOverflowPopover();
-		overflowPopover.openBy(this.overflowButtonDOM);
-	}
-
-	async closeOverflow() {
-		const overflowPopover = await this.getOverflowPopover();
-		overflowPopover.close();
-	}
-
-	async getOverflowPopover() {
-		const staticAreaItem = await this.getStaticAreaItemDomRef();
-		return staticAreaItem.querySelector(".ui5-notification-overflow-popover");
-	}
 }
 
 NotificationListGroupItem.define();
diff --git a/packages/fiori/src/NotificationListItem.hbs b/packages/fiori/src/NotificationListItem.hbs
index 0bc48fa97eca..a1b09c818675 100644
--- a/packages/fiori/src/NotificationListItem.hbs
+++ b/packages/fiori/src/NotificationListItem.hbs
@@ -18,6 +18,7 @@
 				@click="{{_onBtnOverflowClick}}"
 				class="ui5-nli-overflow-btn"
 				title="{{overflowBtnTitle}}"
+				overflow-btn
 			></ui5-button>
 		{{else}}
 			{{#each standardActions}}
diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index f82918efa3e7..42501fad07a0 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -3,19 +3,10 @@ import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
 import { getI18nBundle, fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
 import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
 import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
-import { getRTL } from "@ui5/webcomponents-base/dist/config/RTL.js";
 
-import ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
 import Button from "@ui5/webcomponents/dist/Button.js";
 import Icon from "@ui5/webcomponents/dist/Icon.js";
-import Priority from "@ui5/webcomponents/dist/types/Priority.js";
-
-// Icons
-import "@ui5/webcomponents-icons/dist/icons/decline.js";
-import "@ui5/webcomponents-icons/dist/icons/message-success.js";
-import "@ui5/webcomponents-icons/dist/icons/message-error.js";
-import "@ui5/webcomponents-icons/dist/icons/message-warning.js";
-import "@ui5/webcomponents-icons/dist/icons/overflow.js";
+import NotificationListItemBase from "./NotificationListItemBase.js";
 
 // Texts
 import {
@@ -26,17 +17,9 @@ import {
 
 // Templates
 import NotificationListItemTemplate from "./generated/templates/NotificationListItemTemplate.lit.js";
-import NotificationListItemPopoverTemplate from "./generated/templates/NotificationListItemPopoverTemplate.lit.js";
 
 // Styles
 import NotificationListItemCss from "./generated/themes/NotificationListItem.css.js";
-import NotifactionListItemPopoverCss from "./generated/themes/NotifactionListItemPopover.css.js";
-
-const PRIORITY_ICONS_MAP = {
-	"High": "message-error",
-	"Medium": "message-warning",
-	"Low": "message-success",
-};
 
 const MAX_WRAP_HEIGHT = 32; // px.
 
@@ -47,36 +30,6 @@ const metadata = {
 	tag: "ui5-li-notification",
 	managedSlots: true,
 	properties: /** @lends sap.ui.webcomponents.fiori.NotificationListItem.prototype */ {
-		/**
-		 * Defines the <code>heading</code>.
-		 * @type {string}
-		 * @defaultvalue ""
-		 * @public
-		 */
-		heading: {
-			type: String,
-		},
-
-		/**
-		 * Defines the <code>priority</code> of the notification.
-		 * @type {Priority}
-		 * @defaultvalue "None"
-		 * @public
-		 */
-		priority: {
-			type: Priority,
-			defaultValue: Priority.None,
-		},
-
-		/**
-		 * Defines if a <code>close</code> button should be displayed.
-		 * @type {boolean}
-		 * @defaultvalue false
-		 * @public
-		 */
-		showClose: {
-			type: Boolean,
-		},
 
 		/**
 		 * Defines if the <code>heading</code> and <code>decription</code> should truncate,
@@ -89,7 +42,6 @@ const metadata = {
 			type: Boolean,
 		},
 
-
 		/**
 		 * Defines if the <code>notification</code> is new or has been already read.
 		 * <br><br>
@@ -122,19 +74,6 @@ const metadata = {
 	},
 	slots: /** @lends sap.ui.webcomponents.fiori.NotificationListItem.prototype */ {
 
-		/**
-		 * Defines the actions, displayed in the <code>ui5-li-notification</code>.
-		 * <br><br>
-		 * <b>Note:</b> Consider using the <code>ui5-notification-overflow-action</code>.
-		 *
-		 * @type {HTMLElement}
-		 * @slot
-		 * @public
-		 */
-		actions: {
-			type: HTMLElement,
-		},
-
 		/**
 		 * Defines the avatar, displayed in the <code>ui5-li-notification</code>.
 		 *
@@ -178,7 +117,6 @@ const metadata = {
 		},
 	},
 	events: /** @lends sap.ui.webcomponents.fiori.NotificationListItem.prototype */ {
-		_close: {},
 		_press: {},
 	},
 };
@@ -213,13 +151,13 @@ const metadata = {
  * @constructor
  * @author SAP SE
  * @alias sap.ui.webcomponents.fiori.NotificationListItem
- * @extends ListItemBase
+ * @extends NotificationListItemBase
  * @tagname ui5-li-notification
  * @appenddocs NotificationOverflowAction
  * @since 1.0.0-rc.8
  * @public
  */
-class NotificationListItem extends ListItemBase {
+class NotificationListItem extends NotificationListItemBase {
 	constructor() {
 		super();
 
@@ -251,14 +189,6 @@ class NotificationListItem extends ListItemBase {
 		return NotificationListItemTemplate;
 	}
 
-	static get staticAreaTemplate() {
-		return NotificationListItemPopoverTemplate;
-	}
-
-	static get staticAreaStyles() {
-		return NotifactionListItemPopoverCss;
-	}
-
 	static async onDefine() {
 		await Promise.all([
 			Button.define(),
@@ -275,15 +205,6 @@ class NotificationListItem extends ListItemBase {
 		ResizeHandler.deregister(this, this.onResizeBind);
 	}
 
-	get footerItems() {
-		return this.footnotes.map((el, idx, arr) => {
-			return {
-				slotName: el._individualSlot,
-				showDivider: idx !== arr.length - 1,
-			};
-		});
-	}
-
 	get hasHeading() {
 		return !!this.heading.length;
 	}
@@ -296,14 +217,6 @@ class NotificationListItem extends ListItemBase {
 		return !!this.footnotes.length;
 	}
 
-	get hasPriority() {
-		return this.priority !== Priority.None;
-	}
-
-	get priorityIcon() {
-		return PRIORITY_ICONS_MAP[this.priority];
-	}
-
 	get showMoreText() {
 		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_SHOW_MORE);
 	}
@@ -368,37 +281,11 @@ class NotificationListItem extends ListItemBase {
 		return description.offsetHeight < description.scrollHeight;
 	}
 
-	get overflowButtonDOM() {
-		return this.shadowRoot.querySelector(".ui5-nli-overflow-btn");
-	}
-
-	get showOverflow() {
-		return !!this.overflowActions.length;
-	}
-
-	get overflowActions() {
-		if (this.actions.length <= 1) {
-			return [];
-		}
-
-		return this.actionsInfo;
-	}
-
-	get standardActions() {
-		if (this.actions.length > 1) {
-			return [];
-		}
-
-		return this.actionsInfo;
-	}
-
-	get actionsInfo() {
-		return this.actions.map(action => {
+	get footerItems() {
+		return this.footnotes.map((el, idx, arr) => {
 			return {
-				icon: action.icon,
-				text: action.text,
-				press: this._onCustomActionPress.bind(this),
-				refItemid: action._id,
+				slotName: el._individualSlot,
+				showDivider: idx !== arr.length - 1,
 			};
 		});
 	}
@@ -420,11 +307,6 @@ class NotificationListItem extends ListItemBase {
 		return ids.join(" ");
 	}
 
-
-	get rtl() {
-		return getRTL() ? "rtl" : undefined;
-	}
-
 	get classes() {
 		return {
 			content: {
@@ -435,9 +317,7 @@ class NotificationListItem extends ListItemBase {
 
 	/**
 	 * Event handlers
-	 *
 	 */
-
 	_onclick(event) {
 		if (event.isMarked === "button") {
 			return;
@@ -449,21 +329,9 @@ class NotificationListItem extends ListItemBase {
 		this._showMorePressed = !this._showMorePressed;
 	}
 
-	_onBtnCloseClick() {
-		this.fireEvent("_close", { item: this });
-	}
-
-	_onBtnOverflowClick() {
-		this.openOverflow();
-	}
-
 	_onkeydown(event) {
 		super._onkeydown(event);
 
-		if (isSpace(event)) {
-			event.preventDefault();
-		}
-
 		if (isEnter(event)) {
 			this.fireItemPress(event);
 		}
@@ -506,38 +374,6 @@ class NotificationListItem extends ListItemBase {
 
 		this._showMore = false;
 	}
-
-	_onCustomActionPress(event) {
-		const refItemId = event.target.getAttribute("data-ui5-external-action-item-id");
-
-		if (refItemId) {
-			this.getActionByID(refItemId).fireEvent("click", {
-				targetRef: event.target,
-			}, true);
-
-			this.closeOverflow();
-		}
-	}
-
-
-	getActionByID(id) {
-		return this.actions.find(action => action._id === id);
-	}
-
-	async openOverflow() {
-		const overflowPopover = await this.getOverflowPopover();
-		overflowPopover.openBy(this.overflowButtonDOM);
-	}
-
-	async closeOverflow() {
-		const overflowPopover = await this.getOverflowPopover();
-		overflowPopover.close();
-	}
-
-	async getOverflowPopover() {
-		const staticAreaItem = await this.getStaticAreaItemDomRef();
-		return staticAreaItem.querySelector(".ui5-notification-overflow-popover");
-	}
 }
 
 NotificationListItem.define();
diff --git a/packages/fiori/src/NotificationListItemBase.js b/packages/fiori/src/NotificationListItemBase.js
new file mode 100644
index 000000000000..8662cc235d89
--- /dev/null
+++ b/packages/fiori/src/NotificationListItemBase.js
@@ -0,0 +1,222 @@
+import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
+import { isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
+import { getRTL } from "@ui5/webcomponents-base/dist/config/RTL.js";
+
+import ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
+import Priority from "@ui5/webcomponents/dist/types/Priority.js";
+
+// Icons
+import "@ui5/webcomponents-icons/dist/icons/decline.js";
+import "@ui5/webcomponents-icons/dist/icons/message-success.js";
+import "@ui5/webcomponents-icons/dist/icons/message-error.js";
+import "@ui5/webcomponents-icons/dist/icons/message-warning.js";
+import "@ui5/webcomponents-icons/dist/icons/overflow.js";
+
+// Templates
+import NotifactionOverflowActionsPopoverTemplate from "./generated/templates/NotifactionOverflowActionsPopoverTemplate.lit.js";
+
+// Styles
+import NotifactionOverflowActionsPopoverCss from "./generated/themes/NotifactionOverflowActionsPopover.css.js";
+
+const PRIORITY_ICONS_MAP = {
+	"High": "message-error",
+	"Medium": "message-warning",
+	"Low": "message-success",
+};
+
+/**
+ * @public
+ */
+const metadata = {
+	managedSlots: true,
+	properties: /** @lends sap.ui.webcomponents.fiori.NotificationListItemBase.prototype */ {
+
+		/**
+		 * Defines the <code>heading</code> of the item.
+		 * @type {string}
+		 * @defaultvalue ""
+		 * @public
+		 */
+		heading: {
+			type: String,
+		},
+
+		/**
+		 * Defines the <code>priority</code> of the item.
+		 * @type {Priority}
+		 * @defaultvalue "None"
+		 * @public
+		 */
+		priority: {
+			type: Priority,
+			defaultValue: Priority.None,
+		},
+
+		/**
+		 * Defines if the <code>close</code> button would be displayed.
+		 * @type {boolean}
+		 * @defaultvalue false
+		 * @public
+		 */
+		showClose: {
+			type: Boolean,
+		},
+	},
+	slots: /** @lends sap.ui.webcomponents.fiori.NotificationListItemBase.prototype */ {
+
+		/**
+		 * Defines the actions, displayed in the <code>ui5-li-notification-group</code>.
+		 * <br><br>
+		 * <b>Note:</b> use the <code>ui5-notification-overflow-action</code> component.
+		 *
+		 * @type {HTMLElement}
+		 * @slot
+		 * @public
+		 */
+		actions: {
+			type: HTMLElement,
+		},
+	},
+	events: /** @lends sap.ui.webcomponents.fiori.NotificationListItemBase.prototype */ {
+		/**
+		 * Fired when the <code>Close</code> button is pressed.
+		 *
+		 * @event
+		 * @public
+		 */
+		close: {},
+	},
+};
+
+/**
+ * @class
+ *
+ * The base class of the <code>NotificationListItem</code> and <code>NotificationListGroupItem</code>.
+ *
+ * @abstract
+ * @constructor
+ * @author SAP SE
+ * @alias sap.ui.webcomponents.fiori.NotificationListItemBase
+ * @extends ListItemBase
+ * @tagname ui5-li-notification-group
+ * @since 1.0.0-rc.8
+ * @appenddocs NotificationOverflowAction
+ * @public
+ */
+class NotificationListItemBase extends ListItemBase {
+
+	static get metadata() {
+		return metadata;
+	}
+
+	static get render() {
+		return litRender;
+	}
+
+	static get staticAreaTemplate() {
+		return NotifactionOverflowActionsPopoverTemplate;
+	}
+
+	static get staticAreaStyles() {
+		return NotifactionOverflowActionsPopoverCss;
+	}
+
+	get hasPriority() {
+		return this.priority !== Priority.None;
+	}
+
+	get priorityIcon() {
+		return PRIORITY_ICONS_MAP[this.priority];
+	}
+
+	get overflowButtonDOM() {
+		return this.shadowRoot.querySelector("[overflow-btn]");
+	}
+
+	get showOverflow() {
+		return !!this.overflowActions.length;
+	}
+
+	get overflowActions() {
+		if (this.actions.length <= 1) {
+			return [];
+		}
+
+		return this.actionsInfo;
+	}
+
+	get standardActions() {
+		if (this.actions.length > 1) {
+			return [];
+		}
+
+		return this.actionsInfo;
+	}
+
+	get actionsInfo() {
+		return this.actions.map(action => {
+			return {
+				icon: action.icon,
+				text: action.text,
+				press: this._onCustomActionClick.bind(this),
+				refItemid: action._id,
+			};
+		});
+	}
+
+	get rtl() {
+		return getRTL() ? "rtl" : undefined;
+	}
+
+	/**
+	 * Event handlers
+	 */
+	_onBtnCloseClick() {
+		this.fireEvent("close", { item: this });
+	}
+
+	_onBtnOverflowClick() {
+		this.openOverflow();
+	}
+
+	_onCustomActionClick(event) {
+		const refItemId = event.target.getAttribute("data-ui5-external-action-item-id");
+
+		if (refItemId) {
+			this.getActionByID(refItemId).fireEvent("click", {
+				targetRef: event.target,
+			}, true);
+
+			this.closeOverflow();
+		}
+	}
+
+	_onkeydown(event) {
+		super._onkeydown(event);
+
+		if (isSpace(event)) {
+			event.preventDefault();
+		}
+	}
+
+	getActionByID(id) {
+		return this.actions.find(action => action._id === id);
+	}
+
+	async openOverflow() {
+		const overflowPopover = await this.getOverflowPopover();
+		overflowPopover.openBy(this.overflowButtonDOM);
+	}
+
+	async closeOverflow() {
+		const overflowPopover = await this.getOverflowPopover();
+		overflowPopover.close();
+	}
+
+	async getOverflowPopover() {
+		const staticAreaItem = await this.getStaticAreaItemDomRef();
+		return staticAreaItem.querySelector(".ui5-notification-overflow-popover");
+	}
+}
+
+export default NotificationListItemBase;
diff --git a/packages/fiori/src/themes/NotifactionListItemPopover.css b/packages/fiori/src/themes/NotifactionOverflowActionsPopover.css
similarity index 64%
rename from packages/fiori/src/themes/NotifactionListItemPopover.css
rename to packages/fiori/src/themes/NotifactionOverflowActionsPopover.css
index 6c1cbb347ef8..d0597b56a1f3 100644
--- a/packages/fiori/src/themes/NotifactionListItemPopover.css
+++ b/packages/fiori/src/themes/NotifactionOverflowActionsPopover.css
@@ -1,4 +1,4 @@
-.ui5-nli-overflow-list {
+.ui5-notification-overflow-list {
 	display: flex;
 	flex-direction: column;
 	padding: 0 0.5rem;
diff --git a/packages/fiori/src/themes/NotificationListGroupItem.css b/packages/fiori/src/themes/NotificationListGroupItem.css
index 2face279664b..3fe7645a3f46 100644
--- a/packages/fiori/src/themes/NotificationListGroupItem.css
+++ b/packages/fiori/src/themes/NotificationListGroupItem.css
@@ -2,15 +2,15 @@
 @import "./NotificationListItemBase.css";
 @import "./NotificationPrioIcon.css";
 
-:host(:not([collapsed])) .ui5-ng-toggle-btn {
+:host(:not([collapsed])) .ui5-nli-group-toggle-btn {
 	transform: rotate(90deg);
 }
 
-:host([collapsed]) .ui5-ng-items {
+:host([collapsed]) .ui5-nli-group-items {
 	display: none;
 }
 
-.ui5-ng-root {
+.ui5-nli-group-root {
 	display: flex;
 	flex-direction: column;
 	position: relative;
@@ -18,7 +18,7 @@
 	box-sizing: border-box;
 }
 
-.ui5-ng-header {
+.ui5-nli-group-header {
 	display: flex;
 	align-items: center;
 	padding: 0.75rem 0.5rem 0.25rem 0.75rem;
@@ -28,12 +28,12 @@
 	cursor: default;
 }
 
-.ui5-ng-toggle-btn {
+.ui5-nli-group-toggle-btn {
 	margin-right: 1rem;
 	cursor: pointer;
 }
 
-.ui5-ng-heading {
+.ui5-nli-group-heading {
 	color: var(--sapGroup_TitleTextColor);
 	font-family: var(--sapFontFamily);
 	font-size: var(--sapFontHeader6Size);
@@ -42,11 +42,11 @@
 	text-overflow: ellipsis;
 }
 
-.ui5-ng-divider {
+.ui5-nli-group-divider {
 	flex: 1;
 }
 
-.ui5-ng-counter {
+.ui5-nli-group-counter {
 	margin-left: 0.25rem;
 	margin-right: 1rem;
 	color: var(--sapList_TableGroupHeaderTextColor);
@@ -54,28 +54,28 @@
 	font-family: var(--sapFontHeaderFamily);
 }
 
-.ui5-ng-action {
+.ui5-nli-group-action {
 	flex-shrink: 0;
 	margin-right: 0.5rem;
 }
 
-.ui5-ng-overflow-btn {
+.ui5-nli-group-overflow-btn {
 	margin-right: 0.5rem;
 }
 
-[dir="rtl"] .ui5-ng-action {
+[dir="rtl"] .ui5-nli-group-action {
 	margin-left: 0.5rem;
 }
 
-[dir="rtl"] .ui5-ng-overflow-btn {
+[dir="rtl"] .ui5-nli-group-overflow-btn {
 	margin-left: 0.5rem;
 }
 
-[dir="rtl"] .ui5-ng-toggle-btn {
+[dir="rtl"] .ui5-nli-group-toggle-btn {
 	margin-left: 1rem;
 }
 
-[dir="rtl"] .ui5-ng-counter {
+[dir="rtl"] .ui5-nli-group-counter {
 	margin-right: 0.25rem;
 	margin-left: 1rem;
 }
\ No newline at end of file
diff --git a/packages/fiori/test/pages/NotificationListGroupItem.html b/packages/fiori/test/pages/NotificationListGroupItem.html
index 8c1d8882d2cf..48c5a4ca2976 100644
--- a/packages/fiori/test/pages/NotificationListGroupItem.html
+++ b/packages/fiori/test/pages/NotificationListGroupItem.html
@@ -23,10 +23,10 @@
 	<h3>Properties</h3>
 	<ul>
 		<li>heading</li>
-		<li>priority</li>
-		<li>collapsed</li>
-		<li>show-close</li>
-		<li>show-counter</li>
+		<li>priority (default: "None")</li>
+		<li>collapsed (default: "false")</li>
+		<li>show-close (default: "false")</li>
+		<li>show-counter (default: "false")</li>
 	</ul>
 
 	<h3>Slots</h3>
@@ -35,8 +35,15 @@ <h3>Slots</h3>
 		<li>actions</li>
 	</ul>
 
+	<h3>Events</h3>
+	<ul>
+		<li>close</li>
+		<li>toggle</li>
+	</ul>
+
 	<h3>Events on ui5-list level</h3>
 	<ul>
+		<li>itemClose</li>
 		<li>itemToggle</li>
 	</ul>
 
@@ -60,7 +67,7 @@ <h3>Events on ui5-list level</h3>
 				<span slot="footnotes">3 Days</span>
 
 				<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
-				<ui5-notification-overflow-action icon="reject" text="Reject" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
 			</ui5-li-notification>
 
 			<ui5-li-notification
diff --git a/packages/fiori/test/pages/NotificationListItem.html b/packages/fiori/test/pages/NotificationListItem.html
index 898ca4c7dea4..1a71aa1da9a0 100644
--- a/packages/fiori/test/pages/NotificationListItem.html
+++ b/packages/fiori/test/pages/NotificationListItem.html
@@ -20,29 +20,13 @@
 
 	<br/><br/>
 
-	<div style="display: flex; flex-direction: column;">
-		<ui5-label>click event:</ui5-label>
-
-		<ui5-input id="clickInput">
-		</ui5-input>
-	</div>
-
-	<br/>
-	
-	<div style="display: flex; flex-direction: column;">
-		<ui5-label>close event:</ui5-label>
-
-		<ui5-input id="closeInput">
-		</ui5-input>
-	</div>
-
 	<h3>Properties</h3>
 	<ul>
 		<li>heading</li>
-		<li>truncate</li>
-		<li>priority</li>
-		<li>read</li>
-		<li>show-close</li>
+		<li>truncate (default: "false")</li>
+		<li>priority (default: "None")</li>
+		<li>read (default: "false")</li>
+		<li>show-close (default: "false")</li>
 	</ul>
 
 	<h3>Slots</h3>
@@ -52,6 +36,12 @@ <h3>Slots</h3>
 		<li>footnotes</li>
 	</ul>
 
+	<h3>Events</h3>
+	<ul>
+		<li>click</li>
+		<li>close</li>
+	</ul>
+
 	<h3>Events on ui5-list level</h3>
 	<ul>
 		<li>itemClick</li>
@@ -115,6 +105,21 @@ <h3>Events on ui5-list level</h3>
 	</ui5-list>
 
 	<br><br>
+	<div style="display: flex; flex-direction: column;">
+		<ui5-label>click event:</ui5-label>
+
+		<ui5-input id="clickInput">
+		</ui5-input>
+	</div>
+
+	<br><br>
+
+	<div style="display: flex; flex-direction: column;">
+		<ui5-label>close event:</ui5-label>
+
+		<ui5-input id="closeInput">
+		</ui5-input>
+	</div>
 
 
 	<ui5-list id="notificationList2" header-text="Notifications heading and content 'wraps'">
@@ -238,7 +243,10 @@ <h3>Events on ui5-list level</h3>
 		});
 
 		notificationList2.addEventListener("itemClick", function(event) {
-			wcToastBS.textContent = event.detail.item.heading;
+			var item = event.detail.item;
+			item.read = true;
+
+			wcToastBS.textContent = item.heading;
 			wcToastBS.show();
 		});
 
diff --git a/packages/main/src/List.js b/packages/main/src/List.js
index 3a07f3939118..859d89c3bd75 100644
--- a/packages/main/src/List.js
+++ b/packages/main/src/List.js
@@ -324,7 +324,7 @@ class List extends UI5Element {
 		this._previouslySelectedItem = null;
 
 		this.addEventListener("ui5-_press", this.onItemPress.bind(this));
-		this.addEventListener("ui5-_close", this.onItemClose.bind(this));
+		this.addEventListener("ui5-close", this.onItemClose.bind(this));
 		this.addEventListener("ui5-toggle", this.onItemToggle.bind(this));
 		this.addEventListener("ui5-_focused", this.onItemFocused.bind(this));
 		this.addEventListener("ui5-_forwardAfter", this.onForwardAfter.bind(this));

From 5eec2f73fb2ea82fe763920c1328a1f2249dc9ac Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Wed, 6 May 2020 21:28:18 +0300
Subject: [PATCH 11/22] mark Link press like the Button

---
 .../fiori/src/NotificationListGroupItem.hbs   |  2 +-
 .../fiori/src/NotificationListGroupItem.js    | 54 +++++++++---
 packages/fiori/src/NotificationListItem.hbs   |  3 +
 packages/fiori/src/NotificationListItem.js    | 84 ++++++++++++++-----
 .../fiori/src/NotificationListItemBase.js     |  7 +-
 .../fiori/src/i18n/messagebundle.properties   | 30 +++++--
 .../src/themes/NotificationListGroupItem.css  |  1 -
 .../src/themes/NotificationListItemBase.css   |  2 +
 packages/main/src/Link.hbs                    |  6 +-
 packages/main/src/Link.js                     | 16 ++++
 packages/main/src/ListItemBase.js             |  4 +-
 packages/main/src/themes/Link.css             |  1 -
 12 files changed, 165 insertions(+), 45 deletions(-)

diff --git a/packages/fiori/src/NotificationListGroupItem.hbs b/packages/fiori/src/NotificationListGroupItem.hbs
index f4b4080c50ce..1b055f44f3e8 100644
--- a/packages/fiori/src/NotificationListGroupItem.hbs
+++ b/packages/fiori/src/NotificationListGroupItem.hbs
@@ -6,7 +6,7 @@
 	role="option"
 	tabindex="{{_tabIndex}}"
 	dir="{{rtl}}"
-	aria-labelledby="{{_id}}-heading {{_id}}-invisibleText"
+	aria-labelledby="{{ariaLabelledBy}}"
 >
 	<div class="ui5-nli-group-header">
 		<ui5-button
diff --git a/packages/fiori/src/NotificationListGroupItem.js b/packages/fiori/src/NotificationListGroupItem.js
index 46b0966d06ef..333beffb91af 100644
--- a/packages/fiori/src/NotificationListGroupItem.js
+++ b/packages/fiori/src/NotificationListGroupItem.js
@@ -1,16 +1,19 @@
 import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
 import { getI18nBundle, fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
+import Priority from "@ui5/webcomponents/dist/types/Priority.js";
 import Button from "@ui5/webcomponents/dist/Button.js";
 import Icon from "@ui5/webcomponents/dist/Icon.js";
 import NotificationListItemBase from "./NotificationListItemBase.js";
 
 // Texts
 import {
-	NOTIFICATIONGROUPITEM_TXT,
-	NOTIFICATIONGROUPITEM_PRIORITY_TXT,
-	NOTIFICATIONGROUPITEM_COUNTER_TXT,
-	NOTIFICATIONLISTITEM_OVERLOW_BTN_TITLE,
-	NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE,
+	NOTIFICATION_LIST_GROUP_ITEM_TXT,
+	NOTIFICATION_LIST_GROUP_ITEM_COUNTER_TXT,
+	NOTIFICATION_LIST_ITEM_HIGH_PRIORITY_TXT,
+	NOTIFICATION_LIST_ITEM_MEDIUM_PRIORITY_TXT,
+	NOTIFICATION_LIST_ITEM_LOW_PRIORITY_TXT,
+	NOTIFICATION_LIST_ITEM_OVERLOW_BTN_TITLE,
+	NOTIFICATION_LIST_ITEM_CLOSE_BTN_TITLE,
 } from "./generated/i18n/i18n-defaults.js";
 
 // Templates
@@ -147,20 +150,49 @@ class NotificationListGroupItem extends NotificationListItemBase {
 	}
 
 	get overflowBtnTitle() {
-		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_OVERLOW_BTN_TITLE);
+		return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_OVERLOW_BTN_TITLE);
 	}
 
 	get closeBtnTitle() {
-		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE);
+		return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_CLOSE_BTN_TITLE);
+	}
+
+	get priorityText() {
+		if (this.priority === Priority.High) {
+			return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_HIGH_PRIORITY_TXT);
+		}
+
+		if (this.priority === Priority.Medium) {
+			return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_MEDIUM_PRIORITY_TXT);
+		}
+
+		if (this.priority === Priority.Low) {
+			return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_LOW_PRIORITY_TXT);
+		}
+
+		return "";
 	}
 
 	get accInvisibleText() {
-		const groupTxt = this.i18nBundle.getText(NOTIFICATIONGROUPITEM_TXT);
-		const prioTxt = this.i18nBundle.getText(NOTIFICATIONGROUPITEM_PRIORITY_TXT);
-		const counterTxt = this.i18nBundle.getText(NOTIFICATIONGROUPITEM_COUNTER_TXT);
+		const groupTxt = this.i18nBundle.getText(NOTIFICATION_LIST_GROUP_ITEM_TXT);
+		const counterTxt = this.i18nBundle.getText(NOTIFICATION_LIST_GROUP_ITEM_COUNTER_TXT);
 		const counter = this.showCounter ? `${counterTxt} ${this.itemsCount}` : "";
+		const priorityText = this.priorityText;
+
+		return `${groupTxt} ${priorityText} ${counter}`;
+	}
+
+	get ariaLabelledBy() {
+		const id = this._id;
+		const ids = [];
+
+		if (this.hasHeading) {
+			ids.push(`${id}-heading`);
+		}
+
+		ids.push(`${id}-invisibleText`);
 
-		return `${groupTxt}. ${this.priority} ${prioTxt}. ${counter}`;
+		return ids.join(" ");
 	}
 
 	/**
diff --git a/packages/fiori/src/NotificationListItem.hbs b/packages/fiori/src/NotificationListItem.hbs
index a1b09c818675..1d1940581354 100644
--- a/packages/fiori/src/NotificationListItem.hbs
+++ b/packages/fiori/src/NotificationListItem.hbs
@@ -76,10 +76,13 @@
 				?hidden="{{hideShowMore}}"
 				@click="{{_onShowMoreClick}}"
 				aria-hidden="true"
+				href="#" {{!--without href ENTER does not trigger click --}}
 			>
 				{{showMoreText}}
 			</ui5-link>
 		</div>
+
+		<span id="{{_id}}-invisibleText" class="ui5-hidden-text">{{accInvisibleText}}</span>
 	</div>
 
 	<div class="ui5-nli-avatar">
diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index 42501fad07a0..8e448b3690ee 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -4,15 +4,23 @@ import { getI18nBundle, fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18
 import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
 import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
 
+import Priority from "@ui5/webcomponents/dist/types/Priority.js";
 import Button from "@ui5/webcomponents/dist/Button.js";
 import Icon from "@ui5/webcomponents/dist/Icon.js";
 import NotificationListItemBase from "./NotificationListItemBase.js";
 
 // Texts
 import {
-	NOTIFICATIONLISTITEM_SHOW_MORE,
-	NOTIFICATIONLISTITEM_OVERLOW_BTN_TITLE,
-	NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE,
+	NOTIFICATION_LIST_ITEM_TXT,
+	NOTIFICATION_LIST_ITEM_READ,
+	NOTIFICATION_LIST_ITEM_UNREAD,
+	NOTIFICATION_LIST_ITEM_SHOW_MORE,
+	NOTIFICATION_LIST_ITEM_SHOW_LESS,
+	NOTIFICATION_LIST_ITEM_HIGH_PRIORITY_TXT,
+	NOTIFICATION_LIST_ITEM_MEDIUM_PRIORITY_TXT,
+	NOTIFICATION_LIST_ITEM_LOW_PRIORITY_TXT,
+	NOTIFICATION_LIST_ITEM_OVERLOW_BTN_TITLE,
+	NOTIFICATION_LIST_ITEM_CLOSE_BTN_TITLE,
 } from "./generated/i18n/i18n-defaults.js";
 
 // Templates
@@ -205,10 +213,6 @@ class NotificationListItem extends NotificationListItemBase {
 		ResizeHandler.deregister(this, this.onResizeBind);
 	}
 
-	get hasHeading() {
-		return !!this.heading.length;
-	}
-
 	get hasDesc() {
 		return !!this.description.length;
 	}
@@ -218,15 +222,19 @@ class NotificationListItem extends NotificationListItemBase {
 	}
 
 	get showMoreText() {
-		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_SHOW_MORE);
+		if (this._showMorePressed) {
+			return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_SHOW_LESS);
+		}
+
+		return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_SHOW_MORE);
 	}
 
 	get overflowBtnTitle() {
-		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_OVERLOW_BTN_TITLE);
+		return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_OVERLOW_BTN_TITLE);
 	}
 
 	get closeBtnTitle() {
-		return this.i18nBundle.getText(NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE);
+		return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_CLOSE_BTN_TITLE);
 	}
 
 	get hideShowMore() {
@@ -291,22 +299,49 @@ class NotificationListItem extends NotificationListItemBase {
 	}
 
 	get ariaLabelledBy() {
+		const id = this._id;
 		const ids = [];
 
 		if (this.hasHeading) {
-			ids.push(`${this._id}-heading`);
+			ids.push(`${id}-heading`);
 		}
 		if (this.hasDesc) {
-			ids.push(`${this._id}-description`);
+			ids.push(`${id}-description`);
 		}
 
 		if (this.hasFootNotes) {
-			ids.push(`${this._id}-footer`);
+			ids.push(`${id}-footer`);
 		}
 
+		ids.push(`${id}-invisibleText`);
+
 		return ids.join(" ");
 	}
 
+	get priorityText() {
+		if (this.priority === Priority.High) {
+			return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_HIGH_PRIORITY_TXT);
+		}
+
+		if (this.priority === Priority.Medium) {
+			return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_MEDIUM_PRIORITY_TXT);
+		}
+
+		if (this.priority === Priority.Low) {
+			return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_LOW_PRIORITY_TXT);
+		}
+
+		return "";
+	}
+
+	get accInvisibleText() {
+		const notifcatationTxt = this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_TXT);
+		const readTxt = this.read ? this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_READ) : this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_UNREAD);
+		const priorityText = this.priorityText;
+
+		return `${notifcatationTxt} ${readTxt} ${priorityText}`;
+	}
+
 	get classes() {
 		return {
 			content: {
@@ -319,13 +354,11 @@ class NotificationListItem extends NotificationListItemBase {
 	 * Event handlers
 	 */
 	_onclick(event) {
-		if (event.isMarked === "button") {
-			return;
-		}
 		this.fireItemPress(event);
 	}
 
-	_onShowMoreClick() {
+	_onShowMoreClick(event) {
+		event.preventDefault();
 		this._showMorePressed = !this._showMorePressed;
 	}
 
@@ -338,7 +371,16 @@ class NotificationListItem extends NotificationListItemBase {
 	}
 
 	_onkeyup(event) {
-		if (isSpace(event)) {
+		super._onkeyup(event);
+
+		const space = isSpace(event);
+
+		if (space && event.isMarked === "link") {
+			this._onShowMoreClick(event);
+			return;
+		}
+
+		if (space) {
 			this.fireItemPress(event);
 		}
 	}
@@ -346,7 +388,11 @@ class NotificationListItem extends NotificationListItemBase {
 	/**
 	 * Private
 	 */
-	fireItemPress() {
+	fireItemPress(event) {
+		if (event.isMarked === "button" || event.isMarked === "link") {
+			return;
+		}
+
 		this.fireEvent("_press", { item: this });
 	}
 
diff --git a/packages/fiori/src/NotificationListItemBase.js b/packages/fiori/src/NotificationListItemBase.js
index 8662cc235d89..19ff3d8d6748 100644
--- a/packages/fiori/src/NotificationListItemBase.js
+++ b/packages/fiori/src/NotificationListItemBase.js
@@ -65,7 +65,7 @@ const metadata = {
 	slots: /** @lends sap.ui.webcomponents.fiori.NotificationListItemBase.prototype */ {
 
 		/**
-		 * Defines the actions, displayed in the <code>ui5-li-notification-group</code>.
+		 * Defines the actions, displayed in the top-right area.
 		 * <br><br>
 		 * <b>Note:</b> use the <code>ui5-notification-overflow-action</code> component.
 		 *
@@ -104,7 +104,6 @@ const metadata = {
  * @public
  */
 class NotificationListItemBase extends ListItemBase {
-
 	static get metadata() {
 		return metadata;
 	}
@@ -121,6 +120,10 @@ class NotificationListItemBase extends ListItemBase {
 		return NotifactionOverflowActionsPopoverCss;
 	}
 
+	get hasHeading() {
+		return !!this.heading.length;
+	}
+
 	get hasPriority() {
 		return this.priority !== Priority.None;
 	}
diff --git a/packages/fiori/src/i18n/messagebundle.properties b/packages/fiori/src/i18n/messagebundle.properties
index add1934f2376..e7ec583121bb 100644
--- a/packages/fiori/src/i18n/messagebundle.properties
+++ b/packages/fiori/src/i18n/messagebundle.properties
@@ -1,23 +1,37 @@
 #This is the resource bundle for the UI5 Web Components
 #__ldi.translation.uuid=95d47730-48a4-4d6d-92f6-61f8c9d8f274
 
+#XTXT: Text for the NotificationListGroupItem
+NOTIFICATION_LIST_ITEM_TXT=Notification
+
 #XTXT: Text for the 'ShowMore' link in the NotificationListItem
-NOTIFICATIONLISTITEM_SHOW_MORE=Show More
+NOTIFICATION_LIST_ITEM_SHOW_MORE=Show More
+
+#XTXT: Text for the 'ShowLess' link in the NotificationListItem
+NOTIFICATION_LIST_ITEM_SHOW_LESS=Show Less
 
 #XBUT: Tooltip text for 'Overflow' button in the NotificationListItem
-NOTIFICATIONLISTITEM_OVERLOW_BTN_TITLE=More
+NOTIFICATION_LIST_ITEM_OVERLOW_BTN_TITLE=More
 
 #XBUT: Tooltip text for 'Close' button in the NotificationListItem
-NOTIFICATIONLISTITEM_CLOSE_BTN_TITLE=Close
+NOTIFICATION_LIST_ITEM_CLOSE_BTN_TITLE=Close
 
-#XTXT: Text for the NotificationListGroupItem
-NOTIFICATIONGROUPITEM_TXT=Notification group
+#XTXT: Text for the NotificationListItem "read" state
+NOTIFICATION_LIST_ITEM_READ=read
 
-#XTXT: Text for the NotificationListGroupItem priority
-NOTIFICATIONGROUPITEM_PRIORITY_TXT=Priority
+#XTXT: Text for the NotificationListGroupItem "unread" state
+NOTIFICATION_LIST_ITEM_UNREAD=unread
+
+#XTXT: Text for the NotificationListItem priority
+NOTIFICATION_LIST_ITEM_HIGH_PRIORITY_TXT=High Priority
+NOTIFICATION_LIST_ITEM_MEDIUM_PRIORITY_TXT=Medium Priority
+NOTIFICATION_LIST_ITEM_LOW_PRIORITY_TXT=Low Priority
+
+#XTXT: Text for the NotificationListGroupItem
+NOTIFICATION_LIST_GROUP_ITEM_TXT=Notification group
 
 #XTXT: Text for the NotificationListGroupItem counter
-NOTIFICATIONGROUPITEM_COUNTER_TXT=Counter
+NOTIFICATION_LIST_GROUP_ITEM_COUNTER_TXT=Counter
 
 #XBUT: Button text for cancel button in the UploadCollectionItem
 UPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT=Cancel
diff --git a/packages/fiori/src/themes/NotificationListGroupItem.css b/packages/fiori/src/themes/NotificationListGroupItem.css
index 3fe7645a3f46..2deecbeb150a 100644
--- a/packages/fiori/src/themes/NotificationListGroupItem.css
+++ b/packages/fiori/src/themes/NotificationListGroupItem.css
@@ -1,4 +1,3 @@
-@import "./InvisibleTextStyles.css";
 @import "./NotificationListItemBase.css";
 @import "./NotificationPrioIcon.css";
 
diff --git a/packages/fiori/src/themes/NotificationListItemBase.css b/packages/fiori/src/themes/NotificationListItemBase.css
index 19710cdfb069..c300084fcf31 100644
--- a/packages/fiori/src/themes/NotificationListItemBase.css
+++ b/packages/fiori/src/themes/NotificationListItemBase.css
@@ -1,3 +1,5 @@
+@import "./InvisibleTextStyles.css";
+
 :host(:not([hidden])) {
 	display: block;
 	width: 100%;
diff --git a/packages/main/src/Link.hbs b/packages/main/src/Link.hbs
index e045f93b582d..87745856bb8a 100644
--- a/packages/main/src/Link.hbs
+++ b/packages/main/src/Link.hbs
@@ -6,7 +6,11 @@
 	rel="{{_rel}}"
 	tabindex="{{tabIndex}}"
 	?disabled="{{disabled}}"
-	aria-disabled="{{ariaDisabled}}">
+	aria-disabled="{{ariaDisabled}}"
+	@focusin={{_onfocusin}}
+	@click={{_onclick}}
+	@keydown={{_onkeydown}}
+	@keyup={{_onkeyup}}>
 	<slot></slot>
 	{{#if hasLinkType}}
 		<span class="ui5-hidden-text">{{linkTypeText}}</span>
diff --git a/packages/main/src/Link.js b/packages/main/src/Link.js
index 9d776d9216dc..0c59d6c3dba6 100644
--- a/packages/main/src/Link.js
+++ b/packages/main/src/Link.js
@@ -232,6 +232,22 @@ class Link extends UI5Element {
 	static async onDefine() {
 		await fetchI18nBundle("@ui5/webcomponents");
 	}
+
+	_onclick(event) {
+		event.isMarked = "link";
+	}
+
+	_onfocusin(event) {
+		event.isMarked = "link";
+	}
+
+	_onkeydown(event) {
+		event.isMarked = "link";
+	}
+
+	_onkeyup(event) {
+		event.isMarked = "link";
+	}
 }
 
 Link.define();
diff --git a/packages/main/src/ListItemBase.js b/packages/main/src/ListItemBase.js
index 62b7597393c6..6e34a76f4e7f 100644
--- a/packages/main/src/ListItemBase.js
+++ b/packages/main/src/ListItemBase.js
@@ -71,7 +71,7 @@ class ListItemBase extends UI5Element {
 	}
 
 	_onfocusin(event) {
-		if (event.isMarked === "button") {
+		if (event.isMarked === "button" || event.isMarked === "link") {
 			return;
 		}
 
@@ -93,6 +93,8 @@ class ListItemBase extends UI5Element {
 		}
 	}
 
+	_onkeyup() {}
+
 	_handleTabNext(event) {
 		const target = event.target;
 
diff --git a/packages/main/src/themes/Link.css b/packages/main/src/themes/Link.css
index b7e15a39a19f..ca1f4fd6f626 100644
--- a/packages/main/src/themes/Link.css
+++ b/packages/main/src/themes/Link.css
@@ -16,7 +16,6 @@
 	pointer-events: none;
 }
 
-:host(:not([disabled])) .ui5-link-root:hover,
 :host(:not([disabled])) .ui5-link-root:hover {
 	text-decoration: underline;
 	color: var(--sapLinkColor);

From 6c2b99bc983542fa1ba02bd1e5b3371be1206f58 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Thu, 7 May 2020 00:06:02 +0300
Subject: [PATCH 12/22] add tests

---
 .../fiori/src/NotificationListGroupItem.hbs   |   3 +
 .../fiori/src/NotificationListGroupItem.js    |   4 +-
 packages/fiori/src/NotificationListItem.hbs   |   3 +
 packages/fiori/src/NotificationListItem.js    |   2 +
 .../fiori/src/NotificationOverflowAction.js   |   1 +
 .../test/pages/NotificationListGroupItem.html |   6 +-
 .../test/pages/NotificationListItem.html      |  45 +---
 .../pages/NotificationList_test_page.html     | 199 ++++++++++++++++++
 .../fiori/test/specs/NotificationList.spec.js | 154 ++++++++++++++
 .../test/specs/NotificationListItem.spec.js   |   0
 10 files changed, 371 insertions(+), 46 deletions(-)
 create mode 100644 packages/fiori/test/pages/NotificationList_test_page.html
 create mode 100644 packages/fiori/test/specs/NotificationList.spec.js
 delete mode 100644 packages/fiori/test/specs/NotificationListItem.spec.js

diff --git a/packages/fiori/src/NotificationListGroupItem.hbs b/packages/fiori/src/NotificationListGroupItem.hbs
index 1b055f44f3e8..0cbbf3e33fa8 100644
--- a/packages/fiori/src/NotificationListGroupItem.hbs
+++ b/packages/fiori/src/NotificationListGroupItem.hbs
@@ -14,6 +14,7 @@
 			design="Transparent"
 			@click="{{_onBtnToggleClick}}"
 			class="ui5-nli-group-toggle-btn"
+			toggle-btn
 		></ui5-button>
 
 		{{#if hasPriority}}
@@ -50,6 +51,7 @@
 						class="ui5-nli-group-action"
 						@click="{{this.press}}"
 						data-ui5-external-action-item-id="{{this.refItemid}}"
+						custom-btn
 					>
 						{{this.text}}
 					</ui5-button>
@@ -63,6 +65,7 @@
 				design="Transparent"
 				@click="{{_onBtnCloseClick}}"
 				title="{{closeBtnTitle}}"
+				close-btn
 			></ui5-button>
 		{{/if}}
 
diff --git a/packages/fiori/src/NotificationListGroupItem.js b/packages/fiori/src/NotificationListGroupItem.js
index 333beffb91af..52f5f4e058f1 100644
--- a/packages/fiori/src/NotificationListGroupItem.js
+++ b/packages/fiori/src/NotificationListGroupItem.js
@@ -1,6 +1,7 @@
 import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
 import { getI18nBundle, fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
 import Priority from "@ui5/webcomponents/dist/types/Priority.js";
+import List from "@ui5/webcomponents/dist/List.js";
 import Button from "@ui5/webcomponents/dist/Button.js";
 import Icon from "@ui5/webcomponents/dist/Icon.js";
 import NotificationListItemBase from "./NotificationListItemBase.js";
@@ -90,7 +91,7 @@ const metadata = {
  * <li><code>Toggle</code> button to expand and collapse the group</li>
  * <li><code>Priority</code> icon to display the priority of the group</li>
  * <li><code>Heading</code> to entitle the group</li>
- * <li>Custom actions</li>
+ * <li>Custom actions - with the use of <code>ui5-notification-overflow-action</code></li>
  * <li>Items of the group</li>
  * </ul>
  *
@@ -135,6 +136,7 @@ class NotificationListGroupItem extends NotificationListItemBase {
 
 	static async onDefine() {
 		await Promise.all([
+			List.define(),
 			Button.define(),
 			Icon.define(),
 			fetchI18nBundle("@ui5/webcomponents-fiori"),
diff --git a/packages/fiori/src/NotificationListItem.hbs b/packages/fiori/src/NotificationListItem.hbs
index 1d1940581354..d7b140611498 100644
--- a/packages/fiori/src/NotificationListItem.hbs
+++ b/packages/fiori/src/NotificationListItem.hbs
@@ -27,6 +27,7 @@
 					class="ui5-nli-action"
 					@click="{{this.press}}"
 					data-ui5-external-action-item-id="{{this.refItemid}}"
+					custom-btn
 				>
 					{{this.text}}
 				</ui5-button>
@@ -39,6 +40,7 @@
 				design="Transparent"
 				@click="{{_onBtnCloseClick}}"
 				title="{{closeBtnTitle}}"
+				close-btn
 			></ui5-button>
 		{{/if}}
 	</div>
@@ -77,6 +79,7 @@
 				@click="{{_onShowMoreClick}}"
 				aria-hidden="true"
 				href="#" {{!--without href ENTER does not trigger click --}}
+				showMore-btn
 			>
 				{{showMoreText}}
 			</ui5-link>
diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index 8e448b3690ee..eadbf433fb0a 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -6,6 +6,7 @@ import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
 
 import Priority from "@ui5/webcomponents/dist/types/Priority.js";
 import Button from "@ui5/webcomponents/dist/Button.js";
+import Link from "@ui5/webcomponents/dist/Link.js";
 import Icon from "@ui5/webcomponents/dist/Icon.js";
 import NotificationListItemBase from "./NotificationListItemBase.js";
 
@@ -201,6 +202,7 @@ class NotificationListItem extends NotificationListItemBase {
 		await Promise.all([
 			Button.define(),
 			Icon.define(),
+			Link.define(),
 			fetchI18nBundle("@ui5/webcomponents-fiori"),
 		]);
 	}
diff --git a/packages/fiori/src/NotificationOverflowAction.js b/packages/fiori/src/NotificationOverflowAction.js
index 3c5efb682adc..aa0527315180 100644
--- a/packages/fiori/src/NotificationOverflowAction.js
+++ b/packages/fiori/src/NotificationOverflowAction.js
@@ -25,6 +25,7 @@ const metadata = {
 		 * <ui5-link target="_blank" href="https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html" class="api-table-content-cell-link">Icon Explorer</ui5-link>.
 		 *
 		 * @type {string}
+		 * @defaultvalue ""
 		 * @public
 		 */
 		icon: {
diff --git a/packages/fiori/test/pages/NotificationListGroupItem.html b/packages/fiori/test/pages/NotificationListGroupItem.html
index 48c5a4ca2976..7b7e8abc37c9 100644
--- a/packages/fiori/test/pages/NotificationListGroupItem.html
+++ b/packages/fiori/test/pages/NotificationListGroupItem.html
@@ -248,7 +248,7 @@ <h3>Events on ui5-list level</h3>
 					<span slot="footnotes">Office Notifications</span>
 					<span slot="footnotes">3 Days</span>
 		
-					<ui5-notification-overflow-action id="acceptBtn2InPopover" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+					<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
 				</ui5-li-notification>
 	
 			</ui5-li-notification-group>
@@ -310,15 +310,11 @@ <h3>Events on ui5-list level</h3>
 		acceptBtnInPopover.addEventListener("click", function(event) {
 			wcToastBS.textContent = "Accept btn In popover btn clicked";
 			wcToastBS.show();
-
-			console.log("acceptBtnInPopover btn clicked");
 		});
 
 		rejectBtnInPopover.addEventListener("click", function(event) {
 			wcToastBS.textContent = "Reject btn In popover btn clicked";
 			wcToastBS.show();
-
-			console.log("rejectBtnInPopover btn clicked");
 		});
 
 		openNotifications.addEventListener("click", function(event) {
diff --git a/packages/fiori/test/pages/NotificationListItem.html b/packages/fiori/test/pages/NotificationListItem.html
index 1a71aa1da9a0..f06d2f2369b0 100644
--- a/packages/fiori/test/pages/NotificationListItem.html
+++ b/packages/fiori/test/pages/NotificationListItem.html
@@ -77,7 +77,7 @@ <h3>Events on ui5-list level</h3>
 			<span slot="footnotes">Office Notifications</span>
 			<span slot="footnotes">3 Days</span>
 
-			<ui5-notification-overflow-action id="acceptBtn2" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+			<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
 		</ui5-li-notification>
 
 		<ui5-li-notification
@@ -105,22 +105,6 @@ <h3>Events on ui5-list level</h3>
 	</ui5-list>
 
 	<br><br>
-	<div style="display: flex; flex-direction: column;">
-		<ui5-label>click event:</ui5-label>
-
-		<ui5-input id="clickInput">
-		</ui5-input>
-	</div>
-
-	<br><br>
-
-	<div style="display: flex; flex-direction: column;">
-		<ui5-label>close event:</ui5-label>
-
-		<ui5-input id="closeInput">
-		</ui5-input>
-	</div>
-
 
 	<ui5-list id="notificationList2" header-text="Notifications heading and content 'wraps'">
 
@@ -166,7 +150,6 @@ <h3>Events on ui5-list level</h3>
 		</ui5-li-notification>
 	</ui5-list>
 
-
 	<ui5-toast id="wcToastBS" duration="2000"></ui5-toast>
 
 	<ui5-popover id="notificationsPopover" style="max-width: 400px" placement-type="Bottom" horizontal-align="Right">
@@ -232,21 +215,18 @@ <h3>Events on ui5-list level</h3>
 
 	<script>
 		notificationList.addEventListener("itemClick", function(event) {
-			clickInput.value = event.detail.item.heading;
+			wcToastBS.textContent = event.detail.item.heading;
+			wcToastBS.show();
 		});
 
 		notificationList.addEventListener("itemClose", function(event) {
-			closeInput.value = event.detail.item.heading;
-
 			wcToastBS.textContent = event.detail.item.heading;
 			wcToastBS.show();
 		});
 
 		notificationList2.addEventListener("itemClick", function(event) {
-			var item = event.detail.item;
-			item.read = true;
-
-			wcToastBS.textContent = item.heading;
+			event.detail.item.read = true;
+			wcToastBS.textContent = event.detail.item.heading;
 			wcToastBS.show();
 		});
 
@@ -258,36 +238,21 @@ <h3>Events on ui5-list level</h3>
 		acceptBtn.addEventListener("click", function(event) {
 			wcToastBS.textContent = "Accept btn clicked";
 			wcToastBS.show();
-
-			console.log("Accept btn clicked");
-		});
-
-		acceptBtn2.addEventListener("click", function(event) {
-			wcToastBS.textContent = "Accept2 btn clicked";
-			wcToastBS.show();
-
-			console.log("Accept2 btn clicked");
 		});
 
 		acceptBtnInPopover.addEventListener("click", function(event) {
 			wcToastBS.textContent = "Accept btn In popover btn clicked";
 			wcToastBS.show();
-
-			console.log("acceptBtnInPopover btn clicked");
 		});
 
 		rejectBtn.addEventListener("click", function(event) {
 			wcToastBS.textContent = "Reject btn clicked";
 			wcToastBS.show();
-
-			console.log("Reject btn clicked");
 		});
 
 		rejectBtnInPopover.addEventListener("click", function(event) {
 			wcToastBS.textContent = "Reject btn In popover btn clicked";
 			wcToastBS.show();
-
-			console.log("rejectBtnInPopover btn clicked");
 		});
 
 		openNotifications.addEventListener("click", function(event) {
diff --git a/packages/fiori/test/pages/NotificationList_test_page.html b/packages/fiori/test/pages/NotificationList_test_page.html
new file mode 100644
index 000000000000..2364efc81159
--- /dev/null
+++ b/packages/fiori/test/pages/NotificationList_test_page.html
@@ -0,0 +1,199 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+	<meta http-equiv="X-UA-Compatible" content="ie=edge">
+	<title>NotificationListItem and NotificationListGroupItem</title>
+
+	<script src="../../webcomponentsjs/webcomponents-loader.js"></script>
+	<script src="../../resources/bundle.esm.js" type="module"></script>
+	<script nomodule src="../../resources/bundle.es5.js"></script>
+
+	<script>delete Document.prototype.adoptedStyleSheets;</script>
+
+	<style>
+		.test-section {
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+		}
+	</style>
+</head>
+
+<body style="background-color: var(--sapBackgroundColor);">
+
+	<ui5-title>Test NotificationListItem and NotificationListGroupItem</ui5-title>
+
+	<div class="test-section">
+		<ui5-label>itemClick event:</ui5-label>
+
+		<ui5-input id="clickInput">
+		</ui5-input>
+	</div>
+
+	<div class="test-section">
+		<ui5-label>itemClose event:</ui5-label>
+
+		<ui5-input id="closeInput">
+		</ui5-input>
+	</div>
+
+	<div class="test-section">
+		<ui5-label>itemToggle event:</ui5-label>
+
+		<ui5-input id="toggleInput">
+		</ui5-input>
+	</div>
+
+	<div class="test-section">
+		<ui5-label>custom action click:</ui5-label>
+
+		<ui5-input id="customActionInput">
+		</ui5-input>
+	</div>
+
+	<div class="test-section">
+
+		<ui5-list id="notificationList" style="width: 500px" header-text="Notifications grouped">
+			<ui5-li-notification-group
+				id="nlgi1"
+				show-close
+				show-counter
+				heading="Orders"
+				priority="High"
+			>
+				<ui5-li-notification
+					id="nli1"
+					show-close
+					truncate
+					heading="New order #2201"
+					priority="High"
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+
+					<ui5-notification-overflow-action id="acceptBtnInOverflow" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+					<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+
+				<ui5-li-notification
+					id="nli2"
+					show-close
+					truncate
+					heading="New order #2202"
+					priority="High"
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+
+					<ui5-notification-overflow-action id="acceptBtn" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+
+				<ui5-notification-overflow-action id="acceptBtnInOverflow2" icon="accept" text="Accept All" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action icon="message-error" text="Reject All" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification-group>
+
+			<ui5-li-notification-group
+				show-close
+				show-counter
+				heading="Payments"
+				priority="High"
+			>
+				<ui5-li-notification
+					id="nli3"
+					show-close
+					heading="New payment #2900"
+					priority="High"
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+
+					<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+					<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+
+				<ui5-li-notification
+					id="nli4"
+					show-close
+					heading="New payment #2901"
+					priority="High"
+				>
+					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+					<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+					<span slot="footnotes">Office Notifications</span>
+					<span slot="footnotes">3 Days</span>
+
+					<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				</ui5-li-notification>
+			</ui5-li-notification-group>
+
+			<ui5-li-notification-group
+				id="nlgi3"
+				show-close
+				show-counter
+				heading="Collapsed"
+				priority="High"
+				collapsed
+			>
+			<ui5-li-notification
+				id="nli5"
+				show-close
+				heading="New payment #2900"
+				priority="High"
+			>
+				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
+				<ui5-avatar icon="employee" size="XS" slot="avatar"></ui5-avatar>
+
+				<span slot="footnotes">Office Notifications</span>
+				<span slot="footnotes">3 Days</span>
+
+				<ui5-notification-overflow-action icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+			</ui5-li-notification>
+
+			<ui5-notification-overflow-action icon="accept" text="Accept All" slot="actions"></ui5-notification-overflow-action>
+			<ui5-notification-overflow-action icon="message-error" text="Reject All" slot="actions"></ui5-notification-overflow-action>
+		</ui5-li-notification-group>
+		</ui5-list>
+	</div>
+
+	<script>
+		notificationList.addEventListener("ui5-itemClick", function(event) {
+			clickInput.value = event.detail.item.heading;
+		});
+
+		notificationList.addEventListener("ui5-itemClose", function(event) {
+			closeInput.value = event.detail.item.heading;
+		});
+
+		notificationList.addEventListener("ui5-itemToggle", function(event) {
+			toggleInput.value = event.detail.item.heading;
+		});
+
+		var counter = 0;
+		acceptBtn.addEventListener("ui5-click", function(event) {
+			customActionInput.value = ++counter;
+		});
+
+		acceptBtnInOverflow.addEventListener("ui5-click", function(event) {
+			customActionInput.value = ++counter;
+		});
+
+		acceptBtnInOverflow2.addEventListener("ui5-click", function(event) {
+			customActionInput.value = ++counter;
+		});
+	</script>
+</body>
+</html>
diff --git a/packages/fiori/test/specs/NotificationList.spec.js b/packages/fiori/test/specs/NotificationList.spec.js
new file mode 100644
index 000000000000..7742f930442a
--- /dev/null
+++ b/packages/fiori/test/specs/NotificationList.spec.js
@@ -0,0 +1,154 @@
+const assert = require("chai").assert;
+
+describe("Notification List Item Tests", () => {
+	before(() => {
+		browser.url("http://localhost:8081/test-resources/pages/NotificationList_test_page.html");
+	});
+
+	it("tests itemClick fired", () => {
+		const clickInput = $("#clickInput");
+		const EXPECTED_RESULT = "New order #2201";
+		const firstItem = $("#nli1");
+
+		// act
+		firstItem.click();
+
+		// assert
+		assert.strictEqual(clickInput.getProperty("value"), EXPECTED_RESULT,
+			"The itemClick has been fired.");
+	});
+
+	it("tests itemClose fired", () => {
+		const closeInput = $("#closeInput");
+		const EXPECTED_RESULT_1 = "Orders";
+		const EXPECTED_RESULT_2 = "New order #2201";
+		const firstGroupItem = $("#nlgi1");
+		const firstItem = $("#nli1");
+		const btnListGroupItemClose = firstGroupItem.shadow$("[close-btn]");
+		const btnListItemClose = firstItem.shadow$("[close-btn]");
+	
+		// act
+		btnListGroupItemClose.click();
+
+		// assert
+		assert.strictEqual(closeInput.getProperty("value"), EXPECTED_RESULT_1,
+			"The itemClose of list group item has been fired.");
+
+		// act
+		btnListItemClose.click();
+
+		// assert
+		assert.strictEqual(closeInput.getProperty("value"), EXPECTED_RESULT_2,
+			"The itemClose of list item has been fired.");
+	});
+
+	it("tests click fired on custom actions", () => {
+		const customActionInput = $("#customActionInput");
+		const secondItem = $("#nli2");
+		const customAction =  secondItem.shadow$("[custom-btn]");
+	
+		// act	
+		customAction.click();
+
+		// assert
+		assert.strictEqual(customActionInput.getProperty("value"), "1",
+			"The click on custom action has been fired.");
+	});
+
+	it("tests itemToggle fired", () => {
+		const toggleInput = $("#toggleInput");
+		const EXPECTED_RESULT = "Orders";
+		const firstGroupItem = $("#nlgi1");
+		const btnListGroupItemToggle = firstGroupItem.shadow$("[toggle-btn]");
+	
+		// act
+		btnListGroupItemToggle.click();
+
+		// assert
+		assert.strictEqual(toggleInput.getProperty("value"), EXPECTED_RESULT,
+			"The itemToggle of list group item has been fired.");
+
+		// reset
+		btnListGroupItemToggle.click();
+	});
+
+	it("tests click on ShowMore", () => {
+		const firstItem = $("#nli1");
+		const btnListItemShowMore = firstItem.shadow$("[showMore-btn]");
+		const content = firstItem.shadow$(".ui5-nli-content");
+
+		const hightBefore = content.getSize("height");
+
+		// act
+		btnListItemShowMore.click();
+
+		const hightAfter = content.getSize("height");
+
+		// assert
+		assert.ok(hightAfter > hightBefore,
+			"The content has been expanded by the ShowMore button.");
+	});
+
+	it("tests no ShowMore, when truncate is not enabled", () => {
+		const thirdItem = $("#nli3");
+		const btnListItemShowMore = thirdItem.shadow$("[showMore-btn]");
+
+		assert.strictEqual(btnListItemShowMore.getAttribute("hidden"), "true",
+			"The ShowMore button is not displayed.");
+	});
+
+	it("tests no custom actions, when group item collapsed", () => {
+		const fifthItem = $("#nlgi3");
+		const overflow = fifthItem.shadow$("[overflow-btn]");
+
+		assert.ok(!overflow.isExisting(),
+			"The custom actions are hidden when the group is collapsed");
+	});
+
+	it("tests List Group Item ACC invisible text", () => {
+		const EXPECTED_RESULT = "Notification group High Priority Counter 2";
+		const firstGroupItem = $("#nlgi1");
+		const invisibleText = firstGroupItem.shadow$(".ui5-hidden-text");
+
+		// assert
+		assert.strictEqual(invisibleText.getText(), EXPECTED_RESULT,
+			"The invisible text is correct.");
+	});
+
+	it("tests List Group Item ACC ariaLabelledBy", () => {
+		const firstGroupItem = $("#nlgi1");
+		const firstGroupItemRoot = firstGroupItem.shadow$(".ui5-nli-group-root");
+		const headingId = `${firstGroupItem.getProperty("_id")}-heading`;
+		const inivisbleTextId = `${firstGroupItem.getProperty("_id")}-invisibleText`;
+		const EXPECTED_ARIA_LABELLED_BY = `${headingId} ${inivisbleTextId}`;
+
+		// assert
+		assert.strictEqual(firstGroupItemRoot.getAttribute("aria-labelledby"), EXPECTED_ARIA_LABELLED_BY,
+			"The ariaLabelledBy text is correct.");
+	});
+
+	it("tests List Item ACC invisible text", () => {
+		const EXPECTED_RESULT = "Notification unread High Priority";
+		const firstItem = $("#nli1");
+		const invisibleText = firstItem.shadow$(".ui5-hidden-text");
+
+		// assert
+		assert.strictEqual(invisibleText.getText(), EXPECTED_RESULT,
+			"The invisible text is correct.");
+	});
+
+	it("tests List Group Item ACC ariaLabelledBy", () => {
+		const firstItem = $("#nli1");
+		const firstItemRoot = firstItem.shadow$(".ui5-nli-root");
+
+		const headingId = `${firstItem.getProperty("_id")}-heading`;
+		const descriptionId = `${firstItem.getProperty("_id")}-description`;
+		const footerId = `${firstItem.getProperty("_id")}-footer`;
+		const inivisbleTextId = `${firstItem.getProperty("_id")}-invisibleText`;
+		const EXPECTED_ARIA_LABELLED_BY = `${headingId} ${descriptionId} ${footerId} ${inivisbleTextId}`;
+
+		// assert
+		assert.strictEqual(firstItemRoot.getAttribute("aria-labelledby"), EXPECTED_ARIA_LABELLED_BY,
+			"The ariaLabelledBy text is correct.");
+	});
+});
\ No newline at end of file
diff --git a/packages/fiori/test/specs/NotificationListItem.spec.js b/packages/fiori/test/specs/NotificationListItem.spec.js
deleted file mode 100644
index e69de29bb2d1..000000000000

From ed9f0967d9792f68384a3a1e37dbdc40f466caac Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Thu, 7 May 2020 07:32:37 +0300
Subject: [PATCH 13/22] enrich the NotificationOverflowAction API

---
 .../src/NotifactionOverflowActionsPopover.hbs |  2 ++
 .../fiori/src/NotificationListGroupItem.hbs   |  2 ++
 packages/fiori/src/NotificationListItem.hbs   |  2 ++
 .../fiori/src/NotificationListItemBase.js     |  2 ++
 .../fiori/src/NotificationOverflowAction.js   | 29 +++++++++++++++++
 .../test/pages/NotificationListItem.html      | 31 +++++++++++++++----
 6 files changed, 62 insertions(+), 6 deletions(-)

diff --git a/packages/fiori/src/NotifactionOverflowActionsPopover.hbs b/packages/fiori/src/NotifactionOverflowActionsPopover.hbs
index f30aead36c08..d0651ad7ca3c 100644
--- a/packages/fiori/src/NotifactionOverflowActionsPopover.hbs
+++ b/packages/fiori/src/NotifactionOverflowActionsPopover.hbs
@@ -10,6 +10,8 @@
 				icon="{{this.icon}}"
 				design="Transparent"
 				@click="{{this.press}}"
+				?disabled="{{this.disabled}}"
+				design="{{this.design}}"
 				data-ui5-external-action-item-id="{{this.refItemid}}"
 				>{{this.text}}
 			</ui5-button>
diff --git a/packages/fiori/src/NotificationListGroupItem.hbs b/packages/fiori/src/NotificationListGroupItem.hbs
index 0cbbf3e33fa8..19b211d6f9a8 100644
--- a/packages/fiori/src/NotificationListGroupItem.hbs
+++ b/packages/fiori/src/NotificationListGroupItem.hbs
@@ -49,6 +49,8 @@
 					<ui5-button
 						icon="{{this.icon}}"
 						class="ui5-nli-group-action"
+						?disabled="{{this.disabled}}"
+						design="{{this.design}}"
 						@click="{{this.press}}"
 						data-ui5-external-action-item-id="{{this.refItemid}}"
 						custom-btn
diff --git a/packages/fiori/src/NotificationListItem.hbs b/packages/fiori/src/NotificationListItem.hbs
index d7b140611498..50e49bd42fb8 100644
--- a/packages/fiori/src/NotificationListItem.hbs
+++ b/packages/fiori/src/NotificationListItem.hbs
@@ -26,6 +26,8 @@
 					icon="{{this.icon}}"
 					class="ui5-nli-action"
 					@click="{{this.press}}"
+					?disabled="{{this.disabled}}"
+					design="{{this.design}}"
 					data-ui5-external-action-item-id="{{this.refItemid}}"
 					custom-btn
 				>
diff --git a/packages/fiori/src/NotificationListItemBase.js b/packages/fiori/src/NotificationListItemBase.js
index 19ff3d8d6748..9611263fa130 100644
--- a/packages/fiori/src/NotificationListItemBase.js
+++ b/packages/fiori/src/NotificationListItemBase.js
@@ -163,6 +163,8 @@ class NotificationListItemBase extends ListItemBase {
 				text: action.text,
 				press: this._onCustomActionClick.bind(this),
 				refItemid: action._id,
+				disabled: action.disabled ? true : undefined,
+				design: action.design,
 			};
 		});
 	}
diff --git a/packages/fiori/src/NotificationOverflowAction.js b/packages/fiori/src/NotificationOverflowAction.js
index aa0527315180..03f873dde78e 100644
--- a/packages/fiori/src/NotificationOverflowAction.js
+++ b/packages/fiori/src/NotificationOverflowAction.js
@@ -1,4 +1,5 @@
 import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
+import ButtonDesign from "@ui5/webcomponents/dist/types/ButtonDesign.js";
 
 /**
  * @public
@@ -17,6 +18,34 @@ const metadata = {
 			type: String,
 		},
 
+		/**
+		 * Defines if the action is disabled.
+		 * <br><br>
+		 * <b>Note:</b> a disabled action can't be pressed or focused, and it is not in the tab chain.
+		 *
+		 * @type {boolean}
+		 * @defaultvalue false
+		 * @public
+		 */
+		disabled: {
+			type: Boolean,
+		},
+
+		/**
+		 * Defines the action design.
+		 * <br><br>
+		 * <b>Note:</b> Available options are "Default", "Emphasized", "Positive",
+		 * "Negative", and "Transparent".
+		 *
+		 * @type {ButtonDesign}
+		 * @defaultvalue "Transparent"
+		 * @public
+		 */
+		design: {
+			type: ButtonDesign,
+			defaultValue: ButtonDesign.Transparent,
+		},
+
 		/**
 		 * Defines the <code>icon</code> source URI.
 		 * <br><br>
diff --git a/packages/fiori/test/pages/NotificationListItem.html b/packages/fiori/test/pages/NotificationListItem.html
index f06d2f2369b0..4cc507e19f51 100644
--- a/packages/fiori/test/pages/NotificationListItem.html
+++ b/packages/fiori/test/pages/NotificationListItem.html
@@ -62,7 +62,13 @@ <h3>Events on ui5-list level</h3>
 			<span slot="footnotes">Other stuff</span>
 
 			<ui5-notification-overflow-action id="acceptBtn" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
-			<ui5-notification-overflow-action id="rejectBtn" icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+			<ui5-notification-overflow-action
+				id="rejectBtn"
+				icon="message-error"
+				text="Reject"
+				slot="actions"
+				design="Negative"
+			></ui5-notification-overflow-action>
 		</ui5-li-notification>
 
 		<ui5-li-notification
@@ -91,7 +97,7 @@ <h3>Events on ui5-list level</h3>
 			<span slot="footnotes">3 Days</span>
 
 			<ui5-notification-overflow-action icon="accept" text="Accept All Requested Information" slot="actions"></ui5-notification-overflow-action>
-			<ui5-notification-overflow-action icon="decline" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
+			<ui5-notification-overflow-action icon="decline" design="Negative" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
 		</ui5-li-notification>
 
 		<ui5-li-notification heading="New order (#2523)" truncate>
@@ -100,7 +106,14 @@ <h3>Events on ui5-list level</h3>
 			<span slot="footnotes">John SMith</span>
 			<span slot="footnotes">3 Days</span>
 
-			<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+			<ui5-notification-overflow-action
+				icon="message-error"
+				design="Negative"
+				text="Reject"
+				slot="actions">
+			</ui5-notification-overflow-action>
+
+			<ui5-notification-overflow-action icon="decline" disabled design="Negative" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
 		</ui5-li-notification>
 	</ui5-list>
 
@@ -166,7 +179,13 @@ <h3>Events on ui5-list level</h3>
 				<span slot="footnotes">Other stuff</span>
 	
 				<ui5-notification-overflow-action id="acceptBtnInPopover" icon="accept" text="Accept" slot="actions"></ui5-notification-overflow-action>
-				<ui5-notification-overflow-action id="rejectBtnInPopover" icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action
+					id="rejectBtnInPopover"
+					icon="message-error"
+					text="Reject"
+					design="Negative"
+					slot="actions">
+				</ui5-notification-overflow-action>
 			</ui5-li-notification>
 	
 			<ui5-li-notification
@@ -195,7 +214,7 @@ <h3>Events on ui5-list level</h3>
 				<span slot="footnotes">3 Days</span>
 	
 				<ui5-notification-overflow-action icon="accept" text="Accept All Requested Information" slot="actions"></ui5-notification-overflow-action>
-				<ui5-notification-overflow-action icon="decline" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action icon="decline" design="Negative" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
 			</ui5-li-notification>
 	
 			<ui5-li-notification heading="New order (#2523)" truncate>
@@ -204,7 +223,7 @@ <h3>Events on ui5-list level</h3>
 				<span slot="footnotes">John SMith</span>
 				<span slot="footnotes">3 Days</span>
 	
-				<ui5-notification-overflow-action icon="message-error" text="Reject" slot="actions"></ui5-notification-overflow-action>
+				<ui5-notification-overflow-action icon="message-error" design="Negative" text="Reject" slot="actions"></ui5-notification-overflow-action>
 			</ui5-li-notification>
 		</ui5-list>
 	</ui5-popover>

From 45cd039c7977f03e9e437d1a7c2e3c6463933501 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Thu, 7 May 2020 07:56:19 +0300
Subject: [PATCH 14/22] improve documentation

---
 packages/fiori/src/NotificationListItem.js    | 11 ++++---
 .../NotificationListGroupItem.sample.html     | 26 +++++++++++++----
 .../samples/NotificationListItem.sample.html  | 29 +++++++++++++++++--
 3 files changed, 55 insertions(+), 11 deletions(-)

diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index eadbf433fb0a..b5f61cf656e8 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -42,8 +42,11 @@ const metadata = {
 
 		/**
 		 * Defines if the <code>heading</code> and <code>decription</code> should truncate,
-		 * otherwise they would wrap by default.
-		 * @type {boolean}
+		 * they wrap by default.
+		 *
+		 * <br><br>
+		 * <b>Note:</b> when set to <code>true</code>
+		 * a <code>ShowMore/Less</code> button would be displayed.
 		 * @defaultvalue false
 		 * @public
 		 */
@@ -54,8 +57,8 @@ const metadata = {
 		/**
 		 * Defines if the <code>notification</code> is new or has been already read.
 		 * <br><br>
-		 * <b>Note:</b> when set to <code>false</code> the <code>heading</code> has bold font
-		 * and if set to true - it has a normal font.
+		 * <b>Note:</b> if set to <code>false</code> the <code>heading</code> has bold font,
+		 * if set to true - it has a normal font.
 		 * @type {boolean}
 		 * @defaultvalue false
 		 * @public
diff --git a/packages/fiori/test/samples/NotificationListGroupItem.sample.html b/packages/fiori/test/samples/NotificationListGroupItem.sample.html
index f9a0a9b8dafe..921aa046240a 100644
--- a/packages/fiori/test/samples/NotificationListGroupItem.sample.html
+++ b/packages/fiori/test/samples/NotificationListGroupItem.sample.html
@@ -61,6 +61,7 @@ <h3>NotificationListGroupItem</h3>
 				show-counter
 				heading="Deliveries"
 				priority="Medium"
+				collapsed
 			>
 				<ui5-li-notification
 					show-close
@@ -99,14 +100,15 @@ <h3>NotificationListGroupItem</h3>
 			<ui5-li-notification-group
 				show-close
 				show-counter
-				priority="High"
+				priority="Low"
+				collapsed
 				heading="Meetings With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 			>
 				<ui5-li-notification
 					show-close
 					truncate
 					heading="New meeting at Building (#35001)"
-					priority="High"
+					priority="Low"
 					read
 				>
 					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -120,7 +122,7 @@ <h3>NotificationListGroupItem</h3>
 					show-close
 					truncate
 					heading="New meeting at Building (#35001)"
-					priority="High"
+					priority="Low"
 					read
 				>
 					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -176,7 +178,13 @@ <h3>NotificationListGroupItem</h3>
 <section>
 	<h3>NotificationListGroupItem In ShellBar</h3>
 	<div class="snippet">
-		<ui5-shellbar id="shellbar" primary-title="Product Title" show-notifications>
+		<ui5-shellbar
+			id="shellbar"
+			primary-title="Corporate Portal"
+			logo="../../../assets/images/sap-logo-svg.svg"
+			show-notifications
+			notification-count="6"
+		>
 		</ui5-shellbar>
 
 		<ui5-popover id="notificationsPopover" style="max-width: 400px" placement-type="Bottom" horizontal-align="Right">
@@ -228,6 +236,7 @@ <h3>NotificationListGroupItem In ShellBar</h3>
 					show-counter
 					heading="Deliveries"
 					priority="Medium"
+					collapsed
 				>
 					<ui5-li-notification
 						show-close
@@ -267,6 +276,7 @@ <h3>NotificationListGroupItem In ShellBar</h3>
 					show-close
 					show-counter
 					priority="High"
+					collapsed
 					heading="Meetings With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				>
 					<ui5-li-notification
@@ -308,7 +318,13 @@ <h3>NotificationListGroupItem In ShellBar</h3>
 		</script>
 	</div>
 	<pre class="prettyprint lang-html"><xmp>
-<ui5-shellbar id="shellbar" primary-title="Product Title" show-notifications>
+<ui5-shellbar
+	id="shellbar"
+	primary-title="Corporate Portal"
+	logo="../../../assets/images/sap-logo-svg.svg"
+	show-notifications
+	notification-count="6"
+>
 </ui5-shellbar>
 
 <ui5-popover
diff --git a/packages/fiori/test/samples/NotificationListItem.sample.html b/packages/fiori/test/samples/NotificationListItem.sample.html
index 2923e725460a..847840881e50 100644
--- a/packages/fiori/test/samples/NotificationListItem.sample.html
+++ b/packages/fiori/test/samples/NotificationListItem.sample.html
@@ -17,6 +17,7 @@ <h3>NotificationListItem</h3>
 			<ui5-li-notification
 				show-close
 				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
 			>
 				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
 				<ui5-avatar image="../../../assets/images/avatars/woman_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
@@ -27,6 +28,7 @@ <h3>NotificationListItem</h3>
 			<ui5-li-notification
 				show-close
 				heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+				priority="High"
 			>
 				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
 				<ui5-avatar image="../../../assets/images/avatars/man_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
@@ -36,6 +38,7 @@ <h3>NotificationListItem</h3>
 
 			<ui5-li-notification
 				show-close
+				priority="High"
 				heading="New order (#2525) With a short title"
 			>
 				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -56,6 +59,7 @@ <h3>NotificationListItem</h3>
 	<ui5-li-notification
 		show-close
 		heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+		priority="High"
 	>
 		And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
 		<ui5-avatar image="../../../assets/images/avatars/woman_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
@@ -66,6 +70,7 @@ <h3>NotificationListItem</h3>
 	<ui5-li-notification
 		show-close
 		heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
+		priority="High"
 	>
 		And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
 		<ui5-avatar image="../../../assets/images/avatars/man_avatar_1.png" size="XS" slot="avatar"></ui5-avatar>
@@ -90,6 +95,7 @@ <h3>NotificationListItem - Show "more/less"</h3>
 			<ui5-li-notification
 				truncate
 				show-close
+				priority="Medium"
 				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
 			>
 				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
@@ -101,6 +107,7 @@ <h3>NotificationListItem - Show "more/less"</h3>
 			<ui5-li-notification
 				truncate
 				show-close
+				priority="Medium"
 				heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
 			>
 				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
@@ -111,6 +118,7 @@ <h3>NotificationListItem - Show "more/less"</h3>
 
 			<ui5-li-notification
 				show-close
+				priority="Medium"
 				truncate
 				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
 			>
@@ -126,6 +134,7 @@ <h3>NotificationListItem - Show "more/less"</h3>
 	<ui5-li-notification
 		truncate
 		show-close
+		priority="Medium"
 		heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
 	>
 		And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
@@ -145,6 +154,7 @@ <h3>NotificationListItem - Custom Actions</h3>
 		<ui5-list id="myList3" class="full-width" header-text="Notifications">
 			<ui5-li-notification
 				show-close
+				priority="Low"
 				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 			>
 				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -158,6 +168,7 @@ <h3>NotificationListItem - Custom Actions</h3>
 
 			<ui5-li-notification
 				show-close
+				priority="Low"
 				heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 			>
 				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -170,6 +181,7 @@ <h3>NotificationListItem - Custom Actions</h3>
 
 			<ui5-li-notification
 				show-close
+				priority="Low"
 				heading="New order (#2525) With a short title"
 			>
 				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -186,6 +198,7 @@ <h3>NotificationListItem - Custom Actions</h3>
 <ui5-list header-text="Notifications">
 	<ui5-li-notification
 		show-close
+		priority="Low"
 		heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 	>
 		And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -202,7 +215,13 @@ <h3>NotificationListItem - Custom Actions</h3>
 <section>
 	<h3>NotificationListItem In ShellBar</h3>
 	<div class="snippet">
-		<ui5-shellbar id="shellbar" primary-title="Product Title" show-notifications>
+		<ui5-shellbar
+			id="shellbar"
+			primary-title="Corporate Portal"
+			logo="../../../assets/images/sap-logo-svg.svg"
+			show-notifications
+			notification-count="4"
+		>
 		</ui5-shellbar>
 
 		<ui5-popover id="notificationsPopover" style="max-width: 400px" placement-type="Bottom" horizontal-align="Right">
@@ -268,7 +287,13 @@ <h3>NotificationListItem In ShellBar</h3>
 		</script>
 	</div>
 	<pre class="prettyprint lang-html"><xmp>
-<ui5-shellbar id="shellbar" primary-title="Product Title" show-notifications>
+<ui5-shellbar
+	id="shellbar"
+	primary-title="Corporate Portal"
+	logo="../../../assets/images/sap-logo-svg.svg"
+	show-notifications
+	notification-count="4"
+>
 </ui5-shellbar>
 
 <ui5-popover

From 5ed79ef364d7c87c3a78ac9dc006ab117e66510f Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Thu, 7 May 2020 10:34:51 +0300
Subject: [PATCH 15/22] enable opening the overflow  via SPACE

---
 packages/fiori/src/NotificationListItemBase.js | 4 ++++
 packages/main/src/Button.js                    | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/packages/fiori/src/NotificationListItemBase.js b/packages/fiori/src/NotificationListItemBase.js
index 9611263fa130..5a6bc88a652f 100644
--- a/packages/fiori/src/NotificationListItemBase.js
+++ b/packages/fiori/src/NotificationListItemBase.js
@@ -199,6 +199,10 @@ class NotificationListItemBase extends ListItemBase {
 	_onkeydown(event) {
 		super._onkeydown(event);
 
+		if (event.isMarked === "button") {
+			return;
+		}
+
 		if (isSpace(event)) {
 			event.preventDefault();
 		}
diff --git a/packages/main/src/Button.js b/packages/main/src/Button.js
index a675f28c4f4b..74f3026a100f 100644
--- a/packages/main/src/Button.js
+++ b/packages/main/src/Button.js
@@ -304,6 +304,8 @@ class Button extends UI5Element {
 	}
 
 	_onkeydown(event) {
+		event.isMarked = "button";
+
 		if (isSpace(event) || isEnter(event)) {
 			this.active = true;
 		}

From 9121d5bc236297f02341acc296ece06f77fa92b1 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Mon, 11 May 2020 09:37:35 +0300
Subject: [PATCH 16/22] add public imports

---
 docs/Public Module Imports.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/docs/Public Module Imports.md b/docs/Public Module Imports.md
index 974d50a72fa1..24f14e69633b 100644
--- a/docs/Public Module Imports.md	
+++ b/docs/Public Module Imports.md	
@@ -136,6 +136,8 @@ For API documentation and samples, please check the [UI5 Web Components Playgrou
 | Shell Bar Item           | `ui5-shellbar-item`  | `import "@ui5/webcomponents-fiori/dist/ShellBarItem.js";`  |
 | Product Switch           | `ui5-product-switch`       | `import "@ui5/webcomponents-fiori/dist/ProductSwitch.js";`      |
 | Product Switch Item      | `ui5-product-switch-item`  | `import "@ui5/webcomponents-fiori/dist/ProductSwitchItem.js";`  |
+| Notification List Item      | `ui5-li-notifcation`      | `import "@ui5/webcomponents-fiori/dist/NotifcationListItem.js";`     |
+| Notification Group List Item|`ui5-li-notification-group`| `import "@ui5/webcomponents-fiori/dist/NotifcationListGroupItem.js";`|
 
 ### 2. Assets
 

From 83273874cc8da13d0dd77f86f1b0e278e19bb5dd Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Mon, 11 May 2020 20:10:19 +0300
Subject: [PATCH 17/22] fix uploadcollectionitem tests

---
 packages/fiori/src/UploadCollectionItem.js | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/packages/fiori/src/UploadCollectionItem.js b/packages/fiori/src/UploadCollectionItem.js
index 92871413ba6b..673af221dd7d 100644
--- a/packages/fiori/src/UploadCollectionItem.js
+++ b/packages/fiori/src/UploadCollectionItem.js
@@ -257,13 +257,13 @@ class UploadCollectionItem extends ListItem {
 	}
 
 	onBeforeRendering() {
-		if (!this.focused) {
+		if (!this._focused) {
 			this._editing = false;
 		}
 	}
 
 	onAfterRendering() {
-		if (this.focused && this._editing) {
+		if (this._focused && this._editing) {
 			this.focusAndSelectText();
 		}
 	}
@@ -286,6 +286,16 @@ class UploadCollectionItem extends ListItem {
 		this._editing = true;
 	}
 
+	_onfocusin(event) {
+		super._onfocusin(event);
+		this._focused = true;
+	}
+
+	_onfocusout() {
+		super._onfocusout(event);
+		this._focused = false;
+	}
+
 	_onInputChange(event) {
 		if (this.shadowRoot.getElementById("ui5-uci-edit-cancel").active) {
 			return;

From 2e67706780a8deb9d45745c249eeda33e1749886 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Mon, 11 May 2020 20:33:06 +0300
Subject: [PATCH 18/22] fix lint

---
 packages/fiori/src/UploadCollectionItem.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/fiori/src/UploadCollectionItem.js b/packages/fiori/src/UploadCollectionItem.js
index 673af221dd7d..167ffe4d7b04 100644
--- a/packages/fiori/src/UploadCollectionItem.js
+++ b/packages/fiori/src/UploadCollectionItem.js
@@ -291,7 +291,7 @@ class UploadCollectionItem extends ListItem {
 		this._focused = true;
 	}
 
-	_onfocusout() {
+	_onfocusout(event) {
 		super._onfocusout(event);
 		this._focused = false;
 	}

From 9f10cc057f87b84ebbaa6bd476b9fc2b3afc5a1d Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Tue, 12 May 2020 16:32:21 +0300
Subject: [PATCH 19/22] address comments

---
 docs/Public Module Imports.md                 |  1 +
 packages/base/src/util/TabbableElements.js    |  6 ++++-
 .../fiori/src/NotificationListGroupItem.hbs   |  9 +++----
 .../fiori/src/NotificationListGroupItem.js    | 13 +++-------
 packages/fiori/src/NotificationListItem.hbs   |  2 --
 packages/fiori/src/NotificationListItem.js    |  6 ++---
 .../fiori/src/NotificationListItemBase.js     | 25 +++++++++++++------
 .../src/themes/NotificationListGroupItem.css  | 17 -------------
 .../fiori/src/themes/NotificationListItem.css | 16 ------------
 .../src/themes/NotificationListItemBase.css   | 17 +++++++++++++
 .../fiori/test/specs/NotificationList.spec.js |  6 ++---
 11 files changed, 52 insertions(+), 66 deletions(-)

diff --git a/docs/Public Module Imports.md b/docs/Public Module Imports.md
index c6fb0c1592b4..bb21458674b4 100644
--- a/docs/Public Module Imports.md	
+++ b/docs/Public Module Imports.md	
@@ -138,6 +138,7 @@ For API documentation and samples, please check the [UI5 Web Components Playgrou
 | Product Switch Item      | `ui5-product-switch-item`  | `import "@ui5/webcomponents-fiori/dist/ProductSwitchItem.js";`  |
 | Notification List Item      | `ui5-li-notifcation`      | `import "@ui5/webcomponents-fiori/dist/NotifcationListItem.js";`     |
 | Notification Group List Item|`ui5-li-notification-group`| `import "@ui5/webcomponents-fiori/dist/NotifcationListGroupItem.js";`|
+| Notification Overflow Action| `ui5-notification-overflow-action` | `import "@ui5/webcomponents-fiori/dist/NotificationOverflowAction.js";`|
 
 ### 2. Assets
 
diff --git a/packages/base/src/util/TabbableElements.js b/packages/base/src/util/TabbableElements.js
index 8587e8d1d307..7f3ef08052fa 100644
--- a/packages/base/src/util/TabbableElements.js
+++ b/packages/base/src/util/TabbableElements.js
@@ -12,8 +12,12 @@ const getLastTabbableElement = node => {
 const getTabbables = (nodes, tabbables) => {
 	const tabbablesNodes = tabbables || [];
 
+	if (!nodes) {
+		return tabbablesNodes;
+	}
+
 	Array.from(nodes).forEach(currentNode => {
-		if (currentNode.nodeType === Node.TEXT_NODE) {
+		if (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {
 			return;
 		}
 
diff --git a/packages/fiori/src/NotificationListGroupItem.hbs b/packages/fiori/src/NotificationListGroupItem.hbs
index 19b211d6f9a8..e2a357c8b525 100644
--- a/packages/fiori/src/NotificationListGroupItem.hbs
+++ b/packages/fiori/src/NotificationListGroupItem.hbs
@@ -14,7 +14,6 @@
 			design="Transparent"
 			@click="{{_onBtnToggleClick}}"
 			class="ui5-nli-group-toggle-btn"
-			toggle-btn
 		></ui5-button>
 
 		{{#if hasPriority}}
@@ -29,7 +28,7 @@
 		</div>
 
 		{{#if showCounter}}
-			<span class="ui5-nli-group-counter">{{counter}}</span>
+			<span class="ui5-nli-group-counter">({{itemsCount}})</span>
 		{{/if}}
 
 		<div class="ui5-nli-group-divider"></div>
@@ -40,20 +39,18 @@
 					icon="overflow"
 					design="Transparent"
 					@click="{{_onBtnOverflowClick}}"
-					class="ui5-nli-group-overflow-btn"
+					class="ui5-nli-overflow-btn"
 					title="{{overflowBtnTitle}}"
-					overflow-btn
 				></ui5-button>
 			{{else}}
 				{{#each standardActions}}
 					<ui5-button
 						icon="{{this.icon}}"
-						class="ui5-nli-group-action"
+						class="ui5-nli-action"
 						?disabled="{{this.disabled}}"
 						design="{{this.design}}"
 						@click="{{this.press}}"
 						data-ui5-external-action-item-id="{{this.refItemid}}"
-						custom-btn
 					>
 						{{this.text}}
 					</ui5-button>
diff --git a/packages/fiori/src/NotificationListGroupItem.js b/packages/fiori/src/NotificationListGroupItem.js
index 52f5f4e058f1..47fa18abc1b0 100644
--- a/packages/fiori/src/NotificationListGroupItem.js
+++ b/packages/fiori/src/NotificationListGroupItem.js
@@ -1,9 +1,10 @@
 import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
-import { getI18nBundle, fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
+import { fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
 import Priority from "@ui5/webcomponents/dist/types/Priority.js";
 import List from "@ui5/webcomponents/dist/List.js";
 import Button from "@ui5/webcomponents/dist/Button.js";
 import Icon from "@ui5/webcomponents/dist/Icon.js";
+import Popover from "@ui5/webcomponents/dist/Popover.js";
 import NotificationListItemBase from "./NotificationListItemBase.js";
 
 // Texts
@@ -113,11 +114,6 @@ const metadata = {
  * @public
  */
 class NotificationListGroupItem extends NotificationListItemBase {
-	constructor() {
-		super();
-		this.i18nBundle = getI18nBundle("@ui5/webcomponents-fiori");
-	}
-
 	static get metadata() {
 		return metadata;
 	}
@@ -139,6 +135,7 @@ class NotificationListGroupItem extends NotificationListItemBase {
 			List.define(),
 			Button.define(),
 			Icon.define(),
+			Popover.define(),
 			fetchI18nBundle("@ui5/webcomponents-fiori"),
 		]);
 	}
@@ -147,10 +144,6 @@ class NotificationListGroupItem extends NotificationListItemBase {
 		return this.items.length;
 	}
 
-	get counter() {
-		return `(${this.itemsCount})`;
-	}
-
 	get overflowBtnTitle() {
 		return this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_OVERLOW_BTN_TITLE);
 	}
diff --git a/packages/fiori/src/NotificationListItem.hbs b/packages/fiori/src/NotificationListItem.hbs
index 50e49bd42fb8..835a54971beb 100644
--- a/packages/fiori/src/NotificationListItem.hbs
+++ b/packages/fiori/src/NotificationListItem.hbs
@@ -18,7 +18,6 @@
 				@click="{{_onBtnOverflowClick}}"
 				class="ui5-nli-overflow-btn"
 				title="{{overflowBtnTitle}}"
-				overflow-btn
 			></ui5-button>
 		{{else}}
 			{{#each standardActions}}
@@ -29,7 +28,6 @@
 					?disabled="{{this.disabled}}"
 					design="{{this.design}}"
 					data-ui5-external-action-item-id="{{this.refItemid}}"
-					custom-btn
 				>
 					{{this.text}}
 				</ui5-button>
diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index b5f61cf656e8..d1479eb9b402 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -1,6 +1,6 @@
 import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
 import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
-import { getI18nBundle, fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
+import { fetchI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
 import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
 import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
 
@@ -8,6 +8,7 @@ import Priority from "@ui5/webcomponents/dist/types/Priority.js";
 import Button from "@ui5/webcomponents/dist/Button.js";
 import Link from "@ui5/webcomponents/dist/Link.js";
 import Icon from "@ui5/webcomponents/dist/Icon.js";
+import Popover from "@ui5/webcomponents/dist/Popover.js";
 import NotificationListItemBase from "./NotificationListItemBase.js";
 
 // Texts
@@ -181,8 +182,6 @@ class NotificationListItem extends NotificationListItemBase {
 
 		// the resize handler
 		this.onResizeBind = this.onResize.bind(this);
-
-		this.i18nBundle = getI18nBundle("@ui5/webcomponents-fiori");
 	}
 
 	static get metadata() {
@@ -206,6 +205,7 @@ class NotificationListItem extends NotificationListItemBase {
 			Button.define(),
 			Icon.define(),
 			Link.define(),
+			Popover.define(),
 			fetchI18nBundle("@ui5/webcomponents-fiori"),
 		]);
 	}
diff --git a/packages/fiori/src/NotificationListItemBase.js b/packages/fiori/src/NotificationListItemBase.js
index 5a6bc88a652f..d55dc399e371 100644
--- a/packages/fiori/src/NotificationListItemBase.js
+++ b/packages/fiori/src/NotificationListItemBase.js
@@ -1,6 +1,7 @@
 import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
 import { isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
 import { getRTL } from "@ui5/webcomponents-base/dist/config/RTL.js";
+import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
 
 import ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
 import Priority from "@ui5/webcomponents/dist/types/Priority.js";
@@ -18,12 +19,6 @@ import NotifactionOverflowActionsPopoverTemplate from "./generated/templates/Not
 // Styles
 import NotifactionOverflowActionsPopoverCss from "./generated/themes/NotifactionOverflowActionsPopover.css.js";
 
-const PRIORITY_ICONS_MAP = {
-	"High": "message-error",
-	"Medium": "message-warning",
-	"Low": "message-success",
-};
-
 /**
  * @public
  */
@@ -104,6 +99,12 @@ const metadata = {
  * @public
  */
 class NotificationListItemBase extends ListItemBase {
+	constructor() {
+		super();
+
+		this.i18nBundle = getI18nBundle("@ui5/webcomponents-fiori");
+	}
+
 	static get metadata() {
 		return metadata;
 	}
@@ -120,6 +121,14 @@ class NotificationListItemBase extends ListItemBase {
 		return NotifactionOverflowActionsPopoverCss;
 	}
 
+	static priorityIconsMappings() {
+		return {
+			"High": "message-error",
+			"Medium": "message-warning",
+			"Low": "message-success",
+		};
+	}
+
 	get hasHeading() {
 		return !!this.heading.length;
 	}
@@ -129,11 +138,11 @@ class NotificationListItemBase extends ListItemBase {
 	}
 
 	get priorityIcon() {
-		return PRIORITY_ICONS_MAP[this.priority];
+		return NotificationListItemBase.priorityIconsMappings()[this.priority];
 	}
 
 	get overflowButtonDOM() {
-		return this.shadowRoot.querySelector("[overflow-btn]");
+		return this.shadowRoot.querySelector(".ui5-nli-overflow-btn");
 	}
 
 	get showOverflow() {
diff --git a/packages/fiori/src/themes/NotificationListGroupItem.css b/packages/fiori/src/themes/NotificationListGroupItem.css
index 2deecbeb150a..171bebd18557 100644
--- a/packages/fiori/src/themes/NotificationListGroupItem.css
+++ b/packages/fiori/src/themes/NotificationListGroupItem.css
@@ -53,23 +53,6 @@
 	font-family: var(--sapFontHeaderFamily);
 }
 
-.ui5-nli-group-action {
-	flex-shrink: 0;
-	margin-right: 0.5rem;
-}
-
-.ui5-nli-group-overflow-btn {
-	margin-right: 0.5rem;
-}
-
-[dir="rtl"] .ui5-nli-group-action {
-	margin-left: 0.5rem;
-}
-
-[dir="rtl"] .ui5-nli-group-overflow-btn {
-	margin-left: 0.5rem;
-}
-
 [dir="rtl"] .ui5-nli-group-toggle-btn {
 	margin-left: 1rem;
 }
diff --git a/packages/fiori/src/themes/NotificationListItem.css b/packages/fiori/src/themes/NotificationListItem.css
index c6ce94baeccd..480340c59655 100644
--- a/packages/fiori/src/themes/NotificationListItem.css
+++ b/packages/fiori/src/themes/NotificationListItem.css
@@ -127,14 +127,6 @@
 	box-sizing: border-box;
 }
 
-.ui5-nli-action {
-	margin-right: 0.5rem;
-}
-
-.ui5-nli-overflow-btn {
-	margin-right: 0.5rem;
-}
-
 /* RTL */
 
 [dir="rtl"] .ui5-nli-footer-divider {
@@ -144,12 +136,4 @@
 
 [dir="rtl"] .ui5-nli-footer-showMore {
 	margin-right: 1rem;
-}
-
-[dir="rtl"] .ui5-nli-action {
-	margin-left: 0.5rem;
-}
-
-[dir="rtl"] .ui5-nli-overflow-btn {
-	margin-left: 0.5rem;
 }
\ No newline at end of file
diff --git a/packages/fiori/src/themes/NotificationListItemBase.css b/packages/fiori/src/themes/NotificationListItemBase.css
index c300084fcf31..2f6a32ee5b1a 100644
--- a/packages/fiori/src/themes/NotificationListItemBase.css
+++ b/packages/fiori/src/themes/NotificationListItemBase.css
@@ -26,3 +26,20 @@
 	left: 0;
 	pointer-events: none;
 }
+
+.ui5-nli-action {
+	flex-shrink: 0;
+	margin-right: 0.5rem;
+}
+
+.ui5-nli-overflow-btn {
+	margin-right: 0.5rem;
+}
+
+[dir="rtl"] .ui5-nli-group-action {
+	margin-left: 0.5rem;
+}
+
+[dir="rtl"] .ui5-nli-overflow-btn {
+	margin-left: 0.5rem;
+}
\ No newline at end of file
diff --git a/packages/fiori/test/specs/NotificationList.spec.js b/packages/fiori/test/specs/NotificationList.spec.js
index 7742f930442a..9166b9e99c2d 100644
--- a/packages/fiori/test/specs/NotificationList.spec.js
+++ b/packages/fiori/test/specs/NotificationList.spec.js
@@ -45,7 +45,7 @@ describe("Notification List Item Tests", () => {
 	it("tests click fired on custom actions", () => {
 		const customActionInput = $("#customActionInput");
 		const secondItem = $("#nli2");
-		const customAction =  secondItem.shadow$("[custom-btn]");
+		const customAction =  secondItem.shadow$(".ui5-nli-action");
 	
 		// act	
 		customAction.click();
@@ -59,7 +59,7 @@ describe("Notification List Item Tests", () => {
 		const toggleInput = $("#toggleInput");
 		const EXPECTED_RESULT = "Orders";
 		const firstGroupItem = $("#nlgi1");
-		const btnListGroupItemToggle = firstGroupItem.shadow$("[toggle-btn]");
+		const btnListGroupItemToggle = firstGroupItem.shadow$(".ui5-nli-group-toggle-btn");
 	
 		// act
 		btnListGroupItemToggle.click();
@@ -99,7 +99,7 @@ describe("Notification List Item Tests", () => {
 
 	it("tests no custom actions, when group item collapsed", () => {
 		const fifthItem = $("#nlgi3");
-		const overflow = fifthItem.shadow$("[overflow-btn]");
+		const overflow = fifthItem.shadow$(".ui5-nli-overflow-btn");
 
 		assert.ok(!overflow.isExisting(),
 			"The custom actions are hidden when the group is collapsed");

From dcd18b7e38413181d190c3f47dd88cf36f601d98 Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Tue, 12 May 2020 16:50:49 +0300
Subject: [PATCH 20/22] fix typo

---
 packages/fiori/src/NotificationListItem.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index d1479eb9b402..06c349bb0cf7 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -340,11 +340,11 @@ class NotificationListItem extends NotificationListItemBase {
 	}
 
 	get accInvisibleText() {
-		const notifcatationTxt = this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_TXT);
+		const notifcationTxt = this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_TXT);
 		const readTxt = this.read ? this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_READ) : this.i18nBundle.getText(NOTIFICATION_LIST_ITEM_UNREAD);
 		const priorityText = this.priorityText;
 
-		return `${notifcatationTxt} ${readTxt} ${priorityText}`;
+		return `${notifcationTxt} ${readTxt} ${priorityText}`;
 	}
 
 	get classes() {

From a946d5b15254d5f79356261aa95257dbf8ea3fbd Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Wed, 13 May 2020 10:08:20 +0300
Subject: [PATCH 21/22] change truncate to wrap

---
 packages/fiori/src/NotificationListItem.js    |  6 +-
 .../fiori/src/themes/NotificationListItem.css |  8 +--
 .../test/pages/NotificationListGroupItem.html | 18 ++---
 .../test/pages/NotificationListItem.html      | 23 ++++---
 .../pages/NotificationList_test_page.html     |  5 +-
 .../NotificationListGroupItem.sample.html     | 14 ----
 .../samples/NotificationListItem.sample.html  | 68 +------------------
 7 files changed, 30 insertions(+), 112 deletions(-)

diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index 06c349bb0cf7..c73a58cd6e75 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -51,7 +51,7 @@ const metadata = {
 		 * @defaultvalue false
 		 * @public
 		 */
-		truncate: {
+		wrap: {
 			type: Boolean,
 		},
 
@@ -243,7 +243,7 @@ class NotificationListItem extends NotificationListItemBase {
 	}
 
 	get hideShowMore() {
-		if (this.truncate && this._showMore) {
+		if (!this.wrap && this._showMore) {
 			return undefined;
 		}
 
@@ -402,7 +402,7 @@ class NotificationListItem extends NotificationListItemBase {
 	}
 
 	onResize() {
-		if (!this.truncate) {
+		if (this.wrap) {
 			this._showMore = false;
 			return;
 		}
diff --git a/packages/fiori/src/themes/NotificationListItem.css b/packages/fiori/src/themes/NotificationListItem.css
index 480340c59655..40bab105c6e9 100644
--- a/packages/fiori/src/themes/NotificationListItem.css
+++ b/packages/fiori/src/themes/NotificationListItem.css
@@ -1,14 +1,14 @@
 @import "./NotificationListItemBase.css";
 @import "./NotificationPrioIcon.css";
 
-:host([truncate]) .ui5-nli-title {
+:host(:not([wrap])) .ui5-nli-title {
 	display: -webkit-box;
 	-webkit-line-clamp: 2;
 	-webkit-box-orient: vertical;
 	overflow: hidden;
 }
 
-:host([truncate]) .ui5-nli-description {
+:host(:not([wrap])) .ui5-nli-description {
 	display: -webkit-box;
 	-webkit-line-clamp: 2;
 	-webkit-box-orient: vertical;
@@ -28,11 +28,11 @@
 }
 
 /* IE */
-:host([truncate]) .ui5-nli-content--ie .ui5-nli-description {
+:host(:not([wrap])) .ui5-nli-content--ie .ui5-nli-description {
 	max-height: 32px;
 }
 
-:host([truncate]) .ui5-nli-content--ie .ui5-nli-title {
+:host(:not([wrap])) .ui5-nli-content--ie .ui5-nli-title {
 	max-height: 32px;
 }
 
diff --git a/packages/fiori/test/pages/NotificationListGroupItem.html b/packages/fiori/test/pages/NotificationListGroupItem.html
index 7b7e8abc37c9..430d6a7d3b9f 100644
--- a/packages/fiori/test/pages/NotificationListGroupItem.html
+++ b/packages/fiori/test/pages/NotificationListGroupItem.html
@@ -4,7 +4,7 @@
 	<meta charset="UTF-8">
 	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
 	<meta http-equiv="X-UA-Compatible" content="ie=edge">
-	<title>NotificationGroup</title>
+	<title>NotificationListGroupItem</title>
 
 	<script src="../../webcomponentsjs/webcomponents-loader.js"></script>
 	<script src="../../resources/bundle.esm.js" type="module"></script>
@@ -56,7 +56,6 @@ <h3>Events on ui5-list level</h3>
 		>
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				priority="High"
 			>
@@ -72,7 +71,6 @@ <h3>Events on ui5-list level</h3>
 
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				priority="High"
 			>
@@ -87,7 +85,6 @@ <h3>Events on ui5-list level</h3>
 
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#252) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				priority="High"
 			>
@@ -112,7 +109,6 @@ <h3>Events on ui5-list level</h3>
 		>
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#2900) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				priority="High"
 			>
@@ -127,7 +123,6 @@ <h3>Events on ui5-list level</h3>
 
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#29001) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				priority="High"
 			>
@@ -142,7 +137,6 @@ <h3>Events on ui5-list level</h3>
 
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#29003) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				priority="High"
 			>
@@ -164,7 +158,6 @@ <h3>Events on ui5-list level</h3>
 		>
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#35001) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				priority="High"
 				read
@@ -178,7 +171,6 @@ <h3>Events on ui5-list level</h3>
 
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#35002) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				priority="High"
 				read
@@ -192,7 +184,6 @@ <h3>Events on ui5-list level</h3>
 
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#35003) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				priority="High"
 				read
@@ -222,7 +213,6 @@ <h3>Events on ui5-list level</h3>
 			>
 				<ui5-li-notification
 					show-close
-					truncate
 					priority="Medium"
 					heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				>
@@ -262,7 +252,6 @@ <h3>Events on ui5-list level</h3>
 				<ui5-li-notification
 					heading="New order (#2565) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 					priority="Low"
-					truncate
 				>
 					Short description
 					<ui5-avatar initials="JS" size="XS" slot="avatar"></ui5-avatar>
@@ -274,7 +263,10 @@ <h3>Events on ui5-list level</h3>
 					<ui5-notification-overflow-action icon="message-error" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
 				</ui5-li-notification>
 	
-				<ui5-li-notification heading="New order (#2523)" truncate priority="Low">
+				<ui5-li-notification
+					heading="New order (#2523)"
+					priority="Low"
+				>
 					<div>. With a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
 		
 					<span slot="footnotes">John SMith</span>
diff --git a/packages/fiori/test/pages/NotificationListItem.html b/packages/fiori/test/pages/NotificationListItem.html
index 4cc507e19f51..0604b9fb210a 100644
--- a/packages/fiori/test/pages/NotificationListItem.html
+++ b/packages/fiori/test/pages/NotificationListItem.html
@@ -23,7 +23,7 @@
 	<h3>Properties</h3>
 	<ul>
 		<li>heading</li>
-		<li>truncate (default: "false")</li>
+		<li>wrap (default: "false")</li>
 		<li>priority (default: "None")</li>
 		<li>read (default: "false")</li>
 		<li>show-close (default: "false")</li>
@@ -31,6 +31,7 @@ <h3>Properties</h3>
 
 	<h3>Slots</h3>
 	<ul>
+		<li>default (description)</li>
 		<li>avatar</li>
 		<li>actions</li>
 		<li>footnotes</li>
@@ -52,7 +53,6 @@ <h3>Events on ui5-list level</h3>
 
 		<ui5-li-notification
 			show-close
-			truncate
 			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 		>
 			And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -73,7 +73,6 @@ <h3>Events on ui5-list level</h3>
 
 		<ui5-li-notification
 			show-close
-			truncate
 			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 			priority="High"
 		>
@@ -89,7 +88,7 @@ <h3>Events on ui5-list level</h3>
 		<ui5-li-notification
 			heading="New order (#2565) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 			priority="Medium"
-			truncate>
+			>
 				Short description
 			<ui5-avatar initials="JS" size="XS" slot="avatar"></ui5-avatar>
 
@@ -100,7 +99,7 @@ <h3>Events on ui5-list level</h3>
 			<ui5-notification-overflow-action icon="decline" design="Negative" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
 		</ui5-li-notification>
 
-		<ui5-li-notification heading="New order (#2523)" truncate>
+		<ui5-li-notification heading="New order (#2523)">
 			<div>And with a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
 
 			<span slot="footnotes">John SMith</span>
@@ -123,6 +122,7 @@ <h3>Events on ui5-list level</h3>
 
 		<ui5-li-notification
 			show-close
+			wrap
 			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 		>
 			And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -134,6 +134,7 @@ <h3>Events on ui5-list level</h3>
 
 		<ui5-li-notification
 			show-close
+			wrap
 			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 			priority="High"
 		>
@@ -145,6 +146,7 @@ <h3>Events on ui5-list level</h3>
 		</ui5-li-notification>
 
 		<ui5-li-notification
+			wrap
 			heading="New order (#2522)"
 			priority="Low"
 		>
@@ -155,7 +157,10 @@ <h3>Events on ui5-list level</h3>
 			<span slot="footnotes">3 Days</span>
 		</ui5-li-notification>
 
-		<ui5-li-notification heading="New order (#2523)">
+		<ui5-li-notification
+			heading="New order (#2523)"
+			wrap
+		>
 			<div>With a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
 
 			<span slot="footnotes">John SMith</span>
@@ -169,7 +174,6 @@ <h3>Events on ui5-list level</h3>
 		<ui5-list id="notificationListTop" header-text="Notifications heading and content 'truncates'">
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 			>
 				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -190,7 +194,6 @@ <h3>Events on ui5-list level</h3>
 	
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				priority="High"
 			>
@@ -206,7 +209,7 @@ <h3>Events on ui5-list level</h3>
 			<ui5-li-notification
 				heading="New order (#2565) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				priority="Medium"
-				truncate>
+			>
 					Short description
 				<ui5-avatar initials="JS" size="XS" slot="avatar"></ui5-avatar>
 	
@@ -217,7 +220,7 @@ <h3>Events on ui5-list level</h3>
 				<ui5-notification-overflow-action icon="decline" design="Negative" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
 			</ui5-li-notification>
 	
-			<ui5-li-notification heading="New order (#2523)" truncate>
+			<ui5-li-notification heading="New order (#2523)">
 				<div>. With a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
 	
 				<span slot="footnotes">John SMith</span>
diff --git a/packages/fiori/test/pages/NotificationList_test_page.html b/packages/fiori/test/pages/NotificationList_test_page.html
index 2364efc81159..66e573490b95 100644
--- a/packages/fiori/test/pages/NotificationList_test_page.html
+++ b/packages/fiori/test/pages/NotificationList_test_page.html
@@ -67,7 +67,6 @@
 				<ui5-li-notification
 					id="nli1"
 					show-close
-					truncate
 					heading="New order #2201"
 					priority="High"
 				>
@@ -84,7 +83,6 @@
 				<ui5-li-notification
 					id="nli2"
 					show-close
-					truncate
 					heading="New order #2202"
 					priority="High"
 				>
@@ -110,6 +108,7 @@
 				<ui5-li-notification
 					id="nli3"
 					show-close
+					wrap
 					heading="New payment #2900"
 					priority="High"
 				>
@@ -125,6 +124,7 @@
 
 				<ui5-li-notification
 					id="nli4"
+					wrap
 					show-close
 					heading="New payment #2901"
 					priority="High"
@@ -149,6 +149,7 @@
 			>
 			<ui5-li-notification
 				id="nli5"
+				wrap
 				show-close
 				heading="New payment #2900"
 				priority="High"
diff --git a/packages/fiori/test/samples/NotificationListGroupItem.sample.html b/packages/fiori/test/samples/NotificationListGroupItem.sample.html
index 921aa046240a..4903d1e76e7e 100644
--- a/packages/fiori/test/samples/NotificationListGroupItem.sample.html
+++ b/packages/fiori/test/samples/NotificationListGroupItem.sample.html
@@ -22,7 +22,6 @@ <h3>NotificationListGroupItem</h3>
 			>
 				<ui5-li-notification
 					show-close
-					truncate
 					heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 					priority="High"
 				>
@@ -38,7 +37,6 @@ <h3>NotificationListGroupItem</h3>
 	
 				<ui5-li-notification
 					show-close
-					truncate
 					heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 					priority="High"
 				>
@@ -65,7 +63,6 @@ <h3>NotificationListGroupItem</h3>
 			>
 				<ui5-li-notification
 					show-close
-					truncate
 					heading="New Delivery (#2900) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 					priority="Medium"
 				>
@@ -80,7 +77,6 @@ <h3>NotificationListGroupItem</h3>
 	
 				<ui5-li-notification
 					show-close
-					truncate
 					heading="New Delivery (#29001) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 					priority="Medium"
 				>
@@ -106,7 +102,6 @@ <h3>NotificationListGroupItem</h3>
 			>
 				<ui5-li-notification
 					show-close
-					truncate
 					heading="New meeting at Building (#35001)"
 					priority="Low"
 					read
@@ -120,7 +115,6 @@ <h3>NotificationListGroupItem</h3>
 	
 				<ui5-li-notification
 					show-close
-					truncate
 					heading="New meeting at Building (#35001)"
 					priority="Low"
 					read
@@ -151,7 +145,6 @@ <h3>NotificationListGroupItem</h3>
 	>
 		<ui5-li-notification
 			show-close
-			truncate
 			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 			priority="High"
 		>
@@ -197,7 +190,6 @@ <h3>NotificationListGroupItem In ShellBar</h3>
 				>
 					<ui5-li-notification
 						show-close
-						truncate
 						heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 						priority="High"
 					>
@@ -213,7 +205,6 @@ <h3>NotificationListGroupItem In ShellBar</h3>
 		
 					<ui5-li-notification
 						show-close
-						truncate
 						heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 						priority="High"
 					>
@@ -240,7 +231,6 @@ <h3>NotificationListGroupItem In ShellBar</h3>
 				>
 					<ui5-li-notification
 						show-close
-						truncate
 						heading="New Delivery (#2900) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 						priority="Medium"
 					>
@@ -255,7 +245,6 @@ <h3>NotificationListGroupItem In ShellBar</h3>
 		
 					<ui5-li-notification
 						show-close
-						truncate
 						heading="New Delivery (#29001) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 						priority="Medium"
 					>
@@ -281,7 +270,6 @@ <h3>NotificationListGroupItem In ShellBar</h3>
 				>
 					<ui5-li-notification
 						show-close
-						truncate
 						heading="New meeting at Building (#35001)"
 						priority="High"
 						read
@@ -295,7 +283,6 @@ <h3>NotificationListGroupItem In ShellBar</h3>
 		
 					<ui5-li-notification
 						show-close
-						truncate
 						heading="New meeting at Building (#35001)"
 						priority="High"
 						read
@@ -342,7 +329,6 @@ <h3>NotificationListGroupItem In ShellBar</h3>
 		>
 			<ui5-li-notification
 				show-close
-				truncate
 				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 			>
 				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
diff --git a/packages/fiori/test/samples/NotificationListItem.sample.html b/packages/fiori/test/samples/NotificationListItem.sample.html
index 847840881e50..fef18c7d9215 100644
--- a/packages/fiori/test/samples/NotificationListItem.sample.html
+++ b/packages/fiori/test/samples/NotificationListItem.sample.html
@@ -88,66 +88,6 @@ <h3>NotificationListItem</h3>
 	</xmp></pre>
 </section>
 
-<section>
-	<h3>NotificationListItem - Show "more/less"</h3>
-	<div class="snippet">
-		<ui5-list id="myList2" class="full-width" header-text="Notifications">
-			<ui5-li-notification
-				truncate
-				show-close
-				priority="Medium"
-				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
-			>
-				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-				<ui5-avatar initials="ML" size="XS" slot="avatar"></ui5-avatar>
-				<span slot="footnotes">Monique Legrand</span>
-				<span slot="footnotes">2 Days</span>
-			</ui5-li-notification>
-
-			<ui5-li-notification
-				truncate
-				show-close
-				priority="Medium"
-				heading="New order (#2526) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
-			>
-				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-				<ui5-avatar initials="AC" size="XS" slot="avatar"></ui5-avatar>
-				<span slot="footnotes">Alain Chevalier</span>
-				<span slot="footnotes">2 Days</span>
-			</ui5-li-notification>
-
-			<ui5-li-notification
-				show-close
-				priority="Medium"
-				truncate
-				heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
-			>
-				And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-				<ui5-avatar initials="JD" size="XS" slot="avatar"></ui5-avatar>
-				<span slot="footnotes">John Doe</span>
-				<span slot="footnotes">2 Days</span>
-			</ui5-li-notification>
-		</ui5-list>
-	</div>
-	<pre class="prettyprint lang-html"><xmp>
-<ui5-list header-text="Notifications">
-	<ui5-li-notification
-		truncate
-		show-close
-		priority="Medium"
-		heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
-	>
-		And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-		<ui5-avatar initials="ML" size="XS" slot="avatar"></ui5-avatar>
-		<span slot="footnotes">Monique Legrand</span>
-		<span slot="footnotes">2 Days</span>
-	</ui5-li-notification>
-
-	...
-</ui5-list>
-	</xmp></pre>
-</section>
-
 <section>
 	<h3>NotificationListItem - Custom Actions</h3>
 	<div class="snippet">
@@ -228,7 +168,6 @@ <h3>NotificationListItem In ShellBar</h3>
 			<ui5-list id="notificationListTop" header-text="Notifications">
 				<ui5-li-notification
 					show-close
-					truncate
 					heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 				>
 					And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -242,7 +181,6 @@ <h3>NotificationListItem In ShellBar</h3>
 		
 				<ui5-li-notification
 					show-close
-					truncate
 					heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 					priority="High"
 				>
@@ -258,7 +196,7 @@ <h3>NotificationListItem In ShellBar</h3>
 				<ui5-li-notification
 					heading="New order (#2565) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 					priority="Medium"
-					truncate>
+				>
 						Short description
 					<ui5-avatar initials="JS" size="XS" slot="avatar"></ui5-avatar>
 		
@@ -269,7 +207,7 @@ <h3>NotificationListItem In ShellBar</h3>
 					<ui5-notification-overflow-action icon="decline" text="Reject All Requested Information" slot="actions"></ui5-notification-overflow-action>
 				</ui5-li-notification>
 		
-				<ui5-li-notification heading="New order (#2523)" truncate>
+				<ui5-li-notification heading="New order (#2523)">
 					<div>. With a very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.</div>
 		
 					<span slot="footnotes">John SMith</span>
@@ -305,7 +243,6 @@ <h3>NotificationListItem In ShellBar</h3>
 	<ui5-list header-text="Notifications">
 		<ui5-li-notification
 			show-close
-			truncate
 			heading="New order (#2525) With a very long title - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc."
 		>
 			And with a very long description and long labels of the action buttons - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent feugiat, turpis vel scelerisque pharetra, tellus odio vehicula dolor, nec elementum lectus turpis at nunc.
@@ -329,5 +266,4 @@ <h3>NotificationListItem In ShellBar</h3>
 	</xmp></pre>
 </section>
 
-
 <!-- JSDoc marker -->

From a507dc44bedb57f9829f7649141caa7360979e7c Mon Sep 17 00:00:00 2001
From: ilhan <ilhan.myumyun@sap.com>
Date: Wed, 13 May 2020 10:08:58 +0300
Subject: [PATCH 22/22] update jsdoc

---
 packages/fiori/src/NotificationListItem.js | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/packages/fiori/src/NotificationListItem.js b/packages/fiori/src/NotificationListItem.js
index c73a58cd6e75..171da41a93c6 100644
--- a/packages/fiori/src/NotificationListItem.js
+++ b/packages/fiori/src/NotificationListItem.js
@@ -42,12 +42,12 @@ const metadata = {
 	properties: /** @lends sap.ui.webcomponents.fiori.NotificationListItem.prototype */ {
 
 		/**
-		 * Defines if the <code>heading</code> and <code>decription</code> should truncate,
-		 * they wrap by default.
+		 * Defines if the <code>heading</code> and <code>decription</code> should wrap,
+		 * they truncate by default.
 		 *
 		 * <br><br>
-		 * <b>Note:</b> when set to <code>true</code>
-		 * a <code>ShowMore/Less</code> button would be displayed.
+		 * <b>Note:</b> by default the <code>heading</code> and <code>decription</code>,
+		 * and a <code>ShowMore/Less</code> button would be displayed.
 		 * @defaultvalue false
 		 * @public
 		 */