You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by hn...@apache.org on 2026/10/08 19:17:21 UTC

(myfaces-tobago) branch main updated (ee9bc55444 -> 2e0c115407)

This is an automated email from the ASF dual-hosted git repository.

henningn pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git


    from ee9bc55444 build(deps): npm
     new dae7a9a66c fix(ajax-queue): overlay must stay till queue is finished
     new 2e0c115407 build(theme): rebuild

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../webapp/content/900-test/z-misc/ajax/Ajax.xhtml | 14 ++++
 .../content/900-test/z-misc/ajax/Ajax.test.ts      | 25 ++++++
 tobago-theme/src/main/scss/_tobago.scss            |  5 +-
 .../src/main/css/tobago.css                        |  5 +-
 .../src/main/css/tobago.css.map                    |  2 +-
 .../src/main/css/tobago.min.css                    |  2 +-
 .../src/main/css/tobago.min.css.map                |  2 +-
 .../src/main/css/tobago.css                        |  5 +-
 .../src/main/css/tobago.css.map                    |  2 +-
 .../src/main/css/tobago.min.css                    |  2 +-
 .../src/main/css/tobago.min.css.map                |  2 +-
 .../src/main/css/tobago.css                        |  5 +-
 .../src/main/css/tobago.css.map                    |  2 +-
 .../src/main/css/tobago.min.css                    |  2 +-
 .../src/main/css/tobago.min.css.map                |  2 +-
 .../tobago-theme-speyside/src/main/css/tobago.css  |  5 +-
 .../src/main/css/tobago.css.map                    |  2 +-
 .../src/main/css/tobago.min.css                    |  2 +-
 .../src/main/css/tobago.min.css.map                |  2 +-
 .../tobago-theme-standard/src/main/css/tobago.css  |  5 +-
 .../src/main/css/tobago.css.map                    |  2 +-
 .../src/main/css/tobago.min.css                    |  2 +-
 .../src/main/css/tobago.min.css.map                |  2 +-
 .../tobago-theme-standard/src/main/js/tobago.js    | 10 +--
 .../src/main/js/tobago.js.map                      |  8 +-
 .../src/main/ts/tobago-ajax-queue-static.ts        |  2 +
 .../src/main/ts/tobago-ajax-queue.ts               | 10 +--
 .../src/main/ts/tobago-behavior.ts                 |  4 +-
 .../src/main/ts/tobago-overlay.ts                  | 89 +++++++++++++---------
 .../src/main/ts/tobago-paginator.ts                |  4 +-
 tobago-theme/tsconfig.json                         |  2 +-
 31 files changed, 150 insertions(+), 78 deletions(-)


(myfaces-tobago) 01/02: fix(ajax-queue): overlay must stay till queue is finished

Posted by hn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

henningn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git

commit dae7a9a66cdba347db0ca0d1b97fa6a925fc734d
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Wed Oct 7 14:04:34 2026 +0200

    fix(ajax-queue): overlay must stay till queue is finished
    
    Refactor tobago-ajax-queue.ts, so the ajaxEventListener() could be removed and the AjaxQueueStatic.ajaxEventListener() method is called directly.
    
    Remove the Overlay.getEnhancedRequestOptions() method. Now, if the Tobago Ajax queue is used (tobago.ajax.request()), there is automatically an overlay. The enhancement of the faces.ajax.RequestOptions happens now in the AjaxQueueStatic.request() method and is called Overlay.initAjaxQueueOverlays().
    
    fix: overlay stays after shown as long as the corresponding render id is part of the Tobago Ajax queue.
    
    CSS: transition property on the overlay is only active if ".fade" class is used.
    If an overlay is set with a delay of "0", the .fade class is not used and the overlay shows up immediately.
    
    Add test.
    
    Issue: TOBAGO-2549
---
 .../webapp/content/900-test/z-misc/ajax/Ajax.xhtml | 14 ++++
 .../content/900-test/z-misc/ajax/Ajax.test.ts      | 25 ++++++
 tobago-theme/src/main/scss/_tobago.scss            |  5 +-
 .../src/main/ts/tobago-ajax-queue-static.ts        |  2 +
 .../src/main/ts/tobago-ajax-queue.ts               | 10 +--
 .../src/main/ts/tobago-behavior.ts                 |  4 +-
 .../src/main/ts/tobago-overlay.ts                  | 89 +++++++++++++---------
 .../src/main/ts/tobago-paginator.ts                |  4 +-
 tobago-theme/tsconfig.json                         |  2 +-
 9 files changed, 106 insertions(+), 49 deletions(-)

diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/z-misc/ajax/Ajax.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/z-misc/ajax/Ajax.xhtml
index 6e7d6e2647..7e702d8e0b 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/z-misc/ajax/Ajax.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/900-test/z-misc/ajax/Ajax.xhtml
@@ -42,4 +42,18 @@
 
   <tc:out id="timestamp" label="Timestamp" value="#{ajaxSpecialCharacterController.timestamp}"/>
 
+  <tc:section label="Test overlay">
+    <p>An overlay should be shown if an Ajax request takes longer than one second. If an overlay is shown, it must stay,
+      till the corresponding render id is removed from the Tobago Ajax queue.</p>
+
+    <tc:in id="overlayTestInput" value="change text to force next ajax request into queue"/>
+    <tc:out id="overlayTestOutput" value="#{partialReloadController.currentDate}">
+      <f:convertDateTime pattern="HH:MM:ss.SSS"/>
+    </tc:out>
+
+    <tc:button id="overlayTestButton" label="Reload (wait 3 s)" action="#{partialReloadController.waitAndReload3}">
+      <f:ajax execute="overlayTestInput" render="overlayTestOutput"/>
+    </tc:button>
+  </tc:section>
+
 </ui:composition>
diff --git a/tobago-example/tobago-example-demo/src/test/typescript/content/900-test/z-misc/ajax/Ajax.test.ts b/tobago-example/tobago-example-demo/src/test/typescript/content/900-test/z-misc/ajax/Ajax.test.ts
index cadec0c000..1efb00b82f 100644
--- a/tobago-example/tobago-example-demo/src/test/typescript/content/900-test/z-misc/ajax/Ajax.test.ts
+++ b/tobago-example/tobago-example-demo/src/test/typescript/content/900-test/z-misc/ajax/Ajax.test.ts
@@ -56,4 +56,29 @@ test.describe("900-test/z-misc/ajax/Ajax.xhtml", () => {
     await expect(html).toHaveCount(1);
     await expect(body).not.toHaveCSS("overflow", "hidden");
   });
+
+  test("Tobago Ajax queue overlay", async ({page}) => {
+    const input = page.locator("[id='page:mainForm:overlayTestInput::field']");
+    const output = page.locator("[id='page:mainForm:overlayTestOutput']");
+    const text = output.locator(".form-control-plaintext");
+    const overlay = output.locator("tobago-overlay");
+    const button = page.locator("[id='page:mainForm:overlayTestButton']");
+
+    let textValue = (await text.textContent())!;
+
+    await expect(overlay).not.toBeVisible();
+    await expect(text).toHaveText(textValue);
+
+    await button.click(); //click has a delay of 3 seconds
+    await expect(text).toHaveText(textValue);
+    await expect(overlay).toContainClass("show");
+
+    await input.fill("Bob");
+    await button.click(); //add another 3 seconds to queue
+    await expect(text).toHaveText(textValue); //text value not changed means, the first Ajax request is still running
+    await expect(overlay).toContainClass("show");
+
+    await expect(text).not.toHaveText(textValue); //second Ajax request is running
+    await expect(overlay).toContainClass("show", {timeout: 500}); //timeout must be < 1 s, because after that the new overlay is shown
+  });
 });
