You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2020/07/29 13:36:15 UTC

[myfaces-tobago] branch master updated (43c240e -> 52d3590)

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

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


    from 43c240e  TOBAGO-1843: Demo * removing attic stuff
     new 1a7cfae  TOBAGO-1843: Demo * commenting a todo
     new 81dcdbf  removing invalid map file reference
     new 52d3590  TOBAGO-2001 reimplement tobago-suggest

The 3 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:
 tobago-core/src/main/resources/scss/_tobago.scss   | 100 +++++++++
 .../src/main/webapp/WEB-INF/tobago-config.xml      |   2 +-
 .../webapp/content/10-intro/20-docker/Docker.xhtml |   1 +
 .../webapp/content/10-intro/20-docker/docker.js    |  13 +-
 .../webapp/content/10-intro/20-docker/docker.ts    |   2 +
 .../src/main/npm/package-lock.json                 | 225 +-------------------
 .../src/main/npm/package.json                      |   3 +-
 .../src/main/npm/package-lock.json                 | 225 +-------------------
 .../src/main/npm/package.json                      |   3 +-
 .../src/main/npm/package-lock.json                 | 225 +-------------------
 .../src/main/npm/package.json                      |   3 +-
 .../src/main/npm/package-lock.json                 | 225 +-------------------
 .../src/main/npm/package.json                      |   3 +-
 .../src/main/npm/js/jsf-development.js             |   3 +-
 .../tobago-theme-standard/src/main/npm/js/jsf.js   |   3 +-
 .../src/main/npm/package-lock.json                 | 229 +--------------------
 .../src/main/npm/package.json                      |   3 +-
 .../src/main/npm/ts/tobago-all.ts                  |   1 -
 .../src/main/npm/ts/tobago-suggest.ts              | 153 +++-----------
 19 files changed, 195 insertions(+), 1227 deletions(-)


[myfaces-tobago] 01/03: TOBAGO-1843: Demo * commenting a todo

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

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

commit 1a7cfae2b776f38ff07e38a4c9098da7087a5abc
Author: Udo Schnurpfeil <ud...@irian.eu>
AuthorDate: Fri Jul 17 08:10:14 2020 +0200

    TOBAGO-1843: Demo
    * commenting a todo
---
 .../src/main/webapp/content/10-intro/20-docker/Docker.xhtml |  1 +
 .../src/main/webapp/content/10-intro/20-docker/docker.js    | 13 +++++++------
 .../src/main/webapp/content/10-intro/20-docker/docker.ts    |  2 ++
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/Docker.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/Docker.xhtml
index def4754..5e6d2c4 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/Docker.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/Docker.xhtml
@@ -28,6 +28,7 @@
     just run it in Docker.
   </p>
 
+<!-- XXX TODO: <tc:script file="docker.js" type="module"/>-->
   <tc:script file="docker.js"/>
 
   <tc:section id="cli" label="Command Line Configurator">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/docker.js b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/docker.js
index 6c6b579..f4bc7be 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/docker.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/docker.js
@@ -1,3 +1,4 @@
+"use strict";
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -14,9 +15,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-import {Listener, Phase} from "../tobago/standard/tobago-bootstrap/5.0.0-SNAPSHOT/js/tobago-listener";
-
+exports.__esModule = true;
+// fixme: better don't use Listener and Phase?
+// import {Listener, Phase} from "../tobago/standard/5.0.0-SNAPSHOT/js/bundle";
+var tobago_listener_1 = require("../tobago/standard/5.0.0-SNAPSHOT/js/tobago-listener");
 var Demo;
 (function (Demo) {
     var ToClipboardButton;
@@ -52,8 +54,7 @@ var Demo;
         var init = function () {
             document.querySelectorAll("[data-copy-clipboard-from]").forEach(function (value) { return new ToClipboardButton(value); });
         };
-        Listener.register(init, Phase.DOCUMENT_READY);
-        Listener.register(init, Phase.AFTER_UPDATE);
+        tobago_listener_1.Listener.register(init, tobago_listener_1.Phase.DOCUMENT_READY);
+        tobago_listener_1.Listener.register(init, tobago_listener_1.Phase.AFTER_UPDATE);
     })(ToClipboardButton = Demo.ToClipboardButton || (Demo.ToClipboardButton = {}));
 })(Demo || (Demo = {}));
-//# sourceMappingURL=docker.js.map
\ No newline at end of file
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/docker.ts b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/docker.ts
index 5207143..87e6fa8 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/docker.ts
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/10-intro/20-docker/docker.ts
@@ -15,6 +15,8 @@
  * limitations under the License.
  */
 
+// fixme: better don't use Listener and Phase?
+// import {Listener, Phase} from "../tobago/standard/5.0.0-SNAPSHOT/js/bundle";
 import {Listener, Phase} from "../tobago/standard/5.0.0-SNAPSHOT/js/tobago-listener";
 
 module Demo.ToClipboardButton {


[myfaces-tobago] 02/03: removing invalid map file reference

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

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

commit 81dcdbfc05c9e2c8ed730ae4a7b568d6d8ec71ed
Author: Udo Schnurpfeil <ud...@irian.eu>
AuthorDate: Wed Jul 29 15:07:41 2020 +0200

    removing invalid map file reference
---
 tobago-theme/tobago-theme-standard/src/main/npm/js/jsf-development.js | 3 +--
 tobago-theme/tobago-theme-standard/src/main/npm/js/jsf.js             | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/tobago-theme/tobago-theme-standard/src/main/npm/js/jsf-development.js b/tobago-theme/tobago-theme-standard/src/main/npm/js/jsf-development.js
index e935500..7f6cfe5 100644
--- a/tobago-theme/tobago-theme-standard/src/main/npm/js/jsf-development.js
+++ b/tobago-theme/tobago-theme-standard/src/main/npm/js/jsf-development.js
@@ -6581,5 +6581,4 @@ exports.XhrRequest = XhrRequest;
 /***/ })
 
 /******/ })));
-//# sourceMappingURL=jsf-development.js.map
-//# sourceMappingURL=jsf-development.js.map.jsf?ln=scripts
\ No newline at end of file
+//# sourceMappingURL=jsf-development.js.map
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/npm/js/jsf.js b/tobago-theme/tobago-theme-standard/src/main/npm/js/jsf.js
index 65717c4..b13c4c2 100644
--- a/tobago-theme/tobago-theme-standard/src/main/npm/js/jsf.js
+++ b/tobago-theme/tobago-theme-standard/src/main/npm/js/jsf.js
@@ -1,3 +1,2 @@
 !function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e, [...]
-//# sourceMappingURL=jsf.js.map
-//# sourceMappingURL=jsf.js.map.jsf?ln=scripts
\ No newline at end of file
+//# sourceMappingURL=jsf.js.map
\ No newline at end of file


[myfaces-tobago] 03/03: TOBAGO-2001 reimplement tobago-suggest

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

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

commit 52d359072eebde02447ceced79fab32bc704ab8d
Author: Udo Schnurpfeil <ud...@irian.eu>
AuthorDate: Wed Jul 29 15:35:04 2020 +0200

    TOBAGO-2001 reimplement tobago-suggest
    
    Evaluate a suggest implementation without jQuery - Replace suggest implementation with @trevoreyre/autocomplete
---
 tobago-core/src/main/resources/scss/_tobago.scss   | 100 +++++++++
 .../src/main/webapp/WEB-INF/tobago-config.xml      |   2 +-
 .../src/main/npm/package-lock.json                 | 225 +-------------------
 .../src/main/npm/package.json                      |   3 +-
 .../src/main/npm/package-lock.json                 | 225 +-------------------
 .../src/main/npm/package.json                      |   3 +-
 .../src/main/npm/package-lock.json                 | 225 +-------------------
 .../src/main/npm/package.json                      |   3 +-
 .../src/main/npm/package-lock.json                 | 225 +-------------------
 .../src/main/npm/package.json                      |   3 +-
 .../src/main/npm/package-lock.json                 | 229 +--------------------
 .../src/main/npm/package.json                      |   3 +-
 .../src/main/npm/ts/tobago-all.ts                  |   1 -
 .../src/main/npm/ts/tobago-suggest.ts              | 153 +++-----------
 14 files changed, 183 insertions(+), 1217 deletions(-)

diff --git a/tobago-core/src/main/resources/scss/_tobago.scss b/tobago-core/src/main/resources/scss/_tobago.scss
index 3ad44aa..4f6bcd9 100644
--- a/tobago-core/src/main/resources/scss/_tobago.scss
+++ b/tobago-core/src/main/resources/scss/_tobago.scss
@@ -1422,6 +1422,106 @@ tobago-suggest {
   display: none;
 }
 
