From b8b899fee36186d7b343feb6404939733ad36887 Mon Sep 17 00:00:00 2001
From: Patrizio Bekerle <patrizio@bekerle.com>
Date: Tue, 22 Jun 2021 11:36:42 +0200
Subject: [PATCH] Add documentation for overriding slots in nested web
 components

---
 packages/common/README.md           | 44 +++++++++++++++++++++++++++++
 packages/common/package.json        |  2 +-
 packages/file-handling/package.json |  2 +-
 3 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/packages/common/README.md b/packages/common/README.md
index 3beedf78..8e431c3a 100644
--- a/packages/common/README.md
+++ b/packages/common/README.md
@@ -38,3 +38,47 @@ You can use this web component to show translated html.
 ```
 
 The English or German text will be shown according to the `lang` attribute. 
+
+## Overriding slots in nested web components
+
+If slots are used in web components then it is best to derive your component class from `DBPLitElement`
+and subscribe to the attribute `html-overrides` everywhere you use it with `subscribe="html-overrides"`.
+
+This way integrators who are using topics or activities are able to globally override these slots
+in their root html.
+
+Example of the part of an `index.html` file for overriding the `auth-info` text in all Nextcloud
+file pickers of the signature topic:
+
+```html
+<dbp-signature html-overrides="global-override"></dbp-signature>
+
+<template id="global-override">
+    <template id="dbp-nextcloud-file-picker">
+        <div slot="auth-info">
+            <dbp-translated subscribe="lang">
+                <div slot="de">
+                    Deutscher Text
+                </div>
+                <div slot="en">
+                    English Text
+                </div>
+            </dbp-translated>
+        </div>
+    </template>
+</template>
+```
+
+By using `html-overrides="global-override"` in the topic `dbp-signature` you are able to define
+a template with `id="global-override"` that can hold one or more other templates for different components.
+
+In our case we have a template `id="dbp-nextcloud-file-picker"`, because we want to override slots
+in the component `dbp-nextcloud-file-picker` inside the signature topic.
+
+You can define one or more slots in that template that should be overridden.
+
+In our example we only want to override the slot `auth-info`, that holds additional text to add in
+the Nextcloud file picker component.
+
+We are using the `dbp-translated` component to insert translated text at the specified position
+in the Nextcloud file picker.
diff --git a/packages/common/package.json b/packages/common/package.json
index 49bd5631..d54f4bfb 100644
--- a/packages/common/package.json
+++ b/packages/common/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@dbp-toolkit/common",
   "homepage": "https://gitlab.tugraz.at/dbp/web-components/toolkit/-/tree/master/packages/common",
-  "version": "0.2.8",
+  "version": "0.2.9",
   "module": "index.js",
   "license": "LGPL-2.1-or-later",
   "repository": {
diff --git a/packages/file-handling/package.json b/packages/file-handling/package.json
index f2aff358..118af4fd 100644
--- a/packages/file-handling/package.json
+++ b/packages/file-handling/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@dbp-toolkit/file-handling",
   "homepage": "https://gitlab.tugraz.at/dbp/web-components/toolkit/-/tree/master/packages/file-handling",
-  "version": "0.2.6",
+  "version": "0.2.7",
   "main": "src/index.js",
   "license": "LGPL-2.1-or-later",
   "repository": {
-- 
GitLab