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 2023/02/22 15:35:33 UTC

[myfaces-tobago] branch tobago-5.x updated (da72790bed -> 4e3484698d)

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

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


    from da72790bed fix: avoid GitHubs code scanning alert (#3784)
     new 421c9aec75 feat(SelectOne/ManyList): no-entries hint
     new 4e3484698d build(theme): rebuild after impl 'no-entries hint'

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:
 .../renderkit/renderer/SelectManyListRenderer.java |  8 ++++++
 .../renderkit/renderer/SelectOneListRenderer.java  |  8 ++++++
 .../myfaces/tobago/renderkit/css/TobagoClass.java  |  1 +
 tobago-theme/src/main/scss/_tobago.scss            | 11 +++++++-
 .../src/main/css/tobago.css                        | 30 ++++++++++++++++------
 .../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                        | 30 ++++++++++++++++------
 .../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                        | 30 ++++++++++++++++------
 .../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  | 30 ++++++++++++++++------
 .../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  | 30 ++++++++++++++++------
 .../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    |  4 +--
 .../src/main/js/tobago.js.map                      |  2 +-
 .../src/main/ts/tobago-css.ts                      |  1 +
 .../src/main/ts/tobago-select-list-base.ts         | 20 ++++++++++++---
 .../src/main/ts/tobago-select-many-list.ts         | 17 +++---------
 29 files changed, 177 insertions(+), 75 deletions(-)


[myfaces-tobago] 02/02: build(theme): rebuild after impl 'no-entries hint'

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

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

commit 4e3484698d12d4d674f7ff3e2a51d0f2d58cc7f7
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Wed Feb 22 16:05:37 2023 +0100

    build(theme): rebuild after impl 'no-entries hint'
---
 .../src/main/css/tobago.css                        | 30 ++++++++++++++++------
 .../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                        | 30 ++++++++++++++++------
 .../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                        | 30 ++++++++++++++++------
 .../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  | 30 ++++++++++++++++------
 .../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  | 30 ++++++++++++++++------
 .../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    |  4 +--
 .../src/main/js/tobago.js.map                      |  2 +-
 22 files changed, 128 insertions(+), 58 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 f9af53b4f2..09cc961dbd 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
@@ -12108,20 +12108,27 @@ tobago-select-one-list .tobago-options.list-group-item {
 tobago-select-one-list .tobago-options .table {
   margin-bottom: 0;
 }
-tobago-select-one-list .tobago-options .table tr {
+tobago-select-one-list .tobago-options .table tbody tr {
   cursor: pointer;
 }
-tobago-select-one-list .tobago-options .table tr.tobago-disabled {
+tobago-select-one-list .tobago-options .table tbody tr.tobago-disabled {
   color: rgba(160, 160, 160, 0.5);
   background-color: #d0d0d0;
   cursor: initial;
   pointer-events: none;
 }
-tobago-select-one-list .tobago-options .table tr.tobago-preselect {
+tobago-select-one-list .tobago-options .table tbody tr.tobago-preselect {
   --bs-table-accent-bg: var(--bs-table-hover-bg);
   color: var(--bs-table-hover-color);
 }
-tobago-select-one-list .tobago-options .table tr:last-of-type td {
+tobago-select-one-list .tobago-options .table tbody tr:last-of-type td {
+  border-bottom-width: 0;
+}
+tobago-select-one-list .tobago-options .table tfoot tr.tobago-no-entries {
+  color: #adb5bd;
+  text-align: center;
+}
+tobago-select-one-list .tobago-options .table tfoot tr.tobago-no-entries td {
   border-bottom-width: 0;
 }
 
@@ -12247,20 +12254,27 @@ tobago-select-many-list .tobago-options.list-group-item {
 tobago-select-many-list .tobago-options .table {
   margin-bottom: 0;
 }
-tobago-select-many-list .tobago-options .table tr {
+tobago-select-many-list .tobago-options .table tbody tr {
   cursor: pointer;
 }
-tobago-select-many-list .tobago-options .table tr.tobago-disabled {
+tobago-select-many-list .tobago-options .table tbody tr.tobago-disabled {
   color: rgba(160, 160, 160, 0.5);
   background-color: #d0d0d0;
   cursor: initial;
   pointer-events: none;
 }
-tobago-select-many-list .tobago-options .table tr.tobago-preselect {
+tobago-select-many-list .tobago-options .table tbody tr.tobago-preselect {
   --bs-table-accent-bg: var(--bs-table-hover-bg);
   color: var(--bs-table-hover-color);
 }
-tobago-select-many-list .tobago-options .table tr:last-of-type td {
+tobago-select-many-list .tobago-options .table tbody tr:last-of-type td {
+  border-bottom-width: 0;
+}
+tobago-select-many-list .tobago-options .table tfoot tr.tobago-no-entries {
+  color: #adb5bd;
+  text-align: center;
+}
+tobago-select-many-list .tobago-options .table tfoot tr.tobago-no-entries td {
   border-bottom-width: 0;
 }
 tobago-select-many-list .tobago-select-field .btn-group + .tobago-filter {
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 65b574b5c3..6be8c4b938 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,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ 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 97e9f14b5e..706567dfe9 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
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#ff00be;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000000;--bs-white:#ffffff;--bs-gray:#777777;--bs-gray-dark:#323232;--bs-gray-100:#f8f9fa;--bs-gray-200:#d0d0d0;--bs-gray-300:#dee2e6;--bs-gray-400:#a0a0a0;--bs-gray-500:#adb5bd;--bs-gray-600:#777777;--bs-gray-700:#495057;--bs-gray-800:#323232;--bs-gray-900:#212529;--bs [...]
+@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#ff00be;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000000;--bs-white:#ffffff;--bs-gray:#777777;--bs-gray-dark:#323232;--bs-gray-100:#f8f9fa;--bs-gray-200:#d0d0d0;--bs-gray-300:#dee2e6;--bs-gray-400:#a0a0a0;--bs-gray-500:#adb5bd;--bs-gray-600:#777777;--bs-gray-700:#495057;--bs-gray-800:#323232;--bs-gray-900:#212529;--bs [...]
 /*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
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 ddad7a3497..4d600c3a86 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,"sources":["tobago-theme-charlotteville/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,QACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9 [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-charlotteville/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,QACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9 [...]
\ 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 3845f662b1..78f023dc79 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
@@ -12135,20 +12135,27 @@ tobago-select-one-list .tobago-options.list-group-item {
 tobago-select-one-list .tobago-options .table {
   margin-bottom: 0;
 }
-tobago-select-one-list .tobago-options .table tr {
+tobago-select-one-list .tobago-options .table tbody tr {
   cursor: pointer;
 }
-tobago-select-one-list .tobago-options .table tr.tobago-disabled {
+tobago-select-one-list .tobago-options .table tbody tr.tobago-disabled {
   color: rgba(160, 160, 160, 0.5);
   background-color: #e9ecef;
   cursor: initial;
   pointer-events: none;
 }
-tobago-select-one-list .tobago-options .table tr.tobago-preselect {
+tobago-select-one-list .tobago-options .table tbody tr.tobago-preselect {
   --bs-table-accent-bg: var(--bs-table-hover-bg);
   color: var(--bs-table-hover-color);
 }
-tobago-select-one-list .tobago-options .table tr:last-of-type td {
+tobago-select-one-list .tobago-options .table tbody tr:last-of-type td {
+  border-bottom-width: 0;
+}
+tobago-select-one-list .tobago-options .table tfoot tr.tobago-no-entries {
+  color: #adb5bd;
+  text-align: center;
+}
+tobago-select-one-list .tobago-options .table tfoot tr.tobago-no-entries td {
   border-bottom-width: 0;
 }
 
@@ -12274,20 +12281,27 @@ tobago-select-many-list .tobago-options.list-group-item {
 tobago-select-many-list .tobago-options .table {
   margin-bottom: 0;
 }
-tobago-select-many-list .tobago-options .table tr {
+tobago-select-many-list .tobago-options .table tbody tr {
   cursor: pointer;
 }
-tobago-select-many-list .tobago-options .table tr.tobago-disabled {
+tobago-select-many-list .tobago-options .table tbody tr.tobago-disabled {
   color: rgba(160, 160, 160, 0.5);
   background-color: #e9ecef;
   cursor: initial;
   pointer-events: none;
 }
-tobago-select-many-list .tobago-options .table tr.tobago-preselect {
+tobago-select-many-list .tobago-options .table tbody tr.tobago-preselect {
   --bs-table-accent-bg: var(--bs-table-hover-bg);
   color: var(--bs-table-hover-color);
 }
-tobago-select-many-list .tobago-options .table tr:last-of-type td {
+tobago-select-many-list .tobago-options .table tbody tr:last-of-type td {
+  border-bottom-width: 0;
+}
+tobago-select-many-list .tobago-options .table tfoot tr.tobago-no-entries {
+  color: #adb5bd;
+  text-align: center;
+}
+tobago-select-many-list .tobago-options .table tfoot tr.tobago-no-entries td {
   border-bottom-width: 0;
 }
 tobago-select-many-list .tobago-select-field .btn-group + .tobago-filter {
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 57f8717e1c..11441c1ec6 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,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ 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 c71a7fba81..0e9a5b483c 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
@@ -1,2 +1,2 @@
-@charset "UTF-8";@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( [...]
+@charset "UTF-8";@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( [...]
 /*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
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 adb0268b18..80f19a1ea0 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,"sources":["tobago-theme-roxborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAiCA,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,qCAAqC,mBAE5C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,kCAAkC,mBAEzC,WACE,YAAa,SACb,WAAY,OACZ,IAAK,oCAAoC,mBAE3C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,wCAAwC,mBAE/C,mBACE,YAAa,QAAQ,CAAE,KAAK,CAAE,MAShC,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAC [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-roxborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAiCA,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,qCAAqC,mBAE5C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,kCAAkC,mBAEzC,WACE,YAAa,SACb,WAAY,OACZ,IAAK,oCAAoC,mBAE3C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,wCAAwC,mBAE/C,mBACE,YAAa,QAAQ,CAAE,KAAK,CAAE,MAShC,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAC [...]
\ 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 1d773cc742..a12d18f4a0 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
@@ -12109,20 +12109,27 @@ tobago-select-one-list .tobago-options.list-group-item {
 tobago-select-one-list .tobago-options .table {
   margin-bottom: 0;
 }
-tobago-select-one-list .tobago-options .table tr {
+tobago-select-one-list .tobago-options .table tbody tr {
   cursor: pointer;
 }
-tobago-select-one-list .tobago-options .table tr.tobago-disabled {
+tobago-select-one-list .tobago-options .table tbody tr.tobago-disabled {
   color: rgba(33, 37, 41, 0.5);
   background-color: #e9ecef;
   cursor: initial;
   pointer-events: none;
 }
-tobago-select-one-list .tobago-options .table tr.tobago-preselect {
+tobago-select-one-list .tobago-options .table tbody tr.tobago-preselect {
   --bs-table-accent-bg: var(--bs-table-hover-bg);
   color: var(--bs-table-hover-color);
 }
-tobago-select-one-list .tobago-options .table tr:last-of-type td {
+tobago-select-one-list .tobago-options .table tbody tr:last-of-type td {
+  border-bottom-width: 0;
+}
+tobago-select-one-list .tobago-options .table tfoot tr.tobago-no-entries {
+  color: #adb5bd;
+  text-align: center;
+}
+tobago-select-one-list .tobago-options .table tfoot tr.tobago-no-entries td {
   border-bottom-width: 0;
 }
 
@@ -12248,20 +12255,27 @@ tobago-select-many-list .tobago-options.list-group-item {
 tobago-select-many-list .tobago-options .table {
   margin-bottom: 0;
 }
-tobago-select-many-list .tobago-options .table tr {
+tobago-select-many-list .tobago-options .table tbody tr {
   cursor: pointer;
 }
-tobago-select-many-list .tobago-options .table tr.tobago-disabled {
+tobago-select-many-list .tobago-options .table tbody tr.tobago-disabled {
   color: rgba(33, 37, 41, 0.5);
   background-color: #e9ecef;
   cursor: initial;
   pointer-events: none;
 }
-tobago-select-many-list .tobago-options .table tr.tobago-preselect {
+tobago-select-many-list .tobago-options .table tbody tr.tobago-preselect {
   --bs-table-accent-bg: var(--bs-table-hover-bg);
   color: var(--bs-table-hover-color);
 }
-tobago-select-many-list .tobago-options .table tr:last-of-type td {
+tobago-select-many-list .tobago-options .table tbody tr:last-of-type td {
+  border-bottom-width: 0;
+}
+tobago-select-many-list .tobago-options .table tfoot tr.tobago-no-entries {
+  color: #adb5bd;
+  text-align: center;
+}
+tobago-select-many-list .tobago-options .table tfoot tr.tobago-no-entries td {
   border-bottom-width: 0;
 }
 tobago-select-many-list .tobago-select-field .btn-group + .tobago-filter {
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 d593f7f6d1..4797010ab9 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,"sources":["tobago.css","../scss/tobago-theme.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_ [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_ [...]
\ 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 94dcbb3df9..92d31fb64b 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
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--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-prima [...]
+@charset "UTF-8";:root{--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-prima [...]
 /*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
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 a21183acfc..adef77ef1b 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,"sources":["tobago-theme-scarborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAuBA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,i [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-scarborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAuBA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,i [...]
\ 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 a5bfc82f99..1fb25bf9a4 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
@@ -11830,20 +11830,27 @@ tobago-select-one-list .tobago-options.list-group-item {
 tobago-select-one-list .tobago-options .table {
   margin-bottom: 0;
 }
-tobago-select-one-list .tobago-options .table tr {
+tobago-select-one-list .tobago-options .table tbody tr {
   cursor: pointer;
 }
-tobago-select-one-list .tobago-options .table tr.tobago-disabled {
+tobago-select-one-list .tobago-options .table tbody tr.tobago-disabled {
   color: rgba(33, 37, 41, 0.5);
   background-color: #e3e4e5;
   cursor: initial;
   pointer-events: none;
 }
-tobago-select-one-list .tobago-options .table tr.tobago-preselect {
+tobago-select-one-list .tobago-options .table tbody tr.tobago-preselect {
   --bs-table-accent-bg: var(--bs-table-hover-bg);
   color: var(--bs-table-hover-color);
 }
-tobago-select-one-list .tobago-options .table tr:last-of-type td {
+tobago-select-one-list .tobago-options .table tbody tr:last-of-type td {
+  border-bottom-width: 0;
+}
+tobago-select-one-list .tobago-options .table tfoot tr.tobago-no-entries {
+  color: #acacac;
+  text-align: center;
+}
+tobago-select-one-list .tobago-options .table tfoot tr.tobago-no-entries td {
   border-bottom-width: 0;
 }
 
@@ -11969,20 +11976,27 @@ tobago-select-many-list .tobago-options.list-group-item {
 tobago-select-many-list .tobago-options .table {
   margin-bottom: 0;
 }
-tobago-select-many-list .tobago-options .table tr {
+tobago-select-many-list .tobago-options .table tbody tr {
   cursor: pointer;
 }
-tobago-select-many-list .tobago-options .table tr.tobago-disabled {
+tobago-select-many-list .tobago-options .table tbody tr.tobago-disabled {
   color: rgba(33, 37, 41, 0.5);
   background-color: #e3e4e5;
   cursor: initial;
   pointer-events: none;
 }
-tobago-select-many-list .tobago-options .table tr.tobago-preselect {
+tobago-select-many-list .tobago-options .table tbody tr.tobago-preselect {
   --bs-table-accent-bg: var(--bs-table-hover-bg);
   color: var(--bs-table-hover-color);
 }
-tobago-select-many-list .tobago-options .table tr:last-of-type td {
+tobago-select-many-list .tobago-options .table tbody tr:last-of-type td {
+  border-bottom-width: 0;
+}
+tobago-select-many-list .tobago-options .table tfoot tr.tobago-no-entries {
+  color: #acacac;
+  text-align: center;
+}
+tobago-select-many-list .tobago-options .table tfoot tr.tobago-no-entries td {
   border-bottom-width: 0;
 }
 tobago-select-many-list .tobago-select-field .btn-group + .tobago-filter {
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 e4d5257115..2e1c6b54ce 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,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_modules/bootstrap/scss/mixins/_lists.scss",".. [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_modules/bootstrap/scss/mixins/_lists.scss",".. [...]
\ 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 d4b65bcb5a..2612b28c53 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
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:rgb(58, 37, 100);--bs-pink:#d63384;--bs-red:rgb(211, 0, 64);--bs-orange:#d90;--bs-yellow:#ffc107;--bs-green:rgb(29, 163, 50);--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:rgb(120, 140, 148);--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:rgb(120, 140, 148);--bs-gray-700:#55595c;--bs-gray [...]
+@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:rgb(58, 37, 100);--bs-pink:#d63384;--bs-red:rgb(211, 0, 64);--bs-orange:#d90;--bs-yellow:#ffc107;--bs-green:rgb(29, 163, 50);--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:rgb(120, 140, 148);--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:rgb(120, 140, 148);--bs-gray-700:#55595c;--bs-gray [...]
 /*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
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 028376efb9..ab2605436b 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,"sources":["tobago-theme-speyside/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,iBACb,UAAW,QACX,SAAU,gBACV,YAAa,KACb,YAAa,QACb,WAAY,iBACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,mBACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,mBACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,gBACd,eAAgB,QAChB,aAAc,iBACd,UAAW,QACX,aAAc,QACd,YAAa,gBACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,EAAE,CAAE,GAC1B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IA [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-speyside/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,iBACb,UAAW,QACX,SAAU,gBACV,YAAa,KACb,YAAa,QACb,WAAY,iBACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,mBACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,mBACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,gBACd,eAAgB,QAChB,aAAc,iBACd,UAAW,QACX,aAAc,QACd,YAAa,gBACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,EAAE,CAAE,GAC1B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IA [...]
\ 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 67558f7fb0..eb9d8f9abe 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
@@ -12092,20 +12092,27 @@ tobago-select-one-list .tobago-options.list-group-item {
 tobago-select-one-list .tobago-options .table {
   margin-bottom: 0;
 }
-tobago-select-one-list .tobago-options .table tr {
+tobago-select-one-list .tobago-options .table tbody tr {
   cursor: pointer;
 }
-tobago-select-one-list .tobago-options .table tr.tobago-disabled {
+tobago-select-one-list .tobago-options .table tbody tr.tobago-disabled {
   color: rgba(33, 37, 41, 0.5);
   background-color: #e9ecef;
   cursor: initial;
   pointer-events: none;
 }
-tobago-select-one-list .tobago-options .table tr.tobago-preselect {
+tobago-select-one-list .tobago-options .table tbody tr.tobago-preselect {
   --bs-table-accent-bg: var(--bs-table-hover-bg);
   color: var(--bs-table-hover-color);
 }
-tobago-select-one-list .tobago-options .table tr:last-of-type td {
+tobago-select-one-list .tobago-options .table tbody tr:last-of-type td {
+  border-bottom-width: 0;
+}
+tobago-select-one-list .tobago-options .table tfoot tr.tobago-no-entries {
+  color: #adb5bd;
+  text-align: center;
+}
+tobago-select-one-list .tobago-options .table tfoot tr.tobago-no-entries td {
   border-bottom-width: 0;
 }
 
@@ -12231,20 +12238,27 @@ tobago-select-many-list .tobago-options.list-group-item {
 tobago-select-many-list .tobago-options .table {
   margin-bottom: 0;
 }
-tobago-select-many-list .tobago-options .table tr {
+tobago-select-many-list .tobago-options .table tbody tr {
   cursor: pointer;
 }
-tobago-select-many-list .tobago-options .table tr.tobago-disabled {
+tobago-select-many-list .tobago-options .table tbody tr.tobago-disabled {
   color: rgba(33, 37, 41, 0.5);
   background-color: #e9ecef;
   cursor: initial;
   pointer-events: none;
 }
-tobago-select-many-list .tobago-options .table tr.tobago-preselect {
+tobago-select-many-list .tobago-options .table tbody tr.tobago-preselect {
   --bs-table-accent-bg: var(--bs-table-hover-bg);
   color: var(--bs-table-hover-color);
 }
-tobago-select-many-list .tobago-options .table tr:last-of-type td {
+tobago-select-many-list .tobago-options .table tbody tr:last-of-type td {
+  border-bottom-width: 0;
+}
+tobago-select-many-list .tobago-options .table tfoot tr.tobago-no-entries {
+  color: #adb5bd;
+  text-align: center;
+}
+tobago-select-many-list .tobago-options .table tfoot tr.tobago-no-entries td {
   border-bottom-width: 0;
 }
 tobago-select-many-list .tobago-select-field .btn-group + .tobago-filter {
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 1b11f6d38c..5f29b8ef91 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,"sources":["tobago.css","../scss/tobago-theme.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_ [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_ [...]
\ 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 6d9612113e..ed7e7d061b 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
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--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-prima [...]
+@charset "UTF-8";:root{--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-prima [...]
 /*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
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 9787bdff9a..e5b5d3fa87 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,"sources":["tobago-theme-standard/src/main/css/tobago.css"],"names":[],"mappings":"iBAuBA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,iBAA [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-standard/src/main/css/tobago.css"],"names":[],"mappings":"iBAuBA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,iBAA [...]
\ 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 2523bc03b8..38ad842706 100644
--- a/tobago-theme/tobago-theme-standard/src/main/js/tobago.js
+++ b/tobago-theme/tobago-theme-standard/src/main/js/tobago.js
@@ -1,10 +1,10 @@
-!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";var e;!function(e){e.ACTIVE="active",e.AUTOCOMPLETE="autocomplete",e.AUTOCOMPLETE_INPUT="autocomplete-input",e.COLLAPSE="collapse",e.COLLAPSING="collapsing",e.D_NONE="d-none",e.DISABLED="disabled",e.DROPDOWN_MENU="dropdown-menu",e.FIXED_BOTTOM="fixed-bottom",e.INPUT_GROUP="input-group",e.POSITION_RELATIVE="position-relative",e.SHOW="show",e.TABLE_ACTIVE="table-active",e.TABLE_INFO="table-info",e.TA [...]
+!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";var e;!function(e){e.ACTIVE="active",e.AUTOCOMPLETE="autocomplete",e.AUTOCOMPLETE_INPUT="autocomplete-input",e.COLLAPSE="collapse",e.COLLAPSING="collapsing",e.D_NONE="d-none",e.DISABLED="disabled",e.DROPDOWN_MENU="dropdown-menu",e.FIXED_BOTTOM="fixed-bottom",e.INPUT_GROUP="input-group",e.POSITION_RELATIVE="position-relative",e.SHOW="show",e.TABLE_ACTIVE="table-active",e.TABLE_INFO="table-info",e.TA [...]
 /*!
       * Bootstrap v5.2.3 (https://getbootstrap.com/)
       * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
       * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
       */
-const Me="transitionend",Be=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let s=e.getAttribute("href");if(!s||!s.includes("#")&&!s.startsWith("."))return null;s.includes("#")&&!s.startsWith("#")&&(s=`#${s.split("#")[1]}`),t=s&&"#"!==s?s.trim():null}return t},Pe=e=>{const t=Be(e);return t&&document.querySelector(t)?t:null},$e=e=>{const t=Be(e);return t?document.querySelector(t):null},He=e=>{e.dispatchEvent(new Event(Me))},je=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&( [...]
+const Me="transitionend",Be=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let s=e.getAttribute("href");if(!s||!s.includes("#")&&!s.startsWith("."))return null;s.includes("#")&&!s.startsWith("#")&&(s=`#${s.split("#")[1]}`),t=s&&"#"!==s?s.trim():null}return t},Pe=e=>{const t=Be(e);return t&&document.querySelector(t)?t:null},$e=e=>{const t=Be(e);return t?document.querySelector(t):null},He=e=>{e.dispatchEvent(new Event(Me))},je=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&( [...]
 /**
      * @license
      * Copyright 2017 Google LLC
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 4e9d25af1b..c6fb8ff409 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 +1 @@
-{"version":3,"file":"tobago.js","sources":["../ts/tobago-css.ts","../ts/tobago-bar.ts","../../../../node_modules/@popperjs/core/lib/enums.js","../../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.j [...]
\ No newline at end of file
+{"version":3,"file":"tobago.js","sources":["../ts/tobago-css.ts","../ts/tobago-bar.ts","../../../../node_modules/@popperjs/core/lib/enums.js","../../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.j [...]
\ No newline at end of file


[myfaces-tobago] 01/02: feat(SelectOne/ManyList): no-entries hint

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

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

commit 421c9aec750ad4897dcaab896008d7778fc44900
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Wed Feb 22 15:55:08 2023 +0100

    feat(SelectOne/ManyList): no-entries hint
    
    * add a <tfoot> which contains the no-entries hint
    * style tobago-no-entries class
    * do some cleanup
    
    Issue: TOBAGO-2196
---
 .../renderkit/renderer/SelectManyListRenderer.java   |  8 ++++++++
 .../renderkit/renderer/SelectOneListRenderer.java    |  8 ++++++++
 .../myfaces/tobago/renderkit/css/TobagoClass.java    |  1 +
 tobago-theme/src/main/scss/_tobago.scss              | 11 ++++++++++-
 .../tobago-theme-standard/src/main/ts/tobago-css.ts  |  1 +
 .../src/main/ts/tobago-select-list-base.ts           | 20 +++++++++++++++++---
 .../src/main/ts/tobago-select-many-list.ts           | 17 ++++-------------
 7 files changed, 49 insertions(+), 17 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyListRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyListRenderer.java
index a280210f0f..5d153d5c06 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyListRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyListRenderer.java
@@ -198,6 +198,14 @@ public class SelectManyListRenderer<T extends AbstractUISelectManyList> extends
     }
 
     writer.endElement(HtmlElements.TBODY);
+    writer.startElement(HtmlElements.TFOOT);
+    writer.startElement(HtmlElements.TR);
+    writer.writeClassAttribute(TobagoClass.NO__ENTRIES, BootstrapClass.D_NONE);
+    writer.startElement(HtmlElements.TD);
+    writer.writeText("---");
+    writer.endElement(HtmlElements.TD);
+    writer.endElement(HtmlElements.TR);
+    writer.endElement(HtmlElements.TFOOT);
     writer.endElement(HtmlElements.TABLE);
     writer.endElement(HtmlElements.DIV);
   }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneListRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneListRenderer.java
index 655712cf31..7ea3b91d97 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneListRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneListRenderer.java
@@ -170,6 +170,14 @@ public class SelectOneListRenderer<T extends AbstractUISelectOneList> extends Se
     }
 
     writer.endElement(HtmlElements.TBODY);
+    writer.startElement(HtmlElements.TFOOT);
+    writer.startElement(HtmlElements.TR);
+    writer.writeClassAttribute(TobagoClass.NO__ENTRIES, BootstrapClass.D_NONE);
+    writer.startElement(HtmlElements.TD);
+    writer.writeText("---");
+    writer.endElement(HtmlElements.TD);
+    writer.endElement(HtmlElements.TR);
+    writer.endElement(HtmlElements.TFOOT);
     writer.endElement(HtmlElements.TABLE);
     writer.endElement(HtmlElements.DIV);
   }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
index 4e6efa107e..5cb5f87303 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
@@ -68,6 +68,7 @@ public enum TobagoClass implements CssItem {
   MESSAGES__CONTAINER("tobago-messages-container"),
   NOW("tobago-now"),
   NUMBER("tobago-number"),
+  NO__ENTRIES("tobago-no-entries"),
   NONE("tobago-none"),
   OBJECT("tobago-object"),
   OPTIONS("tobago-options"),
diff --git a/tobago-theme/src/main/scss/_tobago.scss b/tobago-theme/src/main/scss/_tobago.scss
index 3440fae36c..1d026a45d6 100644
--- a/tobago-theme/src/main/scss/_tobago.scss
+++ b/tobago-theme/src/main/scss/_tobago.scss
@@ -294,7 +294,7 @@ $form-select-disabled-color: rgba($form-select-color, $tobago-form-disabled-alph
     .table {
       margin-bottom: 0;
 
-      tr {
+      tbody tr {
         cursor: pointer;
 
         &.tobago-disabled {
@@ -316,6 +316,15 @@ $form-select-disabled-color: rgba($form-select-color, $tobago-form-disabled-alph
           }
         }
       }
+
+      tfoot tr.tobago-no-entries {
+        color: $dropdown-link-disabled-color;
+        text-align: center;
+
+        td {
+          border-bottom-width: 0;
+        }
+      }
     }
   }
 }
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-css.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-css.ts
index 1a60284c5e..e3fed5d73e 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-css.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-css.ts
@@ -39,6 +39,7 @@ export enum Css {
   TOBAGO_DROPDOWN_SUBMENU = "tobago-dropdown-submenu",
   TOBAGO_EXPANDED = "tobago-expanded",
   TOBAGO_FOCUS = "tobago-focus",
+  TOBAGO_NO_ENTRIES = "tobago-no-entries",
   TOBAGO_OPTIONS = "tobago-options",
   TOBAGO_PLACEHOLDER = "tobago-placeholder",
   TOBAGO_PRESELECT = "tobago-preselect",
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-select-list-base.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-select-list-base.ts
index 28abdb16c8..1f68547a91 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-select-list-base.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-select-list-base.ts
@@ -64,9 +64,13 @@ export abstract class SelectListBase extends HTMLElement {
     return root.querySelector(`.dropdown-menu[name='${this.id}']`);
   }
 
-  get tbody(): HTMLElement {
+  get options(): HTMLElement {
     const root = this.getRootNode() as ShadowRoot | Document;
-    return root.querySelector(`.tobago-options[name='${this.id}'] tbody`);
+    return root.querySelector(`.tobago-options[name='${this.id}'] table`);
+  }
+
+  get tbody(): HTMLElement {
+    return this.options.querySelector("tbody");
   }
 
   get rows(): NodeListOf<HTMLTableRowElement> {
@@ -162,17 +166,27 @@ export abstract class SelectListBase extends HTMLElement {
     this.showDropdown();
     const filterFunction = TobagoFilterRegistry.get(this.filter);
     // XXX todo: if filterFunction not found?
+
+    let entriesCount = 0;
     if (filterFunction != null) {
-      this.querySelectorAll("tr").forEach(row => {
+      this.rows.forEach(row => {
         const itemValue = row.dataset.tobagoValue;
         if (filterFunction(itemValue, searchString)) {
           row.classList.remove(Css.D_NONE);
+          entriesCount++;
         } else {
           row.classList.add(Css.D_NONE);
           row.classList.remove(Css.TOBAGO_PRESELECT);
         }
       });
     }
+
+    const noEntriesHint = this.options.querySelector("." + Css.TOBAGO_NO_ENTRIES);
+    if (entriesCount === 0) {
+      noEntriesHint.classList.remove(Css.D_NONE);
+    } else {
+      noEntriesHint.classList.add(Css.D_NONE);
+    }
   }
 
   private tbodyClickEvent(event: MouseEvent): void {
diff --git a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-select-many-list.ts b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-select-many-list.ts
index baf3a1c154..bc3585922e 100644
--- a/tobago-theme/tobago-theme-standard/src/main/ts/tobago-select-many-list.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/ts/tobago-select-many-list.ts
@@ -17,7 +17,7 @@
 
 import {SelectListBase} from "./tobago-select-list-base";
 import {Css} from "./tobago-css";
-import {html, HTMLTemplateResult, render, TemplateResult} from "lit-html";
+import {html, HTMLTemplateResult, render} from "lit-html";
 
 class SelectManyList extends SelectListBase {
   constructor() {
@@ -74,18 +74,10 @@ class SelectManyList extends SelectListBase {
       const tabIndex: number = this.filterInput.tabIndex;
       const span = document.createElement("span");
       span.className = "btn-group";
-      span.role="group";
+      span.role = "group";
       span.dataset.tobagoValue = itemValue;
       this.filterInput.insertAdjacentElement("beforebegin", span);
-      render(
-          this.getRowTemplate(row.innerText, option.disabled || this.hiddenSelect.disabled, tabIndex), span);
-
-      // todo: nicer adding the @click with lit-html
-      // const closeButton = this.selectField
-      //     .querySelector(".btn-group[data-tobago-value='" + itemValue + "'] button.btn.badge");
-      // closeButton?.addEventListener("click", this.removeBadge.bind(this));
-      // closeButton?.addEventListener("focus", this.focusEvent.bind(this));
-      // closeButton?.addEventListener("blur", this.blurEvent.bind(this));
+      render(this.getRowTemplate(row.innerText, option.disabled || this.hiddenSelect.disabled, tabIndex), span);
 
       row.classList.add(Css.TABLE_PRIMARY); // highlight list row
     } else {
@@ -117,8 +109,7 @@ class SelectManyList extends SelectListBase {
     }
   }
 
-
- private getRowTemplate(text: string, disabled: boolean, tabIndex: number): HTMLTemplateResult {
+  private getRowTemplate(text: string, disabled: boolean, tabIndex: number): HTMLTemplateResult {
     console.debug("creating span: ", text, disabled, tabIndex);
     return disabled
         ? html`<tobago-badge class="badge text-bg-primary btn disabled">${text}</tobago-badge>`