+// modified styles taken from @trevoreyre/autocomplete-js 2.2.0
+// begin
+
+.autocomplete-input {
+  /*border: 1px solid #eee;*/
+  /*border-radius: 8px;*/
+  /*width: 100%;*/
+  /*padding: 12px 12px 12px 48px;*/
+  /*box-sizing: border-box;*/
+  /*position: relative;*/
+  /*font-size: 16px;*/
+  /*line-height: 1.5;*/
+  /*flex: 1;*/
+  /*background-color: #eee;*/
+  /*background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNjY2IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iOCIvPjxwYXRoIGQ9Ik0yMSAyMWwtNC00Ii8+PC9zdmc+");*/
+  /*background-repeat: no-repeat;*/
+  /*background-position: 12px*/
+}
+
+.autocomplete-input:focus, .autocomplete-input[aria-expanded=true] {
+  /*border-color: rgba(0, 0, 0, .12);*/
+  /*background-color: #fff;*/
+  /*outline: none;*/
+  /*box-shadow: 0 2px 2px rgba(0, 0, 0, .16)*/
+}
+
+[data-position=below] .autocomplete-input[aria-expanded=true] {
+  border-bottom-color: transparent;
+  border-radius: 8px 8px 0 0
+}
+
+[data-position=above] .autocomplete-input[aria-expanded=true] {
+  border-top-color: transparent;
+  border-radius: 0 0 8px 8px;
+  z-index: 2
+}
+
+.autocomplete[data-loading=true]:after {
+  content: "";
+  border: 3px solid rgba(0, 0, 0, .12);
+  border-right-color: rgba(0, 0, 0, .48);
+  border-radius: 100%;
+  width: 20px;
+  height: 20px;
+  position: absolute;
+  right: 12px;
+  top: 50%;
+  transform: translateY(-50%);
+  animation: rotate 1s linear infinite
+}
+
+.autocomplete-result-list {
+  margin: 0;
+  border: 1px solid rgba(0, 0, 0, .12);
+  padding: 0;
+  box-sizing: border-box;
+  max-height: 296px;
+  overflow-y: auto;
+  background: #fff;
+  list-style: none;
+  box-shadow: 0 2px 2px rgba(0, 0, 0, .16)
+}
+
+[data-position=below] .autocomplete-result-list {
+  margin-top: -1px;
+  border-top-color: transparent;
+  border-radius: 0 0 8px 8px;
+  padding-bottom: 8px
+}
+
+[data-position=above] .autocomplete-result-list {
+  margin-bottom: -1px;
+  border-bottom-color: transparent;
+  border-radius: 8px 8px 0 0;
+  padding-top: 8px
+}
+
+.autocomplete-result {
+  cursor: default;
+  padding: 12px 12px 12px 48px;
+  /*background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjY2NjIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iOCIvPjxwYXRoIGQ9Ik0yMSAyMWwtNC00Ii8+PC9zdmc+");*/
+  /*background-repeat: no-repeat;*/
+  /*background-position: 12px*/
+}
+
+.autocomplete-result:hover, .autocomplete-result[aria-selected=true] {
+  background-color: rgba(0, 0, 0, .06)
+}
+
+@keyframes rotate {
+  0% {
+    transform: translateY(-50%) rotate(0deg)
+  }
+  to {
+    transform: translateY(-50%) rotate(359deg)
+  }
+}
+
+// end
+
 /* tab / tab-group ----------------------------------------------------------------- */
 .tobago-tabGroup, .tobago-tab, .tobago-tab-content {
 }
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/tobago-config.xml b/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/tobago-config.xml
index f296f3c..12c6a3f 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/tobago-config.xml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/tobago-config.xml
@@ -47,7 +47,7 @@
   <!-- This is needed for the testing functionality of the demo, it works with iframes -->
   <prevent-frame-attacks>false</prevent-frame-attacks>
 
-  <content-security-policy mode="off">
+  <content-security-policy mode="on">
     <!-- script-src: 'unsafe-inline' is required for WebSockets -->
 <!--    <directive name="script-src">'unsafe-inline'</directive>-->
     <!-- needed for <tc:object>  -->
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/npm/package-lock.json b/tobago-theme/tobago-theme-charlotteville/src/main/npm/package-lock.json
index f66e683..fbdfe78 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/npm/package-lock.json
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/npm/package-lock.json
@@ -56,91 +56,15 @@
         "fastq": "^1.6.0"
       }
     },
-    "@polymer/iron-a11y-announcer": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-announcer/-/iron-a11y-announcer-3.1.0.tgz",
-      "integrity": "sha512-lc5i4NKB8kSQHH0Hwu8WS3ym93m+J69OHJWSSBxwd17FI+h2wmgxDzeG9LI4ojMMck17/uc2pLe7g/UHt5/K/A==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-a11y-keys-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-keys-behavior/-/iron-a11y-keys-behavior-3.0.1.tgz",
-      "integrity": "sha512-lnrjKq3ysbBPT/74l0Fj0U9H9C35Tpw2C/tpJ8a+5g8Y3YJs1WSZYnEl1yOkw6sEyaxOq/1DkzH0+60gGu5/PQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-flex-layout": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-flex-layout/-/iron-flex-layout-3.0.1.tgz",
-      "integrity": "sha512-7gB869czArF+HZcPTVSgvA7tXYFze9EKckvM95NB7SqYF+NnsQyhoXgKnpFwGyo95lUjUW9TFDLUwDXnCYFtkw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-icon": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-icon/-/iron-icon-3.0.1.tgz",
-      "integrity": "sha512-QLPwirk+UPZNaLnMew9VludXA4CWUCenRewgEcGYwdzVgDPCDbXxy6vRJjmweZobMQv/oVLppT2JZtJFnPxX6g==",
-      "requires": {
-        "@polymer/iron-flex-layout": "^3.0.0-pre.26",
-        "@polymer/iron-meta": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-iconset-svg": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-iconset-svg/-/iron-iconset-svg-3.0.1.tgz",
-      "integrity": "sha512-XNwURbNHRw6u2fJe05O5fMYye6GSgDlDqCO+q6K1zAnKIrpgZwf2vTkBd5uCcZwsN0FyCB3mvNZx4jkh85dRDw==",
-      "requires": {
-        "@polymer/iron-meta": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-list": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-list/-/iron-list-3.1.0.tgz",
-      "integrity": "sha512-Eiv6xd3h3oPmn8SXFntXVfC3ZnegH+KHAxiKLKcOASFSRY3mHnr2AdcnExUJ9ItoCMA5UzKaM/0U22eWzGERtA==",
-      "requires": {
-        "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.26",
-        "@polymer/iron-resizable-behavior": "^3.0.0-pre.26",
-        "@polymer/iron-scroll-target-behavior": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-meta": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-meta/-/iron-meta-3.0.1.tgz",
-      "integrity": "sha512-pWguPugiLYmWFV9UWxLWzZ6gm4wBwQdDy4VULKwdHCqR7OP7u98h+XDdGZsSlDPv6qoryV/e3tGHlTIT0mbzJA==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-resizable-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-resizable-behavior/-/iron-resizable-behavior-3.0.1.tgz",
-      "integrity": "sha512-FyHxRxFspVoRaeZSWpT3y0C9awomb4tXXolIJcZ7RvXhMP632V5lez+ch5G5SwK0LpnAPkg35eB0LPMFv+YMMQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-scroll-target-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-scroll-target-behavior/-/iron-scroll-target-behavior-3.0.1.tgz",
-      "integrity": "sha512-xg1WanG25BIkQE8rhuReqY9zx1K5M7F+YAIYpswEp5eyDIaZ1Y3vUmVeQ3KG+hiSugzI1M752azXN7kvyhOBcQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
+    "@trevoreyre/autocomplete": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@trevoreyre/autocomplete/-/autocomplete-2.2.0.tgz",
+      "integrity": "sha512-GMd2zgWcAK7TJl2h4med2duYjNlthao89xx1dL3PCfTeitOjztVUkmfsklaonEY5mhW6PaMF4cH/vtf8Xwi5eg=="
     },
-    "@polymer/polymer": {
-      "version": "3.4.1",
-      "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.4.1.tgz",
-      "integrity": "sha512-KPWnhDZibtqKrUz7enIPOiO4ZQoJNOuLwqrhV2MXzIt3VVnUVJVG5ORz4Z2sgO+UZ+/UZnPD0jqY+jmw/+a9mQ==",
-      "requires": {
-        "@webcomponents/shadycss": "^1.9.1"
-      }
+    "@trevoreyre/autocomplete-js": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@trevoreyre/autocomplete-js/-/autocomplete-js-2.2.0.tgz",
+      "integrity": "sha512-emHJWZBPWdB5iDW9MrLSfq3lopyDlIhYXa8ttnCX9kQp1g+G0Lmfu/v6fW2aggjAfsZX8ksuZSG65o+EdwoN0g=="
     },
     "@types/color-name": {
       "version": "1.1.1",
@@ -148,126 +72,6 @@
       "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
       "dev": true
     },
-    "@vaadin/vaadin-combo-box": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-combo-box/-/vaadin-combo-box-5.2.0.tgz",
-      "integrity": "sha512-zf7tnYF+NvDEbAhd5i7lTw4rMtsDdZIk+K+gvQdWn2QEi1YGxKlh+XKSbgPlaSB3xBUsvwJ4eoXWO1gegHSqKg==",
-      "requires": {
-        "@polymer/iron-a11y-announcer": "^3.0.0",
-        "@polymer/iron-a11y-keys-behavior": "^3.0.0",
-        "@polymer/iron-list": "^3.0.0",
-        "@polymer/iron-resizable-behavior": "^3.0.0",
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-control-state-mixin": "^2.1.1",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-item": "^2.2.0",
-        "@vaadin/vaadin-lumo-styles": "^1.1.1",
-        "@vaadin/vaadin-material-styles": "^1.1.2",
-        "@vaadin/vaadin-overlay": "^3.4.0",
-        "@vaadin/vaadin-text-field": "^2.6.0",
-        "@vaadin/vaadin-themable-mixin": "^1.5.2"
-      }
-    },
-    "@vaadin/vaadin-control-state-mixin": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-control-state-mixin/-/vaadin-control-state-mixin-2.2.3.tgz",
-      "integrity": "sha512-a0a+Hh99fQ5ueKTmY6F0i94jOfdOwKFS9ppNs0amfQwO+Js5ZC84naLnyVMVtY87K98FQ1vEYqpzxDYZy6duPw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-development-mode-detector": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.4.tgz",
-      "integrity": "sha512-S+PaFrZpK8uBIOnIHxjntTrgumd5ztuCnZww96ydGKXgo9whXfZsbMwDuD/102a/IuPUMyF+dh/n3PbWzJ6igA=="
-    },
-    "@vaadin/vaadin-element-mixin": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-element-mixin/-/vaadin-element-mixin-2.4.1.tgz",
-      "integrity": "sha512-Ie7fwcOmg1C71UFuRwcuo2GKS+HbKvLedfs3hGdICiuwJ56cQvQsbIlxa4utKWWCVlf6yuSvMrny8efPPenfTA==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-development-mode-detector": "^2.0.0",
-        "@vaadin/vaadin-usage-statistics": "^2.1.0"
-      }
-    },
-    "@vaadin/vaadin-item": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-item/-/vaadin-item-2.2.0.tgz",
-      "integrity": "sha512-Yvpd2fiTwvfJA18lfjYsj33L+yr/YfHg3WZNp+v8OghfacfMdD5JofJpK6s0cJIuNTg+TC6hG1UwzcEC9jNMFw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-lumo-styles": "^1.1.0",
-        "@vaadin/vaadin-material-styles": "^1.1.0",
-        "@vaadin/vaadin-themable-mixin": "^1.2.1"
-      }
-    },
-    "@vaadin/vaadin-lumo-styles": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-1.6.0.tgz",
-      "integrity": "sha512-MTJ2JssEVF3Go5b+zIe86Jw8nNtaN91wHmO2Ic1eI27PEJ5dRRGcLWX9CjTEx/8Zu9+3Fk4YeVP9ABWhiZZGUw==",
-      "requires": {
-        "@polymer/iron-icon": "^3.0.0",
-        "@polymer/iron-iconset-svg": "^3.0.0",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-material-styles": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-1.3.2.tgz",
-      "integrity": "sha512-EFrvGScoxhLNrPnWtT2Ia77whjF2TD4jrcyeh1jv9joCA2n5SUba+4XJciVSGmopqqQato6lwRnZSvMLJX7cyw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-overlay": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-overlay/-/vaadin-overlay-3.5.1.tgz",
-      "integrity": "sha512-0g+poK/BXF92L2lSKrHMY5rcKzUxCBZNzP/NDwgi4a86nbjL7CAKKZdno7Yl+j8UsTR76nOEw4fAYTFi86B0qg==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-element-mixin": "^2.4.0",
-        "@vaadin/vaadin-lumo-styles": "^1.3.0",
-        "@vaadin/vaadin-material-styles": "^1.2.0",
-        "@vaadin/vaadin-themable-mixin": "^1.6.1"
-      }
-    },
-    "@vaadin/vaadin-text-field": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-text-field/-/vaadin-text-field-2.6.1.tgz",
-      "integrity": "sha512-zkWkeawG20hEsqQ1HZBaDpzx4wz3YWKsZTkEALAlU6YdirqPuN65xfAeecNiBfeEtzl8sAT8N8JV6aAh37NFjQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-control-state-mixin": "^2.1.1",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-lumo-styles": "^1.6.0",
-        "@vaadin/vaadin-material-styles": "^1.3.2",
-        "@vaadin/vaadin-themable-mixin": "^1.2.1"
-      }
-    },
-    "@vaadin/vaadin-themable-mixin": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-1.6.1.tgz",
-      "integrity": "sha512-UXjOlEfMEk/QxpBjpiO0QTjPOSiO88bhhtV+0UTfpqk8ILvJYO+6vbwcja33xY5Wi9sTAXtHixAjM0LthyXglQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "lit-element": "^2.0.0"
-      }
-    },
-    "@vaadin/vaadin-usage-statistics": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.0.tgz",
-      "integrity": "sha512-e81nbqY5zsaYhLJuOVkJkB/Um1pGK5POIqIlTNhUfjeoyGaJ63tiX8+D5n6F+GgVxUTLUarsKa6SKRcQel0AzA==",
-      "requires": {
-        "@vaadin/vaadin-development-mode-detector": "^2.0.0"
-      }
-    },
-    "@webcomponents/shadycss": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.10.0.tgz",
-      "integrity": "sha512-UMS+dF4DXDrcUmQqK6aLd/3mFyfGktKG/hZR6FtrsQK/INO07G0H8FxElLkuvHj0iePeZGpR7R4lWFTvX7rc9g=="
-    },
     "abbrev": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -1922,19 +1726,6 @@
         "type-check": "~0.4.0"
       }
     },