diff --git a/tobago-theme/src/main/scss/_tobago.scss b/tobago-theme/src/main/scss/_tobago.scss
index 0273156859..735726c826 100644
--- a/tobago-theme/src/main/scss/_tobago.scss
+++ b/tobago-theme/src/main/scss/_tobago.scss
@@ -1155,10 +1155,13 @@ tobago-overlay {
   display: flex;
   align-items: center;
   justify-content: center;
-  transition: background-color .15s linear; //similar to .fade from Bootstrap
   overflow: hidden;
   z-index: 5; //set to "5", because this is the highest fixed value in Bootstrap
 
+  &.fade {
+    transition: background-color .15s linear; //similar to .fade from Bootstrap
+  }
+
   &.show {
     background-color: rgba(var(--#{$prefix}body-bg-rgb), 90%);
   }
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-ajax-queue-static.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-ajax-queue-static.ts
index 5592d73d32..16aa6599b7 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-ajax-queue-static.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-ajax-queue-static.ts
@@ -18,6 +18,7 @@
  */
 
 import {QueueItem} from "./tobago-ajax-queue";
+import {Overlay} from "./tobago-overlay";
 
 /**
  * Static logic for AjaxQueue class for better testing.
@@ -44,6 +45,7 @@ export class AjaxQueueStatic {
       func: facesAjaxRequest,
       inProgress: false
     });
+    Overlay.initAjaxQueueOverlays(queue, options);
     this.processQueue(queue);
   }
 
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-ajax-queue.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-ajax-queue.ts
index b637849e62..6be14530fc 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-ajax-queue.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-ajax-queue.ts
@@ -48,14 +48,14 @@ class AjaxQueue {
         if (currentOnEvent) {
           currentOnEvent(data);
         }
-        this.ajaxEventListener(data.source, data.type, data.status);
+        AjaxQueueStatic.ajaxEventListener(this.queue, data.source, data.type, data.status);
       };
       const currentOnError = options.onerror;
       options.onerror = (data: faces.AjaxError) => {
         if (currentOnError) {
           currentOnError(data);
         }
-        this.ajaxEventListener(data.source, data.type, data.status);
+        AjaxQueueStatic.ajaxEventListener(this.queue, data.source, data.type, data.status);
       };
 
       AjaxQueueStatic.request(this.queue, element, event, options, () => faces.ajax.request(element, event, options));
@@ -70,12 +70,6 @@ class AjaxQueue {
       faces.ajax.request(element, event, options);
     }
   }
-
-  private ajaxEventListener(source: Element,
-                            type: "event" | "error",
-                            status: faces.AjaxEventStatus | faces.AjaxErrorStatus | "clientError" | "timeout"): void {
-    AjaxQueueStatic.ajaxEventListener(this.queue, source, type, status);
-  }
 }
 
 export const ajaxQueue = new AjaxQueue();
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-behavior.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-behavior.ts
index 2fff36d239..9d07303326 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-behavior.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-behavior.ts
@@ -114,7 +114,7 @@ export class Behavior extends HTMLElement {
         tobago.ajax.request(
             this.actionElement,
             event,
-            Overlay.getEnhancedRequestOptions({
+            {
               params: {
                 "jakarta.faces.behavior.event": this.event
               },
@@ -162,7 +162,7 @@ export class Behavior extends HTMLElement {
                   }
                 }
               }
-            }));
+            });
         break;
       case BehaviorMode.full:
         setTimeout(this.submit.bind(this), this.delay);
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-overlay.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-overlay.ts
index 6a87816ebb..868f1901ba 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-overlay.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-overlay.ts
@@ -22,47 +22,66 @@
 import {Page} from "./tobago-page";
 import {OverlayType} from "./tobago-overlay-type";
 import {Css} from "./tobago-css";
+import {QueueItem} from "./tobago-ajax-queue";
 
 export class Overlay extends HTMLElement {
+  private static overlayWasShown = new Set<string>();
 
   /**
-   * Enhance or create faces.ajax.RequestOptions to use an overlay for the Ajax request.
+   * Enhance faces.ajax.RequestOptions to handle overlays for the Tobago Ajax queue.
+   *
+   * If an Ajax request is executed, a tobago-overlay component is set for all render Ids of the Tobago Ajax queue. If
+   * an overlay is shown, it keeps showing till the corresponding renderId is not in the Tobago Ajax queue anymore.
+   *
+   * @param queue Tobago Ajax queue
+   * @param options faces.ajax.RequestOptions
    */
-  static getEnhancedRequestOptions(options: faces.ajax.RequestOptions = {}): faces.ajax.RequestOptions {
-    const renderIds = new Set<string>();
-    if (options.render) {
-      for (const id of options.render.split(" ")) {
-        renderIds.add(id);
-      }
-    }
-
-    const currentOnEvent = options.onevent;
-    options.onevent = (data: faces.AjaxEvent) => {
-      if (currentOnEvent) {
-        currentOnEvent(data);
-      }
+  static initAjaxQueueOverlays(queue: QueueItem[], options: faces.ajax.RequestOptions): void {
+    if (options) {
+      const requestOptionsRenderIds = new Set<string>(options.render ? options.render.split(" ") : []);
+      const ajaxQueueRenderIds = new Set<string>(queue.flatMap(queueItem => [...queueItem.renderIds]));
+
+      const currentOnEvent = options.onevent;
+      options.onevent = (data: faces.AjaxEvent) => {
+        if (currentOnEvent) {
+          currentOnEvent(data);
+        }
 
-      if (data.status === "begin") {
-        for (const renderId of renderIds) {
-          Overlay.render(renderId, OverlayType.ajax);
+        if (data.status === "begin") {
+          for (const renderId of ajaxQueueRenderIds) {
+            if (this.overlayWasShown.has(renderId)) {
+              Overlay.render(renderId, OverlayType.ajax, 0);
+            } else {
+              Overlay.render(renderId, OverlayType.ajax);
+            }
+          }
+        } else if (data.status === "complete") {
+          for (const renderId of ajaxQueueRenderIds) {
+            const overlay = document.querySelector("[id='" + renderId + "'] tobago-overlay");
+            if (overlay.classList.contains(Css.SHOW)) {
+              this.overlayWasShown.add(renderId);
+            }
+          }
+        } else if (data.status === "success") {
+          for (const renderId of requestOptionsRenderIds) {
+            Overlay.remove(renderId);
+          }
+          if (queue.length === 0) {
+            this.overlayWasShown.clear();
+          }
         }
-      } else if (data.status === "success") {
-        for (const renderId of renderIds) {
-          Overlay.remove(renderId);
+      };
+      const currentOnError = options.onerror;
+      options.onerror = (data: faces.AjaxError) => {
+        if (currentOnError) {
+          currentOnError(data);
         }
-      }
-    };
-    const currentOnError = options.onerror;
-    options.onerror = (data: faces.AjaxError) => {
-      if (currentOnError) {
-        currentOnError(data);
-      }
 
-      for (const renderId of renderIds) {
-        Overlay.render(renderId, OverlayType.error);
-      }
-    };
-    return options;
+        for (const renderId of requestOptionsRenderIds) {
+          Overlay.render(renderId, OverlayType.error);
+        }
+      };
+    }
   }
 
   static render(id: string, type: OverlayType, delay: number = Page
@@ -74,7 +93,7 @@ export class Overlay extends HTMLElement {
 
       if (currentOverlay === null) {
         element.insertAdjacentHTML("beforeend", Overlay.htmlText(id, type,
-            delay ? delay : Page.page(document.querySelector("tobago-page")).waitOverlayDelayAjax));
+            delay >= 0 ? delay : Page.page(document.querySelector("tobago-page")).waitOverlayDelayAjax));
       } else if (currentOverlayType !== type) {
         currentOverlay?.remove();
         element.insertAdjacentHTML("beforeend", Overlay.htmlText(id, type, 0));
@@ -89,8 +108,8 @@ export class Overlay extends HTMLElement {
   }
 
   static htmlText(id: string, type: OverlayType, delay: number): string {
-    return `<tobago-overlay type='${type}' for='${id}' delay='${delay}' class='fade${type === OverlayType.error
-        ? " text-danger" : ""}'/>`;
+    return `<tobago-overlay type='${type}' for='${id}' delay='${delay}' class='${delay > 0
+        ? "fade" : ""}${type === OverlayType.error ? " text-danger" : ""}'/>`;
   }
 
   private timeout;
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-paginator.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-paginator.ts
index e02d93960b..79db1ea67d 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-paginator.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-paginator.ts
@@ -96,13 +96,13 @@ export class TobagoPaginator extends HTMLElement {
     tobago.ajax.request(
         this.id,
         null,
-        Overlay.getEnhancedRequestOptions({
+        {
           params: {
             "jakarta.faces.behavior.event": "reload"
           },
           execute: sheet.id,
           render: sheet.id
-        }));
+        });
   }
 
   get text(): HTMLElement {
diff --git a/tobago-theme/tsconfig.json b/tobago-theme/tsconfig.json
index 973b0151a1..301e219a61 100644
--- a/tobago-theme/tsconfig.json
+++ b/tobago-theme/tsconfig.json
@@ -1,6 +1,6 @@
 {
   "compilerOptions": {
-    "target": "es2016",
+    "target": "es2019",
     "strict": false,
     "types": [
       "jest",


(myfaces-tobago) 02/02: build(theme): rebuild

Posted by hn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

henningn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git

commit 2e0c115407485444caf953c454db9dfc32d88c5a
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Thu Oct 8 14:42:21 2026 +0200

    build(theme): rebuild
---
 .../tobago-theme-charlotteville/src/main/css/tobago.css        |  5 ++++-
 .../tobago-theme-charlotteville/src/main/css/tobago.css.map    |  2 +-
 .../tobago-theme-charlotteville/src/main/css/tobago.min.css    |  2 +-
 .../src/main/css/tobago.min.css.map                            |  2 +-
 tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css   |  5 ++++-
 .../tobago-theme-roxborough/src/main/css/tobago.css.map        |  2 +-
 .../tobago-theme-roxborough/src/main/css/tobago.min.css        |  2 +-
 .../tobago-theme-roxborough/src/main/css/tobago.min.css.map    |  2 +-
 tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css  |  5 ++++-
 .../tobago-theme-scarborough/src/main/css/tobago.css.map       |  2 +-
 .../tobago-theme-scarborough/src/main/css/tobago.min.css       |  2 +-
 .../tobago-theme-scarborough/src/main/css/tobago.min.css.map   |  2 +-
 tobago-theme/tobago-theme-speyside/src/main/css/tobago.css     |  5 ++++-
 tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map |  2 +-
 tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css |  2 +-
 .../tobago-theme-speyside/src/main/css/tobago.min.css.map      |  2 +-
 tobago-theme/tobago-theme-standard/src/main/css/tobago.css     |  5 ++++-
 tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map |  2 +-
 tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css |  2 +-
 .../tobago-theme-standard/src/main/css/tobago.min.css.map      |  2 +-
 tobago-theme/tobago-theme-standard/src/main/js/tobago.js       | 10 +++++-----
 tobago-theme/tobago-theme-standard/src/main/js/tobago.js.map   |  8 ++++----
 22 files changed, 44 insertions(+), 29 deletions(-)

diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
index 4ee4676984..7a7cb79218 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
@@ -14780,12 +14780,15 @@ tobago-overlay {
   z-index: 5;
   justify-content: center;
   align-items: center;
-  transition: background-color .15s linear;
   display: flex;
   position: absolute;
   overflow: hidden;
 }
 
+tobago-overlay.fade {
+  transition: background-color .15s linear;
+}
+
 tobago-overlay.show {
   background-color: rgba(var(--bs-body-bg-rgb), 90%);
 }
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map
index 8c4f27f9bb..99a290a868 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"mappings":";;;;;;;;;;;;;;;;AAgDA;;;;AAGA;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;AAGA;;;;;AAKA;;;;AAIA;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;AAIA;;;;AAIA;;;;AAgBA;;;;AAIA;;;;AAGA;;;;AAIA;;;;;AAQA;;;;;;;;;;AASA;;;;AAKA;;;;AAKA;;;;AAGA;;;;AAIA;;;;;AAKA;;;;;AAMA;;;;;AAOA;;;;AAAA;;;;AAAA;;;;AAIA;;;;;AAMA;;;;;AAKA;;;;AAIA;;;;AAKA;;;;;;AAKA;;;;AAIA;;;;;;;AAOA;;;;;AAKA;;;;;;AAMA;;;;;;AASA;;;;;;AAWA;;;;;AAKA;;;;AAGA;;;;AAIA;;;;;;;AAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [...]
\ No newline at end of file
+{"version":3,"mappings":";;;;;;;;;;;;;;;;AAgDA;;;;AAGA;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;AAGA;;;;;AAKA;;;;AAIA;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;AAIA;;;;AAIA;;;;AAgBA;;;;AAIA;;;;AAGA;;;;AAIA;;;;;AAQA;;;;;;;;;;AASA;;;;AAKA;;;;AAKA;;;;AAGA;;;;AAIA;;;;;AAKA;;;;;AAMA;;;;;AAOA;;;;AAAA;;;;AAAA;;;;AAIA;;;;;AAMA;;;;;AAKA;;;;AAIA;;;;AAKA;;;;;;AAKA;;;;AAIA;;;;;;;AAOA;;;;;AAKA;;;;;;AAMA;;;;;;AASA;;;;;;AAWA;;;;;AAKA;;;;AAGA;;;;AAIA;;;;;;;AAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css
index b0a8e0ae94..acc8819131 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css
@@ -14,5 +14,5 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-.tobago-dropdown-menu{background-color:#fff!important}.tobago-dropdown-menu .form-check-label{color:#555}.navbar .tobago-button{background-color:#59a3a3!important;border:1px solid #59a3a3!important}.navbar .tobago-button:hover{background-color:#61b5b5;border:1px solid #61b5b5}.navbar .tobago-link{color:#333!important}.navbar button.tobago-link.dropdown-item:disabled span{color:#555;opacity:.5}.tobago-dropdown-menu{--bs-dropdown-min-width:13rem!important}tobago-tree label{margin-top:15px} [...]
+.tobago-dropdown-menu{background-color:#fff!important}.tobago-dropdown-menu .form-check-label{color:#555}.navbar .tobago-button{background-color:#59a3a3!important;border:1px solid #59a3a3!important}.navbar .tobago-button:hover{background-color:#61b5b5;border:1px solid #61b5b5}.navbar .tobago-link{color:#333!important}.navbar button.tobago-link.dropdown-item:disabled span{color:#555;opacity:.5}.tobago-dropdown-menu{--bs-dropdown-min-width:13rem!important}tobago-tree label{margin-top:15px} [...]
 /*# sourceMappingURL=tobago.min.css.map */
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map
index 30c5c9fafd..e46e1ce89c 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"mappings":";;;;;;;;;;;;;;;;AAgDA,sDAGA,mDAIA,6FAIA,+EAIA,0CAGA,6EAKA,8DAIA,kCAIA,4CAIA,iDAIA,oCAIA,qCAIA,gIAgBA,+HAIA,gCAGA,iCAIA,qEAQA,mMASA,yIAKA,uEAKA,0DAGA,2DAIA,8EAKA,oJAMA,8JAOA,oDAAA,oEAAA,oEAIA,+IAMA,kDAKA,gCAIA,6CAKA,+GAKA,4EAIA,sGAOA,wDAKA,0FAMA,8MASA,kOAWA,uGAKA,uCAGA,+BAIA,4HAYA,2oHAyHA,8uDAwDA,uCAMA,8CACE,8BAKF,+UAaA,4FAQA,yIAQA,wCAGA,0BACE,yBAKF,uCAGA,0BACE,uBAKF,qCAGA,0BACE,0BAKF,uCAGA,0BACE,yBAKF,yBAIA,sBAIA,kCAKA,sKAMA,iEAMA,wBAKA,yCAOA,wCAOA,mBAIA,qCAKA,2B [...]
\ No newline at end of file
+{"version":3,"mappings":";;;;;;;;;;;;;;;;AAgDA,sDAGA,mDAIA,6FAIA,+EAIA,0CAGA,6EAKA,8DAIA,kCAIA,4CAIA,iDAIA,oCAIA,qCAIA,gIAgBA,+HAIA,gCAGA,iCAIA,qEAQA,mMASA,yIAKA,uEAKA,0DAGA,2DAIA,8EAKA,oJAMA,8JAOA,oDAAA,oEAAA,oEAIA,+IAMA,kDAKA,gCAIA,6CAKA,+GAKA,4EAIA,sGAOA,wDAKA,0FAMA,8MASA,kOAWA,uGAKA,uCAGA,+BAIA,4HAYA,2oHAyHA,8uDAwDA,uCAMA,8CACE,8BAKF,+UAaA,4FAQA,yIAQA,wCAGA,0BACE,yBAKF,uCAGA,0BACE,uBAKF,qCAGA,0BACE,0BAKF,uCAGA,0BACE,yBAKF,yBAIA,sBAIA,kCAKA,sKAMA,iEAMA,wBAKA,yCAOA,wCAOA,mBAIA,qCAKA,2B [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
index 02e19f5577..82251ddb28 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
@@ -14714,12 +14714,15 @@ tobago-overlay {
   z-index: 5;
   justify-content: center;
   align-items: center;
-  transition: background-color .15s linear;
   display: flex;
   position: absolute;
   overflow: hidden;
 }
 
+tobago-overlay.fade {
+  transition: background-color .15s linear;
+}
+
 tobago-overlay.show {
   background-color: rgba(var(--bs-body-bg-rgb), 90%);
 }
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map
index 0122f23735..f24e1784dd 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"mappings":";;;;;;;;;;;;;;;;AAgCA;;;;;;;AAMA;;;;;;;AAMA;;;;;;AAKA;;;;;;;AAMA;;;;AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA;;;;AAMA;EACE;;;;;AAKF;;;;;;;;;;;;;AAaA;;;;;;;;AAQA;;;;;;;;AAQA;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAIA;;;;AAIA;;;;;AAKA;;;;;;;;AAMA;;;;;;AAMA;;;;AAKA; [...]
\ No newline at end of file
+{"version":3,"mappings":";;;;;;;;;;;;;;;;AAgCA;;;;;;;AAMA;;;;;;;AAMA;;;;;;AAKA;;;;;;;AAMA;;;;AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA;;;;AAMA;EACE;;;;;AAKF;;;;;;;;;;;;;AAaA;;;;;;;;AAQA;;;;;;;;AAQA;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAIA;;;;AAIA;;;;;AAKA;;;;;;;;AAMA;;;;;;AAMA;;;;AAKA; [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css
index 6a4566feb1..441d6fa69e 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css
@@ -14,5 +14,5 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-@font-face{font-family:Amaranth;font-style:normal;font-weight:400;src:url(../fonts/Amaranth-Regular.otf)format("opentype")}@font-face{font-family:Amaranth;font-style:normal;font-weight:700;src:url(../fonts/Amaranth-Bold.otf)format("opentype")}@font-face{font-family:Amaranth;font-style:italic;src:url(../fonts/Amaranth-Italic.otf)format("opentype")}@font-face{font-family:Amaranth;font-style:italic;font-weight:700;src:url(../fonts/Amaranth-BoldItalic.otf)format("opentype")}.tobago-box-heade [...]
+@font-face{font-family:Amaranth;font-style:normal;font-weight:400;src:url(../fonts/Amaranth-Regular.otf)format("opentype")}@font-face{font-family:Amaranth;font-style:normal;font-weight:700;src:url(../fonts/Amaranth-Bold.otf)format("opentype")}@font-face{font-family:Amaranth;font-style:italic;src:url(../fonts/Amaranth-Italic.otf)format("opentype")}@font-face{font-family:Amaranth;font-style:italic;font-weight:700;src:url(../fonts/Amaranth-BoldItalic.otf)format("opentype")}.tobago-box-heade [...]
 /*# sourceMappingURL=tobago.min.css.map */
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map
index 8a29bc6e47..7f52e26feb 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"mappings":";;;;;;;;;;;;;;;;AAgCA,2HAMA,wHAMA,0GAKA,8HAMA,oDASA,2nHAyHA,8uDAwDA,uCAMA,8CACE,8BAKF,+UAaA,4FAQA,yIAQA,wCAGA,0BACE,yBAKF,uCAGA,0BACE,uBAKF,qCAGA,0BACE,0BAKF,uCAGA,0BACE,yBAKF,yBAIA,sBAIA,kCAKA,sKAMA,iEAMA,wBAKA,yCAOA,wCAOA,mBAIA,qCAKA,2BAIA,4BAKA,8BAIA,mGAMA,gFAQA,kBAIA,cAIA,2FAIA,2DAIA,+FAKA,qEAQA,iFAOA,2DAMA,sEAKA,qBAIA,iIAOA,gCAKA,uBAIA,8BAKA,mDAKA,+FAOA,sDAKA,kFAWA,2BAIA,uBAIA,2CAIA,yGAWA,kCAKA,6BAIA,wBAGA,0BAIA,iKAIA,iCAAA,wCAAA,uCAAA,wCAMA,qCAAA,4CAAA,2CAA [...]
\ No newline at end of file
+{"version":3,"mappings":";;;;;;;;;;;;;;;;AAgCA,2HAMA,wHAMA,0GAKA,8HAMA,oDASA,2nHAyHA,8uDAwDA,uCAMA,8CACE,8BAKF,+UAaA,4FAQA,yIAQA,wCAGA,0BACE,yBAKF,uCAGA,0BACE,uBAKF,qCAGA,0BACE,0BAKF,uCAGA,0BACE,yBAKF,yBAIA,sBAIA,kCAKA,sKAMA,iEAMA,wBAKA,yCAOA,wCAOA,mBAIA,qCAKA,2BAIA,4BAKA,8BAIA,mGAMA,gFAQA,kBAIA,cAIA,2FAIA,2DAIA,+FAKA,qEAQA,iFAOA,2DAMA,sEAKA,qBAIA,iIAOA,gCAKA,uBAIA,8BAKA,mDAKA,+FAOA,sDAKA,kFAWA,2BAIA,uBAIA,2CAIA,yGAWA,kCAKA,6BAIA,wBAGA,0BAIA,iKAIA,iCAAA,wCAAA,uCAAA,wCAMA,qCAAA,4CAAA,2CAA [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
index 1f4d6ac25d..1365226468 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
@@ -14713,12 +14713,15 @@ tobago-overlay {
   z-index: 5;
   justify-content: center;
   align-items: center;
-  transition: background-color .15s linear;
   display: flex;
   position: absolute;
   overflow: hidden;
 }
 
+tobago-overlay.fade {
+  transition: background-color .15s linear;
+}
+
 tobago-overlay.show {
   background-color: rgba(var(--bs-body-bg-rgb), 90%);
 }
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map
index d7d2ff685a..173fd4a1f1 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA;;;;AAMA;EACE;;;;;AAKF;;;;;;;;;;;;;AAaA;;;;;;;;AAQA;;;;;;;;AAQA;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAIA;;;;AAIA;;;;;AAKA;;;;;;;;AAMA;;;;;;AAMA;;;;AAKA;;;;;AAOA;;;;AAOA;;;;AAIA;;;; [...]
\ No newline at end of file
+{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA;;;;AAMA;EACE;;;;;AAKF;;;;;;;;;;;;;AAaA;;;;;;;;AAQA;;;;;;;;AAQA;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAIA;;;;AAIA;;;;;AAKA;;;;;;;;AAMA;;;;;;AAMA;;;;AAKA;;;;;AAOA;;;;AAOA;;;;AAIA;;;; [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css
index e9242aeb51..3dbac997ba 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css
@@ -37,5 +37,5 @@
  * Copyright 2011-2025 The Bootstrap Authors
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
  */
-:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs- [...]
+:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs- [...]
 /*# sourceMappingURL=tobago.min.css.map */
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map
index ec9676885d..e96143b864 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,koHAyHA,8uDAwDA,uCAMA,8CACE,8BAKF,+UAaA,4FAQA,yIAQA,wCAGA,0BACE,yBAKF,uCAGA,0BACE,uBAKF,qCAGA,0BACE,0BAKF,uCAGA,0BACE,yBAKF,yBAIA,sBAIA,kCAKA,sKAMA,iEAMA,wBAKA,yCAOA,wCAOA,mBAIA,qCAKA,2BAIA,4BAKA,8BAIA,mGAMA,gFAQA,kBAIA,cAIA,2FAIA,2DAIA,+FAKA,qEAQA,iFAOA,2DAMA,sEAKA,qBAIA,iIAOA,gCAKA,uBAIA,8BAKA,mDAKA,+FAOA,sDAKA,kFAWA,2BAIA,uBAIA,2CAIA,yGAWA,kCAKA,6BAIA,wBAGA,0BAIA,iKAIA,iCAAA,wCAAA,uCAAA,wCAMA,qCAAA,4CAAA,2CAAA,4CAOA [...]
\ No newline at end of file
+{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,koHAyHA,8uDAwDA,uCAMA,8CACE,8BAKF,+UAaA,4FAQA,yIAQA,wCAGA,0BACE,yBAKF,uCAGA,0BACE,uBAKF,qCAGA,0BACE,0BAKF,uCAGA,0BACE,yBAKF,yBAIA,sBAIA,kCAKA,sKAMA,iEAMA,wBAKA,yCAOA,wCAOA,mBAIA,qCAKA,2BAIA,4BAKA,8BAIA,mGAMA,gFAQA,kBAIA,cAIA,2FAIA,2DAIA,+FAKA,qEAQA,iFAOA,2DAMA,sEAKA,qBAIA,iIAOA,gCAKA,uBAIA,8BAKA,mDAKA,+FAOA,sDAKA,kFAWA,2BAIA,uBAIA,2CAIA,yGAWA,kCAKA,6BAIA,wBAGA,0BAIA,iKAIA,iCAAA,wCAAA,uCAAA,wCAMA,qCAAA,4CAAA,2CAAA,4CAOA [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
index 783815be15..21dfdfa493 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
@@ -14394,12 +14394,15 @@ tobago-overlay {
   z-index: 5;
   justify-content: center;
   align-items: center;
-  transition: background-color .15s linear;
   display: flex;
   position: absolute;
   overflow: hidden;
 }
 
+tobago-overlay.fade {
+  transition: background-color .15s linear;
+}
+
 tobago-overlay.show {
   background-color: rgba(var(--bs-body-bg-rgb), 90%);
 }
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map
index 7a105f978b..0e371d7ed7 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"mappings":";;;;;;;;;;;;;;;;AAqCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2HA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA;;;;AAMA;;;;AAGA;EACE;;;;;AAKF;;;;;;;;;;;;;AAaA;;;;;;;;AAQA;;;;;;;;AAQA;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAIA;;;;AAQA;;;;;AAKA;;;;;;;;AAMA;;;;;;AAMA;;;;AAKA;;;;;AAOA;;;;AAOA;;;;AAIA;;;;;AAKA;;;;AAIA;;;;AAKA;;;;AAIA;;;;;; [...]
\ No newline at end of file
+{"version":3,"mappings":";;;;;;;;;;;;;;;;AAqCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2HA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA;;;;AAMA;;;;AAGA;EACE;;;;;AAKF;;;;;;;;;;;;;AAaA;;;;;;;;AAQA;;;;;;;;AAQA;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAIA;;;;AAQA;;;;;AAKA;;;;;;;;AAMA;;;;;;AAMA;;;;AAKA;;;;;AAOA;;;;AAOA;;;;AAIA;;;;;AAKA;;;;AAIA;;;;AAKA;;;;AAIA;;;;;; [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css
index b43241f974..2adcdd49d0 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css
@@ -14,5 +14,5 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#3a2564;--bs-pink:#d63384;--bs-red:#d30040;--bs-orange:#d90;--bs-yellow:#ffc107;--bs-green:#1da332;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#788c94;--bs-gray-dark:#323232;--bs-gray-100:#f7f7f7;--bs-gray-200:#e3e4e5;--bs-gray-300:#d7d7d7;--bs-gray-400:#ced4da;--bs-gray-500:#acacac;--bs-gray-600:#788c94;--bs-gray-700:#55595c;--bs-gray-800:#323232;--bs-gray-900:#212529;--bs-pri [...]
+:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#3a2564;--bs-pink:#d63384;--bs-red:#d30040;--bs-orange:#d90;--bs-yellow:#ffc107;--bs-green:#1da332;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#788c94;--bs-gray-dark:#323232;--bs-gray-100:#f7f7f7;--bs-gray-200:#e3e4e5;--bs-gray-300:#d7d7d7;--bs-gray-400:#ced4da;--bs-gray-500:#acacac;--bs-gray-600:#788c94;--bs-gray-700:#55595c;--bs-gray-800:#323232;--bs-gray-900:#212529;--bs-pri [...]
 /*# sourceMappingURL=tobago.min.css.map */
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map
index 82bb2b7fbb..ff2744a76f 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"mappings":";;;;;;;;;;;;;;;;AAqCA,mgHA2HA,8uDAwDA,uCAMA,yCAGA,8CACE,8BAKF,+UAaA,4FAQA,wIAQA,wCAGA,0BACE,yBAKF,uCAGA,0BACE,0BAKF,wCAGA,0BACE,yBAKF,wBAIA,6BAQA,kCAKA,sKAMA,iEAMA,wBAKA,yCAOA,wCAOA,mBAIA,qCAKA,2BAIA,4BAKA,8BAIA,mGAMA,gFAQA,kBAIA,cAIA,2FAIA,gFAKA,+FAKA,qEAQA,iFAOA,2DAMA,sEAKA,qBAIA,4GAMA,gCAKA,uBAIA,8BAKA,mDAKA,+FAOA,sDAKA,kFAWA,2BAIA,uBAIA,2CAIA,yGAWA,kCAKA,6BAIA,wBAGA,0BAIA,iKAIA,iCAAA,wCAAA,uCAAA,wCAMA,qCAAA,4CAAA,2CAAA,4CAOA,+CAKA,yBAIA,iDAOA,+GAQA,0BACE,yBAI [...]
\ No newline at end of file
+{"version":3,"mappings":";;;;;;;;;;;;;;;;AAqCA,mgHA2HA,8uDAwDA,uCAMA,yCAGA,8CACE,8BAKF,+UAaA,4FAQA,wIAQA,wCAGA,0BACE,yBAKF,uCAGA,0BACE,0BAKF,wCAGA,0BACE,yBAKF,wBAIA,6BAQA,kCAKA,sKAMA,iEAMA,wBAKA,yCAOA,wCAOA,mBAIA,qCAKA,2BAIA,4BAKA,8BAIA,mGAMA,gFAQA,kBAIA,cAIA,2FAIA,gFAKA,+FAKA,qEAQA,iFAOA,2DAMA,sEAKA,qBAIA,4GAMA,gCAKA,uBAIA,8BAKA,mDAKA,+FAOA,sDAKA,kFAWA,2BAIA,uBAIA,2CAIA,yGAWA,kCAKA,6BAIA,wBAGA,0BAIA,iKAIA,iCAAA,wCAAA,uCAAA,wCAMA,qCAAA,4CAAA,2CAAA,4CAOA,+CAKA,yBAIA,iDAOA,+GAQA,0BACE,yBAI [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
index 3f33ac5d67..73c98f1532 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
@@ -14692,12 +14692,15 @@ tobago-overlay {
   z-index: 5;
   justify-content: center;
   align-items: center;
-  transition: background-color .15s linear;
   display: flex;
   position: absolute;
   overflow: hidden;
 }
 
+tobago-overlay.fade {
+  transition: background-color .15s linear;
+}
+
 tobago-overlay.show {
   background-color: rgba(var(--bs-body-bg-rgb), 90%);
 }
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map
index f02e4ec422..47a78f5452 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA;;;;AAMA;EACE;;;;;AAKF;;;;;;;;;;;;;AAaA;;;;;;;;AAQA;;;;;;;;AAQA;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAIA;;;;AAIA;;;;;AAKA;;;;;;;;AAMA;;;;;;AAMA;;;;AAKA;;;;;AAOA;;;;AAOA;;;;AAIA;;;;;AAKA;;;;AAIA;;;;A [...]
\ No newline at end of file
+{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA;;;;AAMA;EACE;;;;;AAKF;;;;;;;;;;;;;AAaA;;;;;;;;AAQA;;;;;;;;AAQA;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAGA;EACE;;;;;AAKF;;;;AAIA;;;;AAIA;;;;;AAKA;;;;;;;;AAMA;;;;;;AAMA;;;;AAKA;;;;;AAOA;;;;AAOA;;;;AAIA;;;;;AAKA;;;;AAIA;;;;A [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css
index a82201ff96..c2705c6078 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css
@@ -19,5 +19,5 @@
  * Copyright 2011-2025 The Bootstrap Authors
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
  */
-:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs- [...]
+:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs- [...]
 /*# sourceMappingURL=tobago.min.css.map */
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map
index 63f400f65f..878cfe35f2 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,koHAyHA,8uDAwDA,uCAMA,8CACE,8BAKF,+UAaA,4FAQA,yIAQA,wCAGA,0BACE,yBAKF,uCAGA,0BACE,uBAKF,qCAGA,0BACE,0BAKF,uCAGA,0BACE,yBAKF,yBAIA,sBAIA,kCAKA,sKAMA,iEAMA,wBAKA,yCAOA,wCAOA,mBAIA,qCAKA,2BAIA,4BAKA,8BAIA,mGAMA,gFAQA,kBAIA,cAIA,2FAIA,2DAIA,+FAKA,qEAQA,iFAOA,2DAMA,sEAKA,qBAIA,iIAOA,gCAKA,uBAIA,8BAKA,mDAKA,+FAOA,sDAKA,kFAWA,2BAIA,uBAIA,2CAIA,yGAWA,kCAKA,6BAIA,wBAGA,0BAIA,iKAIA,iCAAA,wCAAA,uCAAA,wCAMA,qCAAA,4CAAA,2CAAA,4CAOA,+CAKA,yBAIA,iDAOA [...]
\ No newline at end of file
+{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,koHAyHA,8uDAwDA,uCAMA,8CACE,8BAKF,+UAaA,4FAQA,yIAQA,wCAGA,0BACE,yBAKF,uCAGA,0BACE,uBAKF,qCAGA,0BACE,0BAKF,uCAGA,0BACE,yBAKF,yBAIA,sBAIA,kCAKA,sKAMA,iEAMA,wBAKA,yCAOA,wCAOA,mBAIA,qCAKA,2BAIA,4BAKA,8BAIA,mGAMA,gFAQA,kBAIA,cAIA,2FAIA,2DAIA,+FAKA,qEAQA,iFAOA,2DAMA,sEAKA,qBAIA,iIAOA,gCAKA,uBAIA,8BAKA,mDAKA,+FAOA,sDAKA,kFAWA,2BAIA,uBAIA,2CAIA,yGAWA,kCAKA,6BAIA,wBAGA,0BAIA,iKAIA,iCAAA,wCAAA,uCAAA,wCAMA,qCAAA,4CAAA,2CAAA,4CAOA,+CAKA,yBAIA,iDAOA [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/js/tobago.js b/tobago-theme/tobago-theme-standard/src/main/js/tobago.js
index 468ede5557..2c42c1325f 100644
--- a/tobago-theme/tobago-theme-standard/src/main/js/tobago.js
+++ b/tobago-theme/tobago-theme-standard/src/main/js/tobago.js
@@ -1,4 +1,4 @@
-(()=>{var Vr=Object.defineProperty;var jr=(n,e)=>{for(var t in e)Vr(n,t,{get:e[t],enumerable:!0})};var Nt=class{static request(e,t,i,s,o){this.removeFromQueue(e,t,i);for(let r of e)if(r.element===t&&r.event?.type===i?.type&&r.inProgress&&JSON.stringify(r.executeValues)===JSON.stringify(this.getExecuteValues(t,s?.execute))&&this.isSubset(r.renderIds,this.getIdSet(s?.render)))return;e.push({element:t,event:i,executeValues:this.getExecuteValues(t,s?.execute),renderIds:this.getIdSet(s?.rende [...]
+(()=>{var qr=Object.defineProperty;var jr=(n,e)=>{for(var t in e)qr(n,t,{get:e[t],enumerable:!0})};var ui=class{static getNamingContainerId(e){if(e==null||e.lastIndexOf(":")===-1)return null;let t=Array.from(e);for(let i=t.length-2;i>0;i--)if(t[i-1]!==":"&&t[i]===":"&&t[i+1]!==":")return e.substring(0,i);return null}};var f=class{constructor(){this.listeners=[]}add(e,t,i){e.addEventListener(t,i),this.listeners.push({element:e,type:t,listener:i})}disconnect(){this.listeners.forEach(e=>{e. [...]
   <div id="${this.tobagoSuggest.id+"::dropdownMenu"}" class="tobago-options tobago-dropdown-menu" data-tobago-for="${this.tobagoSuggest.id}">
     <table class="table table-hover table-sm">
       <tbody>
@@ -6,7 +6,7 @@
     </table>
   </div>
 </div>
-`),this.optionsControls=new Fe(this.optionsElement,this.select.bind(this)),this.dropdownMenu=new Ee(this.dropdownMenuElement,this.inputField,[this.tobagoIn,this.tobagoInField],this.localMenu,1),this.inputField.role="combobox",this.inputField.autocomplete="off",this.inputField.autocapitalize="off",this.inputField.spellcheck=!1,this.inputField.ariaAutoComplete="list",this.inputField.ariaHasPopup="listbox",this.inputField.setAttribute("aria-owns",this.dropdownMenuElement.id),this.listeners. [...]
+`),this.optionsControls=new Fe(this.optionsElement,this.select.bind(this)),this.dropdownMenu=new ve(this.dropdownMenuElement,this.inputField,[this.tobagoIn,this.tobagoInField],this.localMenu,1),this.inputField.role="combobox",this.inputField.autocomplete="off",this.inputField.autocapitalize="off",this.inputField.spellcheck=!1,this.inputField.ariaAutoComplete="list",this.inputField.ariaHasPopup="listbox",this.inputField.setAttribute("aria-owns",this.dropdownMenuElement.id),this.listeners. [...]
 Error Name: ${t.errorName}
 Error errorMessage: ${t.errorMessage}
 Response Code: ${t.responseCode}
@@ -14,7 +14,7 @@ Response Text: ${t.responseText}
 Status: ${t.status}
 Type: ${t.type}`)}showSpinner(){this.filterInput.style.marginRight=this.spinner.size+"px",this.spinner.show()}hideSpinner(){this.spinner.hide(),this.filterInput.style.marginRight=null}isPartOfSelectField(t){return t?this.selectField.id===t.id?!0:t.parentElement?this.isPartOfSelectField(t.parentElement):!1:!1}isPartOfTobagoOptions(t){return t?t.classList.contains("tobago-options")&&this.id===t.dataset.tobagoFor?!0:t.parentElement?this.isPartOfTobagoOptions(t.parentElement):!1:!1}get disab [...]
 \f\r]`,Qt=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Or=/-->/g,Mr=/>/g,it=RegExp(`>|${un}(?:([^\\s"'>=/]+)(${un}*=${un}*(?:[^ 	
-\f\r"'\`<>=]|("|')|))|$)`,"g"),xr=/'/g,Nr=/"/g,Rr=/^(?:script|style|textarea|title)$/i,bn=n=>(e,...t)=>({_$litType$:n,strings:e,values:t}),Gi=bn(1),Sv=bn(2),Av=bn(3),ei=Symbol.for("lit-noChange"),F=Symbol.for("lit-nothing"),Ir=new WeakMap,st=nt.createTreeWalker(nt,129);function Hr(n,e){if(!vn(n)||!n.hasOwnProperty("raw"))throw Error("invalid template strings array");return Lr!==void 0?Lr.createHTML(e):e}var Uu=(n,e)=>{let t=n.length-1,i=[],s,o=e===2?"<svg>":e===3?"<math>":"",r=Qt;for(let [...]
+\f\r"'\`<>=]|("|')|))|$)`,"g"),xr=/'/g,Nr=/"/g,Rr=/^(?:script|style|textarea|title)$/i,bn=n=>(e,...t)=>({_$litType$:n,strings:e,values:t}),Gi=bn(1),Sv=bn(2),Av=bn(3),ei=Symbol.for("lit-noChange"),F=Symbol.for("lit-nothing"),Ir=new WeakMap,st=nt.createTreeWalker(nt,129);function Hr(n,e){if(!vn(n)||!n.hasOwnProperty("raw"))throw Error("invalid template strings array");return Lr!==void 0?Lr.createHTML(e):e}var Uu=(n,e)=>{let t=n.length-1,i=[],s,o=e===2?"<svg>":e===3?"<math>":"",r=Qt;for(let [...]
           ${this.iconTemplate(t)}${e}</tobago-badge>`:Gi`<tobago-badge class="badge text-bg-primary btn">
           ${this.iconTemplate(t)}${e}</tobago-badge>
   <button type='button'
@@ -22,7 +22,7 @@ Type: ${t.type}`)}showSpinner(){this.filterInput.style.marginRight=this.spinner.
       ${s>0?" tabindex='"+String(s)+"'":""}
       @click="${this.removeBadge.bind(this)}"
       @focus="${this.focusEvent.bind(this)}"
-      @blur="${this.blurEvent.bind(this)}"><i class='bi-x-lg'></i></button>`}removeBadge(e){let s=e.target.closest(".btn-group").dataset.tobagoValue,o=this.hiddenSelect.querySelector(`[value="${s}"]`);o.selected=!1;let r=this.badges.querySelector(`[data-tobago-value="${s}"]`),a=this.getPreviousEnabledBadge(r),l=this.getNextEnabledBadge(r);a?a.querySelector("button.btn.badge").focus():l?l.querySelector("button.btn.badge").focus():(this.filterInput.disabled=!1,this.filterInput.focus()),thi [...]
+      @blur="${this.blurEvent.bind(this)}"><i class='bi-x-lg'></i></button>`}removeBadge(e){let s=e.target.closest(".btn-group").dataset.tobagoValue,o=this.hiddenSelect.querySelector(`[value="${s}"]`);o.selected=!1;let r=this.badges.querySelector(`[data-tobago-value="${s}"]`),a=this.getPreviousEnabledBadge(r),l=this.getNextEnabledBadge(r);a?a.querySelector("button.btn.badge").focus():l?l.querySelector("button.btn.badge").focus():(this.filterInput.disabled=!1,this.filterInput.focus()),thi [...]
 <td colspan="${t}">\xA0</td>
 </tr>`}connectedCallback(){this.querySelector("thead input.tobago-selected[name='"+this.id+"::columnSelector']")&&(this.columnSelector=new zi(this)),this.initScrollbarFiller(),this.dataset.tobagoLayout&&new ResizeObserver(s=>this.fixColumnWidth()).observe(this);for(let i of this.querySelectorAll(":scope > header > table > thead > tr > th > .tobago-resize"))this.listeners.add(i,"click",function(){return!1}),this.listeners.add(i,"mousedown",this.mousedown.bind(this));let t=this.body;if(!th [...]
 Error Name: ${t.errorName}
@@ -30,7 +30,7 @@ Error errorMessage: ${t.errorMessage}
 Response Code: ${t.responseCode}
 Response Text: ${t.responseText}
 Status: ${t.status}
-Type: ${t.type}`)}initScrollbarFiller(){this.scrollbarFiller&&(this.scrollbarFiller.style.minWidth=n.SCROLL_BAR_SIZE+"px",this.scrollbarFiller.style.maxWidth=n.SCROLL_BAR_SIZE+"px",this.updateScrollbarFillerVisibility(),new ResizeObserver(i=>{for(let s of i)s.target===this.body&&this.updateScrollbarFillerVisibility()}).observe(this.body))}updateScrollbarFillerVisibility(){this.body.offsetWidth>this.body.clientWidth?this.scrollbarFiller.classList.add("tobago-show"):this.scrollbarFiller.cl [...]
+Type: ${t.type}`)}initScrollbarFiller(){this.scrollbarFiller&&(this.scrollbarFiller.style.minWidth=n.SCROLL_BAR_SIZE+"px",this.scrollbarFiller.style.maxWidth=n.SCROLL_BAR_SIZE+"px",this.updateScrollbarFillerVisibility(),new ResizeObserver(i=>{for(let s of i)s.target===this.body&&this.updateScrollbarFillerVisibility()}).observe(this.body))}updateScrollbarFillerVisibility(){this.body.offsetWidth>this.body.clientWidth?this.scrollbarFiller.classList.add("tobago-show"):this.scrollbarFiller.cl [...]
 /*! Bundled license information:
 
 tabbable/dist/index.esm.js:
diff --git a/tobago-theme/tobago-theme-standard/src/main/js/tobago.js.map b/tobago-theme/tobago-theme-standard/src/main/js/tobago.js.map
index 4be28dee87..29a931bdf8 100644
--- a/tobago-theme/tobago-theme-standard/src/main/js/tobago.js.map
+++ b/tobago-theme/tobago-theme-standard/src/main/js/tobago.js.map
@@ -1,7 +1,7 @@
 {
   "version": 3,
-  "sources": ["../ts/tobago-ajax-queue-static.ts", "../ts/tobago-ajax-queue.ts", "../ts/tobago-api.ts", "../ts/tobago-event-listener-store.ts", "../ts/tobago-bar.ts", "../ts/tobago-collapsible-base.ts", "../ts/tobago-box.ts", "../ts/tobago-date.ts", "../ts/tobago-dropdown-item-factory.ts", "../ts/tobago-dropdown-item.ts", "../ts/tobago-dropdown-menu-static.ts", "../ts/tobago-dropdown-menu.ts", "../../../../node_modules/tabbable/src/index.js", "../ts/tobago-dropdown.ts", "../ts/tobago-pag [...]
-  "sourcesContent": ["/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/lice [...]
-  "mappings": "mGAwBO,IAAMA,GAAN,KAAsB,CAC3B,OAAO,QAAQC,EAAoBC,EAAkBC,EAAcC,EACpDC,EAAkC,CAC/C,KAAK,gBAAgBJ,EAAOC,EAASC,CAAK,EAE1C,QAAWG,KAAaL,EACtB,GAAIK,EAAU,UAAYJ,GAAWI,EAAU,OAAO,OAASH,GAAO,MAAQG,EAAU,YACjF,KAAK,UAAUA,EAAU,aAAa,IAAM,KAC1C,UAAU,KAAK,iBAAiBJ,EAASE,GAAS,OAAO,CAAC,GAC5D,KAAK,SAASE,EAAU,UAAW,KAAK,SAASF,GAAS,MAAM,CAAC,EACtE,OAIJH,EAAM,KAAK,CACT,QAASC,EACT,MAAOC,EACP,cAAe,KAAK,iBAAiBD,EAASE,GAAS,OAAO,EAC9D,UAAW,KAAK,SAASA,GAAS,MAAM,EACxC,KAAMC,EACN,WAAY,EACd,CAAC,EACD,KAAK,a [...]
-  "names": ["AjaxQueueStatic", "queue", "element", "event", "options", "facesAjaxRequest", "queueItem", "i", "execute", "payload", "ids", "executeIds", "executeId", "id", "htmlElement", "inputs", "textareas", "input", "option", "textarea", "idString", "idSet", "mainSet", "subSet", "value", "item0", "source", "type", "status", "AjaxQueue", "elementOrId", "event", "options", "element", "currentOnEvent", "data", "currentOnError", "AjaxQueueStatic", "source", "type", "status", "ajaxQueue", " [...]
+  "sources": ["../ts/tobago-page-static.ts", "../ts/tobago-event-listener-store.ts", "../ts/tobago-page.ts", "../ts/tobago-overlay.ts", "../ts/tobago-ajax-queue-static.ts", "../ts/tobago-ajax-queue.ts", "../ts/tobago-api.ts", "../ts/tobago-bar.ts", "../ts/tobago-collapsible-base.ts", "../ts/tobago-box.ts", "../ts/tobago-date.ts", "../ts/tobago-dropdown-item-factory.ts", "../ts/tobago-dropdown-item.ts", "../ts/tobago-dropdown-menu-static.ts", "../ts/tobago-dropdown-menu.ts", "../../../../ [...]
+  "sourcesContent": ["/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/lice [...]
+  "mappings": "mGAmBO,IAAMA,GAAN,KAAiB,CAYtB,OAAO,qBAAqBC,EAA0B,CACpD,GAAIA,GAAY,MAAQA,EAAS,YAAY,GAAG,IAAM,GACpD,OAAO,KAGT,IAAMC,EAAU,MAAM,KAAKD,CAAQ,EACnC,QAAS,EAAIC,EAAQ,OAAS,EAAG,EAAI,EAAG,IACtC,GAAIA,EAAQ,EAAI,CAAC,IAAM,KAAOA,EAAQ,CAAC,IAAM,KAAOA,EAAQ,EAAI,CAAC,IAAM,IACrE,OAAOD,EAAS,UAAU,EAAG,CAAC,EAGlC,OAAO,IACT,CACF,ECzBO,IAAME,EAAN,KAAyB,CAAzB,cACL,KAAQ,UAIF,CAAC,EAEP,IAAIC,EAAsBC,EAAcC,EAAoD,CAC1FF,EAAQ,iBAAiBC,EAAMC,CAAQ,EACvC,KAAK,UAAU,KAAK,CAAC,QAAAF,EAAS,KAAAC,EAAM,SAAAC,CAAQ [...]
+  "names": ["PageStatic", "clientId", "strings", "EventListenerStore", "element", "type", "listener", "value", "Page", "EventListenerStore", "element", "pages", "event", "target", "tobagoFor", "id", "command", "PageStatic", "decoupled", "Overlay", "update", "FacesParameter", "locale", "focusOnError", "waitOverlayDelayFull", "waitOverlayDelayAjax", "_FacesParameter", "Overlay", "_Overlay", "queue", "options", "requestOptionsRenderIds", "ajaxQueueRenderIds", "queueItem", "currentOnEvent",  [...]
 }