-    "lit-element": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-2.3.1.tgz",
-      "integrity": "sha512-tOcUAmeO3BzwiQ7FGWdsshNvC0HVHcTFYw/TLIImmKwXYoV0E7zCBASa8IJ7DiP4cen/Yoj454gS0qqTnIGsFA==",
-      "requires": {
-        "lit-html": "^1.1.1"
-      }
-    },
-    "lit-html": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-1.2.1.tgz",
-      "integrity": "sha512-GSJHHXMGLZDzTRq59IUfL9FCdAlGfqNp/dEa7k7aBaaWD+JKaCjsAk9KYm2V12ItonVaYx2dprN66Zdm1AuBTQ=="
-    },
     "load-json-file": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/npm/package.json b/tobago-theme/tobago-theme-charlotteville/src/main/npm/package.json
index 3e88a5c..b3bce60 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/npm/package.json
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/npm/package.json
@@ -32,7 +32,8 @@
     "test": "echo 'Skipping'"
   },
   "dependencies": {
-    "@vaadin/vaadin-combo-box": "^5.2.0",
+    "@trevoreyre/autocomplete": "^2.2.0",
+    "@trevoreyre/autocomplete-js": "^2.2.0",
     "vanillajs-datepicker": "^1.0.3"
   },
   "devDependencies": {
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/npm/package-lock.json b/tobago-theme/tobago-theme-roxborough/src/main/npm/package-lock.json
index e587636..4605ed5 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/npm/package-lock.json
+++ b/tobago-theme/tobago-theme-roxborough/src/main/npm/package-lock.json
@@ -56,91 +56,15 @@
         "fastq": "^1.6.0"
       }
     },
-    "@polymer/iron-a11y-announcer": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-announcer/-/iron-a11y-announcer-3.1.0.tgz",
-      "integrity": "sha512-lc5i4NKB8kSQHH0Hwu8WS3ym93m+J69OHJWSSBxwd17FI+h2wmgxDzeG9LI4ojMMck17/uc2pLe7g/UHt5/K/A==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-a11y-keys-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-keys-behavior/-/iron-a11y-keys-behavior-3.0.1.tgz",
-      "integrity": "sha512-lnrjKq3ysbBPT/74l0Fj0U9H9C35Tpw2C/tpJ8a+5g8Y3YJs1WSZYnEl1yOkw6sEyaxOq/1DkzH0+60gGu5/PQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-flex-layout": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-flex-layout/-/iron-flex-layout-3.0.1.tgz",
-      "integrity": "sha512-7gB869czArF+HZcPTVSgvA7tXYFze9EKckvM95NB7SqYF+NnsQyhoXgKnpFwGyo95lUjUW9TFDLUwDXnCYFtkw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-icon": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-icon/-/iron-icon-3.0.1.tgz",
-      "integrity": "sha512-QLPwirk+UPZNaLnMew9VludXA4CWUCenRewgEcGYwdzVgDPCDbXxy6vRJjmweZobMQv/oVLppT2JZtJFnPxX6g==",
-      "requires": {
-        "@polymer/iron-flex-layout": "^3.0.0-pre.26",
-        "@polymer/iron-meta": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-iconset-svg": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-iconset-svg/-/iron-iconset-svg-3.0.1.tgz",
-      "integrity": "sha512-XNwURbNHRw6u2fJe05O5fMYye6GSgDlDqCO+q6K1zAnKIrpgZwf2vTkBd5uCcZwsN0FyCB3mvNZx4jkh85dRDw==",
-      "requires": {
-        "@polymer/iron-meta": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-list": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-list/-/iron-list-3.1.0.tgz",
-      "integrity": "sha512-Eiv6xd3h3oPmn8SXFntXVfC3ZnegH+KHAxiKLKcOASFSRY3mHnr2AdcnExUJ9ItoCMA5UzKaM/0U22eWzGERtA==",
-      "requires": {
-        "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.26",
-        "@polymer/iron-resizable-behavior": "^3.0.0-pre.26",
-        "@polymer/iron-scroll-target-behavior": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-meta": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-meta/-/iron-meta-3.0.1.tgz",
-      "integrity": "sha512-pWguPugiLYmWFV9UWxLWzZ6gm4wBwQdDy4VULKwdHCqR7OP7u98h+XDdGZsSlDPv6qoryV/e3tGHlTIT0mbzJA==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-resizable-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-resizable-behavior/-/iron-resizable-behavior-3.0.1.tgz",
-      "integrity": "sha512-FyHxRxFspVoRaeZSWpT3y0C9awomb4tXXolIJcZ7RvXhMP632V5lez+ch5G5SwK0LpnAPkg35eB0LPMFv+YMMQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-scroll-target-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-scroll-target-behavior/-/iron-scroll-target-behavior-3.0.1.tgz",
-      "integrity": "sha512-xg1WanG25BIkQE8rhuReqY9zx1K5M7F+YAIYpswEp5eyDIaZ1Y3vUmVeQ3KG+hiSugzI1M752azXN7kvyhOBcQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
+    "@trevoreyre/autocomplete": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@trevoreyre/autocomplete/-/autocomplete-2.2.0.tgz",
+      "integrity": "sha512-GMd2zgWcAK7TJl2h4med2duYjNlthao89xx1dL3PCfTeitOjztVUkmfsklaonEY5mhW6PaMF4cH/vtf8Xwi5eg=="
     },
-    "@polymer/polymer": {
-      "version": "3.4.1",
-      "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.4.1.tgz",
-      "integrity": "sha512-KPWnhDZibtqKrUz7enIPOiO4ZQoJNOuLwqrhV2MXzIt3VVnUVJVG5ORz4Z2sgO+UZ+/UZnPD0jqY+jmw/+a9mQ==",
-      "requires": {
-        "@webcomponents/shadycss": "^1.9.1"
-      }
+    "@trevoreyre/autocomplete-js": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@trevoreyre/autocomplete-js/-/autocomplete-js-2.2.0.tgz",
+      "integrity": "sha512-emHJWZBPWdB5iDW9MrLSfq3lopyDlIhYXa8ttnCX9kQp1g+G0Lmfu/v6fW2aggjAfsZX8ksuZSG65o+EdwoN0g=="
     },
     "@types/color-name": {
       "version": "1.1.1",
@@ -148,126 +72,6 @@
       "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
       "dev": true
     },
-    "@vaadin/vaadin-combo-box": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-combo-box/-/vaadin-combo-box-5.2.0.tgz",
-      "integrity": "sha512-zf7tnYF+NvDEbAhd5i7lTw4rMtsDdZIk+K+gvQdWn2QEi1YGxKlh+XKSbgPlaSB3xBUsvwJ4eoXWO1gegHSqKg==",
-      "requires": {
-        "@polymer/iron-a11y-announcer": "^3.0.0",
-        "@polymer/iron-a11y-keys-behavior": "^3.0.0",
-        "@polymer/iron-list": "^3.0.0",
-        "@polymer/iron-resizable-behavior": "^3.0.0",
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-control-state-mixin": "^2.1.1",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-item": "^2.2.0",
-        "@vaadin/vaadin-lumo-styles": "^1.1.1",
-        "@vaadin/vaadin-material-styles": "^1.1.2",
-        "@vaadin/vaadin-overlay": "^3.4.0",
-        "@vaadin/vaadin-text-field": "^2.6.0",
-        "@vaadin/vaadin-themable-mixin": "^1.5.2"
-      }
-    },
-    "@vaadin/vaadin-control-state-mixin": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-control-state-mixin/-/vaadin-control-state-mixin-2.2.3.tgz",
-      "integrity": "sha512-a0a+Hh99fQ5ueKTmY6F0i94jOfdOwKFS9ppNs0amfQwO+Js5ZC84naLnyVMVtY87K98FQ1vEYqpzxDYZy6duPw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-development-mode-detector": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.4.tgz",
-      "integrity": "sha512-S+PaFrZpK8uBIOnIHxjntTrgumd5ztuCnZww96ydGKXgo9whXfZsbMwDuD/102a/IuPUMyF+dh/n3PbWzJ6igA=="
-    },
-    "@vaadin/vaadin-element-mixin": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-element-mixin/-/vaadin-element-mixin-2.4.1.tgz",
-      "integrity": "sha512-Ie7fwcOmg1C71UFuRwcuo2GKS+HbKvLedfs3hGdICiuwJ56cQvQsbIlxa4utKWWCVlf6yuSvMrny8efPPenfTA==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-development-mode-detector": "^2.0.0",
-        "@vaadin/vaadin-usage-statistics": "^2.1.0"
-      }
-    },
-    "@vaadin/vaadin-item": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-item/-/vaadin-item-2.2.0.tgz",
-      "integrity": "sha512-Yvpd2fiTwvfJA18lfjYsj33L+yr/YfHg3WZNp+v8OghfacfMdD5JofJpK6s0cJIuNTg+TC6hG1UwzcEC9jNMFw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-lumo-styles": "^1.1.0",
-        "@vaadin/vaadin-material-styles": "^1.1.0",
-        "@vaadin/vaadin-themable-mixin": "^1.2.1"
-      }
-    },
-    "@vaadin/vaadin-lumo-styles": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-1.6.0.tgz",
-      "integrity": "sha512-MTJ2JssEVF3Go5b+zIe86Jw8nNtaN91wHmO2Ic1eI27PEJ5dRRGcLWX9CjTEx/8Zu9+3Fk4YeVP9ABWhiZZGUw==",
-      "requires": {
-        "@polymer/iron-icon": "^3.0.0",
-        "@polymer/iron-iconset-svg": "^3.0.0",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-material-styles": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-1.3.2.tgz",
-      "integrity": "sha512-EFrvGScoxhLNrPnWtT2Ia77whjF2TD4jrcyeh1jv9joCA2n5SUba+4XJciVSGmopqqQato6lwRnZSvMLJX7cyw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-overlay": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-overlay/-/vaadin-overlay-3.5.1.tgz",
-      "integrity": "sha512-0g+poK/BXF92L2lSKrHMY5rcKzUxCBZNzP/NDwgi4a86nbjL7CAKKZdno7Yl+j8UsTR76nOEw4fAYTFi86B0qg==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-element-mixin": "^2.4.0",
-        "@vaadin/vaadin-lumo-styles": "^1.3.0",
-        "@vaadin/vaadin-material-styles": "^1.2.0",
-        "@vaadin/vaadin-themable-mixin": "^1.6.1"
-      }
-    },
-    "@vaadin/vaadin-text-field": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-text-field/-/vaadin-text-field-2.6.1.tgz",
-      "integrity": "sha512-zkWkeawG20hEsqQ1HZBaDpzx4wz3YWKsZTkEALAlU6YdirqPuN65xfAeecNiBfeEtzl8sAT8N8JV6aAh37NFjQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-control-state-mixin": "^2.1.1",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-lumo-styles": "^1.6.0",
-        "@vaadin/vaadin-material-styles": "^1.3.2",
-        "@vaadin/vaadin-themable-mixin": "^1.2.1"
-      }
-    },
-    "@vaadin/vaadin-themable-mixin": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-1.6.1.tgz",
-      "integrity": "sha512-UXjOlEfMEk/QxpBjpiO0QTjPOSiO88bhhtV+0UTfpqk8ILvJYO+6vbwcja33xY5Wi9sTAXtHixAjM0LthyXglQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "lit-element": "^2.0.0"
-      }
-    },
-    "@vaadin/vaadin-usage-statistics": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.0.tgz",
-      "integrity": "sha512-e81nbqY5zsaYhLJuOVkJkB/Um1pGK5POIqIlTNhUfjeoyGaJ63tiX8+D5n6F+GgVxUTLUarsKa6SKRcQel0AzA==",
-      "requires": {
-        "@vaadin/vaadin-development-mode-detector": "^2.0.0"
-      }
-    },
-    "@webcomponents/shadycss": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.10.0.tgz",
-      "integrity": "sha512-UMS+dF4DXDrcUmQqK6aLd/3mFyfGktKG/hZR6FtrsQK/INO07G0H8FxElLkuvHj0iePeZGpR7R4lWFTvX7rc9g=="
-    },
     "abbrev": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -1922,19 +1726,6 @@
         "type-check": "~0.4.0"
       }
     },
-    "lit-element": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-2.3.1.tgz",
-      "integrity": "sha512-tOcUAmeO3BzwiQ7FGWdsshNvC0HVHcTFYw/TLIImmKwXYoV0E7zCBASa8IJ7DiP4cen/Yoj454gS0qqTnIGsFA==",
-      "requires": {
-        "lit-html": "^1.1.1"
-      }
-    },
-    "lit-html": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-1.2.1.tgz",
-      "integrity": "sha512-GSJHHXMGLZDzTRq59IUfL9FCdAlGfqNp/dEa7k7aBaaWD+JKaCjsAk9KYm2V12ItonVaYx2dprN66Zdm1AuBTQ=="
-    },
     "load-json-file": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/npm/package.json b/tobago-theme/tobago-theme-roxborough/src/main/npm/package.json
index f78b639..31a19be 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/npm/package.json
+++ b/tobago-theme/tobago-theme-roxborough/src/main/npm/package.json
@@ -32,7 +32,8 @@
     "test": "echo 'Skipping'"
   },
   "dependencies": {
-    "@vaadin/vaadin-combo-box": "^5.2.0",
+    "@trevoreyre/autocomplete": "^2.2.0",
+    "@trevoreyre/autocomplete-js": "^2.2.0",
     "vanillajs-datepicker": "^1.0.3"
   },
   "devDependencies": {
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/npm/package-lock.json b/tobago-theme/tobago-theme-scarborough/src/main/npm/package-lock.json
index eeeadbd..cc3755e 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/npm/package-lock.json
+++ b/tobago-theme/tobago-theme-scarborough/src/main/npm/package-lock.json
@@ -56,91 +56,15 @@
         "fastq": "^1.6.0"
       }
     },
-    "@polymer/iron-a11y-announcer": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-announcer/-/iron-a11y-announcer-3.1.0.tgz",
-      "integrity": "sha512-lc5i4NKB8kSQHH0Hwu8WS3ym93m+J69OHJWSSBxwd17FI+h2wmgxDzeG9LI4ojMMck17/uc2pLe7g/UHt5/K/A==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-a11y-keys-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-keys-behavior/-/iron-a11y-keys-behavior-3.0.1.tgz",
-      "integrity": "sha512-lnrjKq3ysbBPT/74l0Fj0U9H9C35Tpw2C/tpJ8a+5g8Y3YJs1WSZYnEl1yOkw6sEyaxOq/1DkzH0+60gGu5/PQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-flex-layout": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-flex-layout/-/iron-flex-layout-3.0.1.tgz",
-      "integrity": "sha512-7gB869czArF+HZcPTVSgvA7tXYFze9EKckvM95NB7SqYF+NnsQyhoXgKnpFwGyo95lUjUW9TFDLUwDXnCYFtkw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-icon": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-icon/-/iron-icon-3.0.1.tgz",
-      "integrity": "sha512-QLPwirk+UPZNaLnMew9VludXA4CWUCenRewgEcGYwdzVgDPCDbXxy6vRJjmweZobMQv/oVLppT2JZtJFnPxX6g==",
-      "requires": {
-        "@polymer/iron-flex-layout": "^3.0.0-pre.26",
-        "@polymer/iron-meta": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-iconset-svg": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-iconset-svg/-/iron-iconset-svg-3.0.1.tgz",
-      "integrity": "sha512-XNwURbNHRw6u2fJe05O5fMYye6GSgDlDqCO+q6K1zAnKIrpgZwf2vTkBd5uCcZwsN0FyCB3mvNZx4jkh85dRDw==",
-      "requires": {
-        "@polymer/iron-meta": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-list": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-list/-/iron-list-3.1.0.tgz",
-      "integrity": "sha512-Eiv6xd3h3oPmn8SXFntXVfC3ZnegH+KHAxiKLKcOASFSRY3mHnr2AdcnExUJ9ItoCMA5UzKaM/0U22eWzGERtA==",
-      "requires": {
-        "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.26",
-        "@polymer/iron-resizable-behavior": "^3.0.0-pre.26",
-        "@polymer/iron-scroll-target-behavior": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-meta": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-meta/-/iron-meta-3.0.1.tgz",
-      "integrity": "sha512-pWguPugiLYmWFV9UWxLWzZ6gm4wBwQdDy4VULKwdHCqR7OP7u98h+XDdGZsSlDPv6qoryV/e3tGHlTIT0mbzJA==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-resizable-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-resizable-behavior/-/iron-resizable-behavior-3.0.1.tgz",
-      "integrity": "sha512-FyHxRxFspVoRaeZSWpT3y0C9awomb4tXXolIJcZ7RvXhMP632V5lez+ch5G5SwK0LpnAPkg35eB0LPMFv+YMMQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-scroll-target-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-scroll-target-behavior/-/iron-scroll-target-behavior-3.0.1.tgz",
-      "integrity": "sha512-xg1WanG25BIkQE8rhuReqY9zx1K5M7F+YAIYpswEp5eyDIaZ1Y3vUmVeQ3KG+hiSugzI1M752azXN7kvyhOBcQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
+    "@trevoreyre/autocomplete": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@trevoreyre/autocomplete/-/autocomplete-2.2.0.tgz",
+      "integrity": "sha512-GMd2zgWcAK7TJl2h4med2duYjNlthao89xx1dL3PCfTeitOjztVUkmfsklaonEY5mhW6PaMF4cH/vtf8Xwi5eg=="
     },
-    "@polymer/polymer": {
-      "version": "3.4.1",
-      "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.4.1.tgz",
-      "integrity": "sha512-KPWnhDZibtqKrUz7enIPOiO4ZQoJNOuLwqrhV2MXzIt3VVnUVJVG5ORz4Z2sgO+UZ+/UZnPD0jqY+jmw/+a9mQ==",
-      "requires": {
-        "@webcomponents/shadycss": "^1.9.1"
-      }
+    "@trevoreyre/autocomplete-js": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@trevoreyre/autocomplete-js/-/autocomplete-js-2.2.0.tgz",
+      "integrity": "sha512-emHJWZBPWdB5iDW9MrLSfq3lopyDlIhYXa8ttnCX9kQp1g+G0Lmfu/v6fW2aggjAfsZX8ksuZSG65o+EdwoN0g=="
     },
     "@types/color-name": {
       "version": "1.1.1",
@@ -148,126 +72,6 @@
       "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
       "dev": true
     },
-    "@vaadin/vaadin-combo-box": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-combo-box/-/vaadin-combo-box-5.2.0.tgz",
-      "integrity": "sha512-zf7tnYF+NvDEbAhd5i7lTw4rMtsDdZIk+K+gvQdWn2QEi1YGxKlh+XKSbgPlaSB3xBUsvwJ4eoXWO1gegHSqKg==",
-      "requires": {
-        "@polymer/iron-a11y-announcer": "^3.0.0",
-        "@polymer/iron-a11y-keys-behavior": "^3.0.0",
-        "@polymer/iron-list": "^3.0.0",
-        "@polymer/iron-resizable-behavior": "^3.0.0",
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-control-state-mixin": "^2.1.1",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-item": "^2.2.0",
-        "@vaadin/vaadin-lumo-styles": "^1.1.1",
-        "@vaadin/vaadin-material-styles": "^1.1.2",
-        "@vaadin/vaadin-overlay": "^3.4.0",
-        "@vaadin/vaadin-text-field": "^2.6.0",
-        "@vaadin/vaadin-themable-mixin": "^1.5.2"
-      }
-    },
-    "@vaadin/vaadin-control-state-mixin": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-control-state-mixin/-/vaadin-control-state-mixin-2.2.3.tgz",
-      "integrity": "sha512-a0a+Hh99fQ5ueKTmY6F0i94jOfdOwKFS9ppNs0amfQwO+Js5ZC84naLnyVMVtY87K98FQ1vEYqpzxDYZy6duPw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-development-mode-detector": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.4.tgz",
-      "integrity": "sha512-S+PaFrZpK8uBIOnIHxjntTrgumd5ztuCnZww96ydGKXgo9whXfZsbMwDuD/102a/IuPUMyF+dh/n3PbWzJ6igA=="
-    },
-    "@vaadin/vaadin-element-mixin": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-element-mixin/-/vaadin-element-mixin-2.4.1.tgz",
-      "integrity": "sha512-Ie7fwcOmg1C71UFuRwcuo2GKS+HbKvLedfs3hGdICiuwJ56cQvQsbIlxa4utKWWCVlf6yuSvMrny8efPPenfTA==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-development-mode-detector": "^2.0.0",
-        "@vaadin/vaadin-usage-statistics": "^2.1.0"
-      }
-    },
-    "@vaadin/vaadin-item": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-item/-/vaadin-item-2.2.0.tgz",
-      "integrity": "sha512-Yvpd2fiTwvfJA18lfjYsj33L+yr/YfHg3WZNp+v8OghfacfMdD5JofJpK6s0cJIuNTg+TC6hG1UwzcEC9jNMFw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-lumo-styles": "^1.1.0",
-        "@vaadin/vaadin-material-styles": "^1.1.0",
-        "@vaadin/vaadin-themable-mixin": "^1.2.1"
-      }
-    },
-    "@vaadin/vaadin-lumo-styles": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-1.6.0.tgz",
-      "integrity": "sha512-MTJ2JssEVF3Go5b+zIe86Jw8nNtaN91wHmO2Ic1eI27PEJ5dRRGcLWX9CjTEx/8Zu9+3Fk4YeVP9ABWhiZZGUw==",
-      "requires": {
-        "@polymer/iron-icon": "^3.0.0",
-        "@polymer/iron-iconset-svg": "^3.0.0",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-material-styles": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-1.3.2.tgz",
-      "integrity": "sha512-EFrvGScoxhLNrPnWtT2Ia77whjF2TD4jrcyeh1jv9joCA2n5SUba+4XJciVSGmopqqQato6lwRnZSvMLJX7cyw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-overlay": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-overlay/-/vaadin-overlay-3.5.1.tgz",
-      "integrity": "sha512-0g+poK/BXF92L2lSKrHMY5rcKzUxCBZNzP/NDwgi4a86nbjL7CAKKZdno7Yl+j8UsTR76nOEw4fAYTFi86B0qg==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-element-mixin": "^2.4.0",
-        "@vaadin/vaadin-lumo-styles": "^1.3.0",
-        "@vaadin/vaadin-material-styles": "^1.2.0",
-        "@vaadin/vaadin-themable-mixin": "^1.6.1"
-      }
-    },
-    "@vaadin/vaadin-text-field": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-text-field/-/vaadin-text-field-2.6.1.tgz",
-      "integrity": "sha512-zkWkeawG20hEsqQ1HZBaDpzx4wz3YWKsZTkEALAlU6YdirqPuN65xfAeecNiBfeEtzl8sAT8N8JV6aAh37NFjQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-control-state-mixin": "^2.1.1",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-lumo-styles": "^1.6.0",
-        "@vaadin/vaadin-material-styles": "^1.3.2",
-        "@vaadin/vaadin-themable-mixin": "^1.2.1"
-      }
-    },
-    "@vaadin/vaadin-themable-mixin": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-1.6.1.tgz",
-      "integrity": "sha512-UXjOlEfMEk/QxpBjpiO0QTjPOSiO88bhhtV+0UTfpqk8ILvJYO+6vbwcja33xY5Wi9sTAXtHixAjM0LthyXglQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "lit-element": "^2.0.0"
-      }
-    },
-    "@vaadin/vaadin-usage-statistics": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.0.tgz",
-      "integrity": "sha512-e81nbqY5zsaYhLJuOVkJkB/Um1pGK5POIqIlTNhUfjeoyGaJ63tiX8+D5n6F+GgVxUTLUarsKa6SKRcQel0AzA==",
-      "requires": {
-        "@vaadin/vaadin-development-mode-detector": "^2.0.0"
-      }
-    },
-    "@webcomponents/shadycss": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.10.0.tgz",
-      "integrity": "sha512-UMS+dF4DXDrcUmQqK6aLd/3mFyfGktKG/hZR6FtrsQK/INO07G0H8FxElLkuvHj0iePeZGpR7R4lWFTvX7rc9g=="
-    },
     "abbrev": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -1922,19 +1726,6 @@
         "type-check": "~0.4.0"
       }
     },
-    "lit-element": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-2.3.1.tgz",
-      "integrity": "sha512-tOcUAmeO3BzwiQ7FGWdsshNvC0HVHcTFYw/TLIImmKwXYoV0E7zCBASa8IJ7DiP4cen/Yoj454gS0qqTnIGsFA==",
-      "requires": {
-        "lit-html": "^1.1.1"
-      }
-    },
-    "lit-html": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-1.2.1.tgz",
-      "integrity": "sha512-GSJHHXMGLZDzTRq59IUfL9FCdAlGfqNp/dEa7k7aBaaWD+JKaCjsAk9KYm2V12ItonVaYx2dprN66Zdm1AuBTQ=="
-    },
     "load-json-file": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/npm/package.json b/tobago-theme/tobago-theme-scarborough/src/main/npm/package.json
index ba12962..10abd22 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/npm/package.json
+++ b/tobago-theme/tobago-theme-scarborough/src/main/npm/package.json
@@ -32,7 +32,8 @@
     "test": "echo 'Skipping'"
   },
   "dependencies": {
-    "@vaadin/vaadin-combo-box": "^5.2.0",
+    "@trevoreyre/autocomplete": "^2.2.0",
+    "@trevoreyre/autocomplete-js": "^2.2.0",
     "vanillajs-datepicker": "^1.0.3"
   },
   "devDependencies": {
diff --git a/tobago-theme/tobago-theme-speyside/src/main/npm/package-lock.json b/tobago-theme/tobago-theme-speyside/src/main/npm/package-lock.json
index a60b4fd..adbda93 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/npm/package-lock.json
+++ b/tobago-theme/tobago-theme-speyside/src/main/npm/package-lock.json
@@ -56,91 +56,15 @@
         "fastq": "^1.6.0"
       }
     },
-    "@polymer/iron-a11y-announcer": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-announcer/-/iron-a11y-announcer-3.1.0.tgz",
-      "integrity": "sha512-lc5i4NKB8kSQHH0Hwu8WS3ym93m+J69OHJWSSBxwd17FI+h2wmgxDzeG9LI4ojMMck17/uc2pLe7g/UHt5/K/A==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-a11y-keys-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-keys-behavior/-/iron-a11y-keys-behavior-3.0.1.tgz",
-      "integrity": "sha512-lnrjKq3ysbBPT/74l0Fj0U9H9C35Tpw2C/tpJ8a+5g8Y3YJs1WSZYnEl1yOkw6sEyaxOq/1DkzH0+60gGu5/PQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-flex-layout": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-flex-layout/-/iron-flex-layout-3.0.1.tgz",
-      "integrity": "sha512-7gB869czArF+HZcPTVSgvA7tXYFze9EKckvM95NB7SqYF+NnsQyhoXgKnpFwGyo95lUjUW9TFDLUwDXnCYFtkw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-icon": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-icon/-/iron-icon-3.0.1.tgz",
-      "integrity": "sha512-QLPwirk+UPZNaLnMew9VludXA4CWUCenRewgEcGYwdzVgDPCDbXxy6vRJjmweZobMQv/oVLppT2JZtJFnPxX6g==",
-      "requires": {
-        "@polymer/iron-flex-layout": "^3.0.0-pre.26",
-        "@polymer/iron-meta": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-iconset-svg": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-iconset-svg/-/iron-iconset-svg-3.0.1.tgz",
-      "integrity": "sha512-XNwURbNHRw6u2fJe05O5fMYye6GSgDlDqCO+q6K1zAnKIrpgZwf2vTkBd5uCcZwsN0FyCB3mvNZx4jkh85dRDw==",
-      "requires": {
-        "@polymer/iron-meta": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-list": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-list/-/iron-list-3.1.0.tgz",
-      "integrity": "sha512-Eiv6xd3h3oPmn8SXFntXVfC3ZnegH+KHAxiKLKcOASFSRY3mHnr2AdcnExUJ9ItoCMA5UzKaM/0U22eWzGERtA==",
-      "requires": {
-        "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.26",
-        "@polymer/iron-resizable-behavior": "^3.0.0-pre.26",
-        "@polymer/iron-scroll-target-behavior": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-meta": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-meta/-/iron-meta-3.0.1.tgz",
-      "integrity": "sha512-pWguPugiLYmWFV9UWxLWzZ6gm4wBwQdDy4VULKwdHCqR7OP7u98h+XDdGZsSlDPv6qoryV/e3tGHlTIT0mbzJA==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-resizable-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-resizable-behavior/-/iron-resizable-behavior-3.0.1.tgz",
-      "integrity": "sha512-FyHxRxFspVoRaeZSWpT3y0C9awomb4tXXolIJcZ7RvXhMP632V5lez+ch5G5SwK0LpnAPkg35eB0LPMFv+YMMQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-scroll-target-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-scroll-target-behavior/-/iron-scroll-target-behavior-3.0.1.tgz",
-      "integrity": "sha512-xg1WanG25BIkQE8rhuReqY9zx1K5M7F+YAIYpswEp5eyDIaZ1Y3vUmVeQ3KG+hiSugzI1M752azXN7kvyhOBcQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
+    "@trevoreyre/autocomplete": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@trevoreyre/autocomplete/-/autocomplete-2.2.0.tgz",
+      "integrity": "sha512-GMd2zgWcAK7TJl2h4med2duYjNlthao89xx1dL3PCfTeitOjztVUkmfsklaonEY5mhW6PaMF4cH/vtf8Xwi5eg=="
     },
-    "@polymer/polymer": {
-      "version": "3.4.1",
-      "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.4.1.tgz",
-      "integrity": "sha512-KPWnhDZibtqKrUz7enIPOiO4ZQoJNOuLwqrhV2MXzIt3VVnUVJVG5ORz4Z2sgO+UZ+/UZnPD0jqY+jmw/+a9mQ==",
-      "requires": {
-        "@webcomponents/shadycss": "^1.9.1"
-      }
+    "@trevoreyre/autocomplete-js": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@trevoreyre/autocomplete-js/-/autocomplete-js-2.2.0.tgz",
+      "integrity": "sha512-emHJWZBPWdB5iDW9MrLSfq3lopyDlIhYXa8ttnCX9kQp1g+G0Lmfu/v6fW2aggjAfsZX8ksuZSG65o+EdwoN0g=="
     },
     "@types/color-name": {
       "version": "1.1.1",
@@ -148,126 +72,6 @@
       "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
       "dev": true
     },
-    "@vaadin/vaadin-combo-box": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-combo-box/-/vaadin-combo-box-5.2.0.tgz",
-      "integrity": "sha512-zf7tnYF+NvDEbAhd5i7lTw4rMtsDdZIk+K+gvQdWn2QEi1YGxKlh+XKSbgPlaSB3xBUsvwJ4eoXWO1gegHSqKg==",
-      "requires": {
-        "@polymer/iron-a11y-announcer": "^3.0.0",
-        "@polymer/iron-a11y-keys-behavior": "^3.0.0",
-        "@polymer/iron-list": "^3.0.0",
-        "@polymer/iron-resizable-behavior": "^3.0.0",
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-control-state-mixin": "^2.1.1",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-item": "^2.2.0",
-        "@vaadin/vaadin-lumo-styles": "^1.1.1",
-        "@vaadin/vaadin-material-styles": "^1.1.2",
-        "@vaadin/vaadin-overlay": "^3.4.0",
-        "@vaadin/vaadin-text-field": "^2.6.0",
-        "@vaadin/vaadin-themable-mixin": "^1.5.2"
-      }
-    },
-    "@vaadin/vaadin-control-state-mixin": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-control-state-mixin/-/vaadin-control-state-mixin-2.2.3.tgz",
-      "integrity": "sha512-a0a+Hh99fQ5ueKTmY6F0i94jOfdOwKFS9ppNs0amfQwO+Js5ZC84naLnyVMVtY87K98FQ1vEYqpzxDYZy6duPw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-development-mode-detector": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.4.tgz",
-      "integrity": "sha512-S+PaFrZpK8uBIOnIHxjntTrgumd5ztuCnZww96ydGKXgo9whXfZsbMwDuD/102a/IuPUMyF+dh/n3PbWzJ6igA=="
-    },
-    "@vaadin/vaadin-element-mixin": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-element-mixin/-/vaadin-element-mixin-2.4.1.tgz",
-      "integrity": "sha512-Ie7fwcOmg1C71UFuRwcuo2GKS+HbKvLedfs3hGdICiuwJ56cQvQsbIlxa4utKWWCVlf6yuSvMrny8efPPenfTA==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-development-mode-detector": "^2.0.0",
-        "@vaadin/vaadin-usage-statistics": "^2.1.0"
-      }
-    },
-    "@vaadin/vaadin-item": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-item/-/vaadin-item-2.2.0.tgz",
-      "integrity": "sha512-Yvpd2fiTwvfJA18lfjYsj33L+yr/YfHg3WZNp+v8OghfacfMdD5JofJpK6s0cJIuNTg+TC6hG1UwzcEC9jNMFw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-lumo-styles": "^1.1.0",
-        "@vaadin/vaadin-material-styles": "^1.1.0",
-        "@vaadin/vaadin-themable-mixin": "^1.2.1"
-      }
-    },
-    "@vaadin/vaadin-lumo-styles": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-1.6.0.tgz",
-      "integrity": "sha512-MTJ2JssEVF3Go5b+zIe86Jw8nNtaN91wHmO2Ic1eI27PEJ5dRRGcLWX9CjTEx/8Zu9+3Fk4YeVP9ABWhiZZGUw==",
-      "requires": {
-        "@polymer/iron-icon": "^3.0.0",
-        "@polymer/iron-iconset-svg": "^3.0.0",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-material-styles": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-1.3.2.tgz",
-      "integrity": "sha512-EFrvGScoxhLNrPnWtT2Ia77whjF2TD4jrcyeh1jv9joCA2n5SUba+4XJciVSGmopqqQato6lwRnZSvMLJX7cyw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-overlay": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-overlay/-/vaadin-overlay-3.5.1.tgz",
-      "integrity": "sha512-0g+poK/BXF92L2lSKrHMY5rcKzUxCBZNzP/NDwgi4a86nbjL7CAKKZdno7Yl+j8UsTR76nOEw4fAYTFi86B0qg==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-element-mixin": "^2.4.0",
-        "@vaadin/vaadin-lumo-styles": "^1.3.0",
-        "@vaadin/vaadin-material-styles": "^1.2.0",
-        "@vaadin/vaadin-themable-mixin": "^1.6.1"
-      }
-    },
-    "@vaadin/vaadin-text-field": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-text-field/-/vaadin-text-field-2.6.1.tgz",
-      "integrity": "sha512-zkWkeawG20hEsqQ1HZBaDpzx4wz3YWKsZTkEALAlU6YdirqPuN65xfAeecNiBfeEtzl8sAT8N8JV6aAh37NFjQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-control-state-mixin": "^2.1.1",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-lumo-styles": "^1.6.0",
-        "@vaadin/vaadin-material-styles": "^1.3.2",
-        "@vaadin/vaadin-themable-mixin": "^1.2.1"
-      }
-    },
-    "@vaadin/vaadin-themable-mixin": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-1.6.1.tgz",
-      "integrity": "sha512-UXjOlEfMEk/QxpBjpiO0QTjPOSiO88bhhtV+0UTfpqk8ILvJYO+6vbwcja33xY5Wi9sTAXtHixAjM0LthyXglQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "lit-element": "^2.0.0"
-      }
-    },
-    "@vaadin/vaadin-usage-statistics": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.0.tgz",
-      "integrity": "sha512-e81nbqY5zsaYhLJuOVkJkB/Um1pGK5POIqIlTNhUfjeoyGaJ63tiX8+D5n6F+GgVxUTLUarsKa6SKRcQel0AzA==",
-      "requires": {
-        "@vaadin/vaadin-development-mode-detector": "^2.0.0"
-      }
-    },
-    "@webcomponents/shadycss": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.10.0.tgz",
-      "integrity": "sha512-UMS+dF4DXDrcUmQqK6aLd/3mFyfGktKG/hZR6FtrsQK/INO07G0H8FxElLkuvHj0iePeZGpR7R4lWFTvX7rc9g=="
-    },
     "abbrev": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -1922,19 +1726,6 @@
         "type-check": "~0.4.0"
       }
     },
-    "lit-element": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-2.3.1.tgz",
-      "integrity": "sha512-tOcUAmeO3BzwiQ7FGWdsshNvC0HVHcTFYw/TLIImmKwXYoV0E7zCBASa8IJ7DiP4cen/Yoj454gS0qqTnIGsFA==",
-      "requires": {
-        "lit-html": "^1.1.1"
-      }
-    },
-    "lit-html": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-1.2.1.tgz",
-      "integrity": "sha512-GSJHHXMGLZDzTRq59IUfL9FCdAlGfqNp/dEa7k7aBaaWD+JKaCjsAk9KYm2V12ItonVaYx2dprN66Zdm1AuBTQ=="
-    },
     "load-json-file": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
diff --git a/tobago-theme/tobago-theme-speyside/src/main/npm/package.json b/tobago-theme/tobago-theme-speyside/src/main/npm/package.json
index f65ea45..445a2f1 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/npm/package.json
+++ b/tobago-theme/tobago-theme-speyside/src/main/npm/package.json
@@ -32,7 +32,8 @@
     "test": "echo 'Skipping'"
   },
   "dependencies": {
-    "@vaadin/vaadin-combo-box": "^5.2.0",
+    "@trevoreyre/autocomplete": "^2.2.0",
+    "@trevoreyre/autocomplete-js": "^2.2.0",
     "vanillajs-datepicker": "^1.0.3"
   },
   "devDependencies": {
diff --git a/tobago-theme/tobago-theme-standard/src/main/npm/package-lock.json b/tobago-theme/tobago-theme-standard/src/main/npm/package-lock.json
index 3d17ca8..bcdda25 100644
--- a/tobago-theme/tobago-theme-standard/src/main/npm/package-lock.json
+++ b/tobago-theme/tobago-theme-standard/src/main/npm/package-lock.json
@@ -1106,92 +1106,6 @@
         "fastq": "^1.6.0"
       }
     },
-    "@polymer/iron-a11y-announcer": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-announcer/-/iron-a11y-announcer-3.0.2.tgz",
-      "integrity": "sha512-LqnMF39mXyxSSRbTHRzGbcJS8nU0NVTo2raBOgOlpxw5yfGJUVcwaTJ/qy5NtWCZLRfa4suycf0oAkuUjHTXHQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-a11y-keys-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-keys-behavior/-/iron-a11y-keys-behavior-3.0.1.tgz",
-      "integrity": "sha512-lnrjKq3ysbBPT/74l0Fj0U9H9C35Tpw2C/tpJ8a+5g8Y3YJs1WSZYnEl1yOkw6sEyaxOq/1DkzH0+60gGu5/PQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-flex-layout": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-flex-layout/-/iron-flex-layout-3.0.1.tgz",
-      "integrity": "sha512-7gB869czArF+HZcPTVSgvA7tXYFze9EKckvM95NB7SqYF+NnsQyhoXgKnpFwGyo95lUjUW9TFDLUwDXnCYFtkw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-icon": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-icon/-/iron-icon-3.0.1.tgz",
-      "integrity": "sha512-QLPwirk+UPZNaLnMew9VludXA4CWUCenRewgEcGYwdzVgDPCDbXxy6vRJjmweZobMQv/oVLppT2JZtJFnPxX6g==",
-      "requires": {
-        "@polymer/iron-flex-layout": "^3.0.0-pre.26",
-        "@polymer/iron-meta": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-iconset-svg": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-iconset-svg/-/iron-iconset-svg-3.0.1.tgz",
-      "integrity": "sha512-XNwURbNHRw6u2fJe05O5fMYye6GSgDlDqCO+q6K1zAnKIrpgZwf2vTkBd5uCcZwsN0FyCB3mvNZx4jkh85dRDw==",
-      "requires": {
-        "@polymer/iron-meta": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-list": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-list/-/iron-list-3.1.0.tgz",
-      "integrity": "sha512-Eiv6xd3h3oPmn8SXFntXVfC3ZnegH+KHAxiKLKcOASFSRY3mHnr2AdcnExUJ9ItoCMA5UzKaM/0U22eWzGERtA==",
-      "requires": {
-        "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.26",
-        "@polymer/iron-resizable-behavior": "^3.0.0-pre.26",
-        "@polymer/iron-scroll-target-behavior": "^3.0.0-pre.26",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-meta": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-meta/-/iron-meta-3.0.1.tgz",
-      "integrity": "sha512-pWguPugiLYmWFV9UWxLWzZ6gm4wBwQdDy4VULKwdHCqR7OP7u98h+XDdGZsSlDPv6qoryV/e3tGHlTIT0mbzJA==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-resizable-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-resizable-behavior/-/iron-resizable-behavior-3.0.1.tgz",
-      "integrity": "sha512-FyHxRxFspVoRaeZSWpT3y0C9awomb4tXXolIJcZ7RvXhMP632V5lez+ch5G5SwK0LpnAPkg35eB0LPMFv+YMMQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/iron-scroll-target-behavior": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@polymer/iron-scroll-target-behavior/-/iron-scroll-target-behavior-3.0.1.tgz",
-      "integrity": "sha512-xg1WanG25BIkQE8rhuReqY9zx1K5M7F+YAIYpswEp5eyDIaZ1Y3vUmVeQ3KG+hiSugzI1M752azXN7kvyhOBcQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@polymer/polymer": {
-      "version": "3.4.1",
-      "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.4.1.tgz",
-      "integrity": "sha512-KPWnhDZibtqKrUz7enIPOiO4ZQoJNOuLwqrhV2MXzIt3VVnUVJVG5ORz4Z2sgO+UZ+/UZnPD0jqY+jmw/+a9mQ==",
-      "requires": {
-        "@webcomponents/shadycss": "^1.9.1"
-      }
-    },
     "@sinonjs/commons": {
       "version": "1.8.0",
       "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.0.tgz",
@@ -1210,6 +1124,16 @@
         "@sinonjs/commons": "^1.7.0"
       }
     },
+    "@trevoreyre/autocomplete": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@trevoreyre/autocomplete/-/autocomplete-2.2.0.tgz",
+      "integrity": "sha512-GMd2zgWcAK7TJl2h4med2duYjNlthao89xx1dL3PCfTeitOjztVUkmfsklaonEY5mhW6PaMF4cH/vtf8Xwi5eg=="
+    },
+    "@trevoreyre/autocomplete-js": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@trevoreyre/autocomplete-js/-/autocomplete-js-2.2.0.tgz",
+      "integrity": "sha512-emHJWZBPWdB5iDW9MrLSfq3lopyDlIhYXa8ttnCX9kQp1g+G0Lmfu/v6fW2aggjAfsZX8ksuZSG65o+EdwoN0g=="
+    },
     "@types/babel__core": {
       "version": "7.1.9",
       "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz",
@@ -1349,126 +1273,6 @@
       "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==",
       "dev": true
     },
-    "@vaadin/vaadin-combo-box": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-combo-box/-/vaadin-combo-box-5.1.0.tgz",
-      "integrity": "sha512-7EBfTP+oAt7m1Hx1JffcNix95IJbM4weOg9LOQWrD2+Ei+NePcJIl1v3nHzErIPhdh/M+LkFcRo7dV5HT/A6Lw==",
-      "requires": {
-        "@polymer/iron-a11y-announcer": "^3.0.0",
-        "@polymer/iron-a11y-keys-behavior": "^3.0.0",
-        "@polymer/iron-list": "^3.0.0",
-        "@polymer/iron-resizable-behavior": "^3.0.0",
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-control-state-mixin": "^2.1.1",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-item": "^2.2.0-alpha1",
-        "@vaadin/vaadin-lumo-styles": "^1.1.1",
-        "@vaadin/vaadin-material-styles": "^1.1.2",
-        "@vaadin/vaadin-overlay": "^3.4.0",
-        "@vaadin/vaadin-text-field": "^2.6.0",
-        "@vaadin/vaadin-themable-mixin": "^1.5.2"
-      }
-    },
-    "@vaadin/vaadin-control-state-mixin": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-control-state-mixin/-/vaadin-control-state-mixin-2.2.1.tgz",
-      "integrity": "sha512-Y/y2aRXiQqa7sqQM2f5DkXK2U+sHEyGql67SXaXljGIMiFT0H7rfJZ+5TcXucpsUb2z+R0oCq8Q3+GES9YP9Fg==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-development-mode-detector": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.4.tgz",
-      "integrity": "sha512-S+PaFrZpK8uBIOnIHxjntTrgumd5ztuCnZww96ydGKXgo9whXfZsbMwDuD/102a/IuPUMyF+dh/n3PbWzJ6igA=="
-    },
-    "@vaadin/vaadin-element-mixin": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-element-mixin/-/vaadin-element-mixin-2.4.1.tgz",
-      "integrity": "sha512-Ie7fwcOmg1C71UFuRwcuo2GKS+HbKvLedfs3hGdICiuwJ56cQvQsbIlxa4utKWWCVlf6yuSvMrny8efPPenfTA==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-development-mode-detector": "^2.0.0",
-        "@vaadin/vaadin-usage-statistics": "^2.1.0"
-      }
-    },
-    "@vaadin/vaadin-item": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-item/-/vaadin-item-2.2.0.tgz",
-      "integrity": "sha512-Yvpd2fiTwvfJA18lfjYsj33L+yr/YfHg3WZNp+v8OghfacfMdD5JofJpK6s0cJIuNTg+TC6hG1UwzcEC9jNMFw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-lumo-styles": "^1.1.0",
-        "@vaadin/vaadin-material-styles": "^1.1.0",
-        "@vaadin/vaadin-themable-mixin": "^1.2.1"
-      }
-    },
-    "@vaadin/vaadin-lumo-styles": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-1.6.0.tgz",
-      "integrity": "sha512-MTJ2JssEVF3Go5b+zIe86Jw8nNtaN91wHmO2Ic1eI27PEJ5dRRGcLWX9CjTEx/8Zu9+3Fk4YeVP9ABWhiZZGUw==",
-      "requires": {
-        "@polymer/iron-icon": "^3.0.0",
-        "@polymer/iron-iconset-svg": "^3.0.0",
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-material-styles": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-1.3.2.tgz",
-      "integrity": "sha512-EFrvGScoxhLNrPnWtT2Ia77whjF2TD4jrcyeh1jv9joCA2n5SUba+4XJciVSGmopqqQato6lwRnZSvMLJX7cyw==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0"
-      }
-    },
-    "@vaadin/vaadin-overlay": {
-      "version": "3.5.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-overlay/-/vaadin-overlay-3.5.0.tgz",
-      "integrity": "sha512-w5Q4eTcbMictY1+FxeZk107Jf/dqSKwcC5QQ2osIGHixTC8ZyNsglKH0JeX4bBMKgNgby02GmxRCj4TPWz/D3Q==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-element-mixin": "^2.4.0",
-        "@vaadin/vaadin-lumo-styles": "^1.3.0",
-        "@vaadin/vaadin-material-styles": "^1.2.0",
-        "@vaadin/vaadin-themable-mixin": "^1.6.1"
-      }
-    },
-    "@vaadin/vaadin-text-field": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-text-field/-/vaadin-text-field-2.6.0.tgz",
-      "integrity": "sha512-ErwPR67Fq1Zw9VWdj1ZHPk5JuNR0n+lMQk2wH7JmH1xibzXC20t2qkgaJUDnT5YpJ4Ap+7ZypUxBKWcbDu9D3A==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "@vaadin/vaadin-control-state-mixin": "^2.1.1",
-        "@vaadin/vaadin-element-mixin": "^2.3.0",
-        "@vaadin/vaadin-lumo-styles": "^1.6.0",
-        "@vaadin/vaadin-material-styles": "^1.3.2",
-        "@vaadin/vaadin-themable-mixin": "^1.2.1"
-      }
-    },
-    "@vaadin/vaadin-themable-mixin": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-1.6.1.tgz",
-      "integrity": "sha512-UXjOlEfMEk/QxpBjpiO0QTjPOSiO88bhhtV+0UTfpqk8ILvJYO+6vbwcja33xY5Wi9sTAXtHixAjM0LthyXglQ==",
-      "requires": {
-        "@polymer/polymer": "^3.0.0",
-        "lit-element": "^2.0.0"
-      }
-    },
-    "@vaadin/vaadin-usage-statistics": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.0.tgz",
-      "integrity": "sha512-e81nbqY5zsaYhLJuOVkJkB/Um1pGK5POIqIlTNhUfjeoyGaJ63tiX8+D5n6F+GgVxUTLUarsKa6SKRcQel0AzA==",
-      "requires": {
-        "@vaadin/vaadin-development-mode-detector": "^2.0.0"
-      }
-    },
-    "@webcomponents/shadycss": {
-      "version": "1.9.6",
-      "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.9.6.tgz",
-      "integrity": "sha512-5fFjvP0jQJZoXK6YzYeYcIDGJ5oEsdjr1L9VaYLw5yxNd4aRz4srMpwCwldeNG0A6Hvr9igbG7fCsBeiiCXd7A=="
-    },
     "abab": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz",
@@ -5472,19 +5276,6 @@
       "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
       "dev": true
     },
-    "lit-element": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-2.3.1.tgz",
-      "integrity": "sha512-tOcUAmeO3BzwiQ7FGWdsshNvC0HVHcTFYw/TLIImmKwXYoV0E7zCBASa8IJ7DiP4cen/Yoj454gS0qqTnIGsFA==",
-      "requires": {
-        "lit-html": "^1.1.1"
-      }
-    },
-    "lit-html": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-1.2.1.tgz",
-      "integrity": "sha512-GSJHHXMGLZDzTRq59IUfL9FCdAlGfqNp/dEa7k7aBaaWD+JKaCjsAk9KYm2V12ItonVaYx2dprN66Zdm1AuBTQ=="
-    },
     "load-json-file": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
diff --git a/tobago-theme/tobago-theme-standard/src/main/npm/package.json b/tobago-theme/tobago-theme-standard/src/main/npm/package.json
index ed933c8..cf414bf 100644
--- a/tobago-theme/tobago-theme-standard/src/main/npm/package.json
+++ b/tobago-theme/tobago-theme-standard/src/main/npm/package.json
@@ -39,7 +39,8 @@
     "dev-mkdir": "mkdir -p ../../../../../tobago-example/tobago-example-demo/target/tobago-theme-standard/META-INF/resources/tobago/standard/$npm_package_version"
   },
   "dependencies": {
-    "@vaadin/vaadin-combo-box": "^5.0.9",
+    "@trevoreyre/autocomplete": "^2.2.0",
+    "@trevoreyre/autocomplete-js": "^2.2.0",
     "vanillajs-datepicker": "^1.0.3"
   },
   "devDependencies": {
diff --git a/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-all.ts b/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-all.ts
index d87e181..33b5670 100644
--- a/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-all.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-all.ts
@@ -19,7 +19,6 @@ import "./tobago-listener";
 import "./tobago-bar";
 import "./tobago-core";
 import "./tobago-dropdown";
-import "@vaadin/vaadin-combo-box/vaadin-combo-box-light";
 import "./tobago-date";
 import "./tobago-date-utils";
 import "./tobago-command";
diff --git a/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-suggest.ts b/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-suggest.ts
index 0dabb2e..3f1f97f 100644
--- a/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-suggest.ts
+++ b/tobago-theme/tobago-theme-standard/src/main/npm/ts/tobago-suggest.ts
@@ -15,17 +15,11 @@
  * limitations under the License.
  */
 
-import {ComboBoxLightElement} from "@vaadin/vaadin-combo-box/vaadin-combo-box-light";
+import Autocomplete from "@trevoreyre/autocomplete-js/Autocomplete.js";
 
-class Suggest extends HTMLElement {
+export class Suggest extends HTMLElement {
 
-  static callback: (items: String[], size: number) => {};// todo string vs String
-
-  static timeout: number;
-
-  constructor() {
-    super();
-  }
+  autocomplete: Autocomplete;
 
   get hiddenInput(): HTMLInputElement {
     return this.querySelector(":scope > input[type=hidden]");
@@ -36,6 +30,10 @@ class Suggest extends HTMLElement {
     return root.getElementById(this.for) as HTMLInputElement;
   }
 
+  get base(): HTMLElement {
+    return this.suggestInput.closest("tobago-in");
+  }
+
   get for(): string {
     return this.getAttribute("for");
   }
@@ -44,132 +42,41 @@ class Suggest extends HTMLElement {
     this.setAttribute("for", forValue);
   }
 
-  get minChars(): number {
-    return parseInt(this.getAttribute("min-chars"));
-  }
-
-  set minChars(minChars: number) {
-    this.setAttribute("min-chars", String(minChars));
-  }
-
-  get delay(): number {
-    return parseInt(this.getAttribute("delay"));
-  }
-
-  set delay(delay: number) {
-    this.setAttribute("delay", String(delay));
-  }
-
-  get maxItems(): number {
-    return parseInt(this.getAttribute("max-items"));
-  }
-
-  set maxItems(maxItems: number) {
-    this.setAttribute("max-items", String(maxItems));
-  }
-
-  get update(): boolean {
-    return this.hasAttribute("update");
-  }
-
-  set update(update: boolean) {
-    if (update) {
-      this.setAttribute("update", "");
-    } else {
-      this.removeAttribute("update");
-    }
-  }
-
-  get totalCount(): number {
-    return parseInt(this.getAttribute("total-count"));
-  }
-
-  set totalCount(totalCount: number) {
-    this.setAttribute("total-count", String(totalCount));
-  }
-
   get items(): string[] {
     return JSON.parse(this.getAttribute("items"));
   }
 
-  set items(items: string[]) {
-    this.setAttribute("items", JSON.stringify(items));
+  constructor() {
+    super();
   }
 
-  get localMenu(): boolean {
-    return this.hasAttribute("local-menu");
-  }
+  connectedCallback(): void {
+    console.log("* autocomplete init *********************************************************************");
 
-  set localMenu(update: boolean) {
-    if (update) {
-      this.setAttribute("local-menu", "");
-    } else {
-      this.removeAttribute("local-menu");
-    }
-  }
+    this.base.classList.add("autocomplete");
+    this.suggestInput.classList.add("autocomplete-input");
 
-  connectedCallback(): void {
+    this.suggestInput.insertAdjacentHTML("afterend", `<ul class="autocomplete-result-list"></ul>`);
 
-    let vaadinComboBox: ComboBoxLightElement = this.suggestInput.parentElement;
-
-    if (vaadinComboBox.tagName !== "VAADIN-COMBO-BOX-LIGHT") { // new
-      vaadinComboBox = document.createElement("vaadin-combo-box-light");
-      vaadinComboBox.attrForValue = "value";
-      vaadinComboBox.allowCustomValue = true;
-      vaadinComboBox.readOnly = this.suggestInput.readOnly;
-      vaadinComboBox.disabled = this.suggestInput.disabled;
-      this.suggestInput.classList.add("input"); // todo do this in SuggestRenderer?
-      const parent = this.suggestInput.parentElement;
-      vaadinComboBox.appendChild(this.suggestInput);
-      parent.appendChild(vaadinComboBox);
-
-      vaadinComboBox.dataProvider = function dataProvider(
-          params: { page: number, pageSize: number, filter: string },
-          callback: (items: String[], size: number) => {}): void {
-        console.info("call for data: %o", params);
-        console.info("vaadinComboBox id: %s", vaadinComboBox.id);
-        const suggest = vaadinComboBox.closest("tobago-in").querySelector("tobago-suggest") as Suggest;
-        suggest.hiddenInput.value = params.filter;
-        if (suggest.update) {
-          if (params.filter.length >= suggest.minChars) {
-            if (Suggest.timeout) {
-              window.clearTimeout(Suggest.timeout);
-            }
-            Suggest.timeout = window.setTimeout(function (): void {
-              Suggest.callback = callback;
-              jsf.ajax.request(
-                  suggest.id,
-                  null, // todo: event?
-                  {
-                    "javax.faces.behavior.event": "suggest",
-                    execute: suggest.id,
-                    render: suggest.id
-                  });
-            }, suggest.delay);
-          } else {
-            callback([], 0);
-          }
-        } else {
-          const items = suggest.items;
-          const filteredItems:string[] = [];
-          const lowerFilter = params.filter.toLocaleLowerCase();
-          for (const item of items) {
-            if (item.toLowerCase().indexOf(lowerFilter) > -1) {
-              filteredItems.push(item);
-            }
-          }
-          callback(filteredItems, filteredItems.length);
+    const options = {
+      search: input => {
+        console.debug("input = '" + input + "'");
+        if (input.length < 1) {
+          return [];
         }
-      };
-    } else { // already initialized: so update items (from AJAX) only
-      if (Suggest.callback) {
-        Suggest.callback(this.items, this.totalCount);
-        Suggest.callback = null;
-      } else {
-        console.warn("Missing Suggest.callback!");
+        const inputLower = input.toLowerCase();
+        let strings = this.items.filter(country => {
+          return country.toLowerCase().startsWith(inputLower);
+        });
+        console.debug("out   = '" + strings + "'");
+        return strings;
       }
-    }
+    };
+    this.autocomplete = new Autocomplete(this.base, options);
+
+    console.log(this.autocomplete);
   }
+
 }
 
 document.addEventListener("DOMContentLoaded", function (event: Event): void {