@ably/ui 7.10.0-dev.e980a00 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/core/Meganav/component.js +1 -1
  2. package/core/Meganav.jsx +158 -36
  3. package/core/MeganavControlMobileDropdown/component.js +1 -1
  4. package/core/MeganavItemsMobile.jsx +7 -6
  5. package/core/MeganavItemsSignedIn.jsx +9 -8
  6. package/core/MeganavSearch.jsx +9 -8
  7. package/core/MeganavSearchAutocomplete/component.js +1 -1
  8. package/core/MeganavSearchPanel.jsx +7 -6
  9. package/core/MeganavSearchSuggestions/component.js +1 -1
  10. package/core/MeganavSearchSuggestions.jsx +6 -6
  11. package/core/fonts/source-code-pro.css +3 -0
  12. package/core/styles.css +17 -22
  13. package/package.json +1 -1
  14. package/src/core/Code/component.css +1 -3
  15. package/src/core/Meganav/component.js +4 -0
  16. package/src/core/MeganavControlMobileDropdown/component.js +0 -31
  17. package/src/core/MeganavItemsMobile/component.html.erb +1 -0
  18. package/src/core/MeganavItemsMobile/component.jsx +1 -0
  19. package/src/core/MeganavSearch/component.html.erb +2 -2
  20. package/src/core/MeganavSearch/component.jsx +2 -2
  21. package/src/core/MeganavSearchAutocomplete/component.js +8 -7
  22. package/src/core/MeganavSearchPanel/component.html.erb +1 -1
  23. package/src/core/MeganavSearchPanel/component.jsx +1 -1
  24. package/src/core/MeganavSearchSuggestions/component.html.erb +4 -4
  25. package/src/core/MeganavSearchSuggestions/component.js +123 -0
  26. package/src/core/MeganavSearchSuggestions/component.jsx +6 -6
  27. package/src/core/fonts/source-code-pro.css +3 -0
  28. package/src/core/styles/properties.css +4 -3
  29. package/src/core/styles/text.css +12 -16
  30. package/tailwind.config.js +12 -4
  31. package/core/fonts/.DS_Store +0 -0
  32. package/core/images/.DS_Store +0 -0
  33. package/preview/vendor/bundle/ruby/3.0.0/bundler/gems/ably-ui-abffd210ec0f/preview/log/.keep +0 -0
  34. package/preview/vendor/bundle/ruby/3.0.0/bundler/gems/ably-ui-abffd210ec0f/preview/tmp/.keep +0 -0
  35. package/preview/vendor/bundle/ruby/3.0.0/bundler/gems/ably-ui-abffd210ec0f/preview/tmp/pids/.keep +0 -0
  36. package/src/.DS_Store +0 -0
  37. package/src/core/.DS_Store +0 -0
  38. package/src/core/fonts/.DS_Store +0 -0
  39. package/src/core/images/.DS_Store +0 -0
  40. package/src/reset/.DS_Store +0 -0
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see component.js.LICENSE.txt */
2
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.AblyUi=e():(t.AblyUi=t.AblyUi||{},t.AblyUi.Core=t.AblyUi.Core||{},t.AblyUi.Core.MeganavSearchAutocomplete=e())}(this,(function(){return(()=>{var t={727:(t,e,s)=>{"use strict";t.exports=s(5647)},493:(t,e,s)=>{"use strict";s(2702).polyfill(),s(4301);var i=function(t,e,s,n,r,o,a){var c=function(t,e){return t||!1===t?"&"+e+"="+t:""};if("search"===s||"suggest"===s||"autocomplete"===s){var u="",h="",l=null;if("search"===s){l=s,u=n.keyword,u=n.enableLogicalOperators?u.replace(/ and /g," AND ").replace(/ or /g," OR ").replace(/ not /g," NOT "):u.replace(/ AND /g," and ").replace(/ OR /g," or ").replace(/ NOT /g," not "),u=encodeURIComponent(u);var f=n.fuzzy;if("retry"===f&&(f=!0===o),"search"===s){if(h=c(n.lang,"lang")+c(f,"fuzzy")+c(n.collectAnalytics,"collectAnalytics")+c(n.postfixWildcard,"postfixWildcard")+c(n.categories,"categories")+c(n.priceFromCents,"priceFromCents")+c(n.priceToCents,"priceToCents")+c(n.dateFrom,"dateFrom")+c(n.dateTo,"dateTo")+c(n.paging.page,"page")+c(n.paging.pageSize,"limit")+c(n.paging.sortBy,"sort")+c(n.paging.sortOrder,"order")+c(n.shuffleAndLimitTo,"shuffleAndLimitTo")+c(n.jwt,"jwt")+c(n.resultType,"resultType")+c(n.userToken,"userToken")+c(n.numFacets,"numFacets")+c(n.cacheResponseTime,"cacheResponseWithTtlSeconds")+c(n.searchOperator,"defaultOperator")+c(n.analyticsTag,"analyticsTag")+c(n.hierarchicalFacetSetting,"hierarchicalFacets"),n.customFieldFilters)for(var d=0;d<n.customFieldFilters.length;d++)h=h+"&customField="+n.customFieldFilters[d];if(n.facetFields)for(d=0;d<n.facetFields.length;d++)h=h+"&facet="+n.facetFields[d];if(n.rangeFacets&&(h=h+"&rangeFacets="+JSON.stringify(n.rangeFacets)),n.statsFields)for(d=0;d<n.statsFields.length;d++)h=h+"&fieldStat="+n.statsFields[d];if(n.personalizationEvents&&Array.isArray(n.personalizationEvents))for(d=0;d<n.personalizationEvents.length;d++){var g=n.personalizationEvents[d],p=Object.keys(g);h=h+"&personalizationEvent="+encodeURIComponent(p+"="+g[p])}a?h=h+"&filter="+encodeURIComponent(JSON.stringify(a)):n.filterObject&&(h=h+"&filter="+encodeURIComponent(JSON.stringify(n.filterObject)))}}else"suggest"===s?(l=s,h=c(n.suggestionsSize,"size")+c(n.lang,"lang"),u=n.suggestionsPrefix):"autocomplete"===s&&(l="autocomplete/document-field",h=c(n.autocomplete.field,"source")+c(n.autocomplete.size,"size"),u=n.autocomplete.prefix);fetch("https://"+t+"/v1/"+l+"/"+e+"?term="+u+h).then((function(t){return t.json()})).then((function(a){if("search"===s&&"retry"===n.fuzzy&&0===a.total_hits&&!0!==o)i(t,e,s,n,r,!0);else{if(!0===o){var c=n.paging.pageSize;a.total_hits>=c&&(a.total_hits=c)}r(a)}})).catch((function(t){console.log(t),r({error:{response:500,message:"invalid server response"}})}))}else r({error:{response:400,message:"invalid query type"}})};t.exports=i},5647:(t,e,s)=>{"use strict";var i=s(493),n=s(9610),r=s(3716),o=s(7585),a=s(5159),c=s(4508);t.exports=function(t,e){this.sitekey=t,this.privatekey=e,this.apiHostname="api.addsearch.com",this.settings=new o,this.sessionId=("a-"+1e8*Math.random()).substring(0,10),this.search=function(t,e){var s=null,n=null;if(t&&a.isFunction(e))s=t,n=e;else if(!e&&a.isFunction(t))s=this.settings.getSettings().keyword,n=t;else{if(!this.settings.getSettings().callback)throw"Illegal search parameters. Should be (keyword, callbackFunction) or (callbackFunction)";s=this.settings.getSettings().keyword,n=this.settings.getSettings().callback}this.settings.setCallback(n),this.settings.setKeyword(s),this.throttledSearchFetch||(this.throttledSearchFetch=c(this.settings.getSettings().throttleTimeMs,i)),this.throttledSearchFetch(this.apiHostname,this.sitekey,"search",this.settings.getSettings(),n)},this.suggestions=function(t,e){if(!t||!e||!a.isFunction(e))throw"Illegal suggestions parameters. Should be (prefix, callbackFunction)";this.settings.setSuggestionsPrefix(t),this.throttledSuggestionsFetch||(this.throttledSuggestionsFetch=c(this.settings.getSettings().throttleTimeMs,i)),this.throttledSuggestionsFetch(this.apiHostname,this.sitekey,"suggest",this.settings.getSettings(),e)},this.autocomplete=function(t,e,s){if(!(t&&e&&s&&a.isFunction(s)))throw"Illegal autocomplete parameters. Should be (field, prefix, callbackFunction)";this.settings.setAutocompleteParams(t,e),this.throttledAutocompleteFetch||(this.throttledAutocompleteFetch=c(this.settings.getSettings().throttleTimeMs,i)),this.throttledAutocompleteFetch(this.apiHostname,this.sitekey,"autocomplete",this.settings.getSettings(),s)},this.fetchCustomApi=function(t,e,s){var n=Object.assign({},this.settings.getSettings());n.facetFields=n.facetFields.filter((e=>t===e)),i(this.apiHostname,this.sitekey,"search",n,s,null,e)},this.fetchRangeFacets=function(t,e,s){var n=Object.assign({},this.settings.getSettings());n.rangeFacets||(n.rangeFacets=[]),n.rangeFacets.push({field:t.field,ranges:t.ranges}),i(this.apiHostname,this.sitekey,"search",n,s,null,e)},this.getDocument=function(t){return n.getDocument(this.apiHostname,this.sitekey,this.privatekey,t)},this.saveDocument=function(t){return n.saveDocument(this.apiHostname,this.sitekey,this.privatekey,t)},this.saveDocumentsBatch=function(t){if(!t||!t.documents||!Array.isArray(t.documents))throw"Please provide an array of documents: {documents: []}";return n.saveDocumentsBatch(this.apiHostname,this.sitekey,this.privatekey,t)},this.deleteDocument=function(t){return n.deleteDocument(this.apiHostname,this.sitekey,this.privatekey,t)},this.deleteDocumentsBatch=function(t){if(!t||!t.documents||!Array.isArray(t.documents))throw"Please provide an array of document ids: {documents: []}";return n.deleteDocumentsBatch(this.apiHostname,this.sitekey,this.privatekey,t)},this.setApiHostname=function(t){this.apiHostname=t},this.getSettings=function(){return this.settings.getSettings()},this.setLanguage=function(t){this.settings.setLanguage(t)},this.setCategoryFilters=function(t){this.settings.setCategoryFilters(t)},this.addCustomFieldFilter=function(t,e){this.settings.addCustomFieldFilter(t,e)},this.removeCustomFieldFilter=function(t,e){this.settings.removeCustomFieldFilter(t,e)},this.setPriceRangeFilter=function(t,e){this.settings.setPriceRangeFilter(t,e)},this.setDateFilter=function(t,e){this.settings.setDateFilter(t,e)},this.setJWT=function(t){this.settings.setJWT(t)},this.setUserToken=function(t){this.settings.setUserToken(t)},this.setPaging=function(t,e,s,i){this.settings.setPaging(t,e,s,i)},this.nextPage=function(){this.settings.nextPage()},this.previousPage=function(){this.settings.previousPage()},this.setSuggestionsSize=function(t){this.settings.setSuggestionsSize(t)},this.setAutocompleteSize=function(t){this.settings.setAutocompleteSize(t)},this.addFacetField=function(t){this.settings.addFacetField(t)},this.addHierarchicalFacetSetting=function(t){this.settings.addHierarchicalFacetSetting(t)},this.addRangeFacet=function(t,e){this.settings.addRangeFacet(t,e)},this.addStatsField=function(t){this.settings.addStatsField(t)},this.setNumberOfFacets=function(t){this.settings.setNumberOfFacets(t)},this.setResultType=function(t){this.settings.setResultType(t)},this.setPersonalizationEvents=function(t){this.settings.setPersonalizationEvents(t)},this.setFilterObject=function(t){this.settings.setFilterObject(t)},this.setShuffleAndLimitTo=function(t){this.settings.setShuffleAndLimitTo(t)},this.setFuzzyMatch=function(t){this.settings.setFuzzyMatch(t)},this.setPostfixWildcard=function(t){this.settings.setPostfixWildcard(t)},this.setCacheResponseTime=function(t){this.settings.setCacheResponseTime(t)},this.setCollectAnalytics=function(t){this.settings.setCollectAnalytics(t)},this.setAnalyticsTag=function(t){this.settings.setAnalyticsTag(t)},this.setThrottleTime=function(t){this.settings.setThrottleTime(t)},this.setStatsSessionId=function(t){this.sessionId=t},this.getStatsSessionId=function(){return this.sessionId},this.enableLogicalOperators=function(t){this.settings.enableLogicalOperators(t)},this.setSearchOperator=function(t){this.settings.setSearchOperator(t)},this.sendStatsEvent=function(t,e,s){if("search"===t)s={action:"search",session:this.sessionId,keyword:e,numberOfResults:s.numberOfResults,analyticsTag:this.getSettings().analyticsTag},r(this.apiHostname,this.sitekey,s);else{if("click"!==t)throw"Illegal sendStatsEvent type parameters. Should be search or click)";s={action:"click",session:this.sessionId,keyword:e,docid:s.documentId,position:s.position,analyticsTag:this.getSettings().analyticsTag},r(this.apiHostname,this.sitekey,s)}},this.searchResultClicked=function(t,e){this.sendStatsEvent("click",this.settings.getSettings().keyword,{documentId:t,position:e})}}},9610:(t,e,s)=>{"use strict";s(4301);const i=s(5159),n=s(2702).Promise,r=function(t,e){return{Authorization:"Basic "+i.base64(t+":"+e),"Content-Type":"application/json"}};t.exports={getDocument:function(t,e,s,i){return new n(((n,o)=>{fetch("https://"+t+"/v2/indices/"+e+"/documents/"+i,{method:"GET",headers:r(e,s)}).then((t=>{200==t.status?n(t.json()):o({status:t.status,text:t.statusText})})).catch((t=>{o({status:400,text:t})}))}))},saveDocument:function(t,e,s,i){const o=i.id||i.url;return new n(((n,a)=>{fetch("https://"+t+"/v2/indices/"+e+"/documents/",{method:o?"PUT":"POST",headers:r(e,s),body:JSON.stringify(i)}).then((t=>{202==t.status?n({status:t.status,text:t.statusText}):a({status:t.status,text:t.statusText})})).catch((t=>{a({status:400,text:t})}))}))},saveDocumentsBatch:function(t,e,s,i){return new n(((n,o)=>{fetch("https://"+t+"/v2/indices/"+e+"/documents:batch",{method:"PUT",headers:r(e,s),body:JSON.stringify(i)}).then((t=>{202==t.status?n({status:t.status,text:t.statusText}):o({status:t.status,text:t.statusText})})).catch((t=>{o({status:400,text:t})}))}))},deleteDocument:function(t,e,s,i){return new n(((n,o)=>{fetch("https://"+t+"/v2/indices/"+e+"/documents/"+i,{method:"DELETE",headers:r(e,s)}).then((t=>{202==t.status?n({status:t.status,text:t.statusText}):o({status:t.status,text:t.statusText})})).catch((t=>{o({status:400,text:t})}))}))},deleteDocumentsBatch:function(t,e,s,i){return new n(((n,o)=>{fetch("https://"+t+"/v2/indices/"+e+"/documents:batch",{method:"DELETE",headers:r(e,s),body:JSON.stringify(i)}).then((t=>{202==t.status?n({status:t.status,text:t.statusText}):o({status:t.status,text:t.statusText})})).catch((t=>{o({status:400,text:t})}))}))}}},7585:t=>{"use strict";t.exports=function(){this.settings={keyword:"*",callback:null,throttleTimeMs:200,fuzzy:"auto",paging:{page:1,pageSize:10,sortBy:"relevance",sortOrder:"desc"},customFieldFilters:[],userToken:null,suggestionsSize:10,facetFields:[],autocomplete:{size:10},searchOperator:null,enableLogicalOperators:!1,cacheResponseTime:null},this.getSettings=function(){return this.settings},this.setKeyword=function(t){this.settings.keyword=t||"*"},this.setCallback=function(t){this.settings.callback=t},this.setThrottleTime=function(t){this.settings.throttleTimeMs=t},this.setSuggestionsPrefix=function(t){this.settings.suggestionsPrefix=t},this.setSuggestionsSize=function(t){this.settings.suggestionsSize=t},this.setAutocompleteSize=function(t){this.settings.autocomplete.size=t},this.setAutocompleteParams=function(t,e){this.settings.autocomplete.field=t,this.settings.autocomplete.prefix=e},this.setLanguage=function(t){if(t&&2!==t.length)throw'use 2-char language code (e.g. "en")';this.settings.lang=t},this.setFuzzyMatch=function(t){if(!0!==t&&!1!==t&&"auto"!==t&&"retry"!==t)throw"fuzzy matching can be true, false, 'auto', or 'retry'";this.settings.fuzzy=t},this.enableLogicalOperators=function(t){this.settings.enableLogicalOperators=t},this.setCacheResponseTime=function(t){this.settings.cacheResponseTime=t},this.setPostfixWildcard=function(t){this.settings.postfixWildcard=t},this.setCollectAnalytics=function(t){this.settings.collectAnalytics=t},this.setAnalyticsTag=function(t){this.settings.analyticsTag=t},this.setCategoryFilters=function(t){this.settings.categories=t},this.setFilterObject=function(t){this.settings.filterObject=t},this.setPriceRangeFilter=function(t,e){this.settings.priceFromCents=t,this.settings.priceToCents=e},this.addCustomFieldFilter=function(t,e){var s=encodeURIComponent(t+"="+e);-1===this.settings.customFieldFilters.indexOf(s)&&this.settings.customFieldFilters.push(s)},this.removeCustomFieldFilter=function(t,e){var s=!1,i=encodeURIComponent(t+"="+e);e||(s=!0,i=encodeURIComponent(t+"="));for(var n=this.settings.customFieldFilters.length;n>0;n--){var r=this.settings.customFieldFilters[n-1];(s&&0===r.indexOf(i)||r===i)&&this.settings.customFieldFilters.splice(n-1,1)}},this.setDateFilter=function(t,e){this.settings.dateFrom=t,this.settings.dateTo=e},this.setKeyword=function(t){this.settings.keyword=t||"*"},this.setJWT=function(t){this.settings.jwt=t},this.setUserToken=function(t){this.settings.userToken=t},this.setPersonalizationEvents=function(t){this.settings.personalizationEvents=t},this.setResultType=function(t){this.settings.resultType=t},this.addFacetField=function(t){-1===this.settings.facetFields.indexOf(t)&&this.settings.facetFields.push(t)},this.addHierarchicalFacetSetting=function(t){this.settings.hierarchicalFacetSetting=JSON.stringify(t)},this.addRangeFacet=function(t,e){this.settings.rangeFacets||(this.settings.rangeFacets=[]),this.settings.rangeFacets.push({field:t,ranges:e})},this.addStatsField=function(t){this.settings.statsFields||(this.settings.statsFields=[]),-1===this.settings.statsFields.indexOf(t)&&this.settings.statsFields.push(t)},this.setNumberOfFacets=function(t){this.settings.numFacets=t},this.setPaging=function(t,e,s,i){if(t<1)throw"page must be 1 or bigger";if(e<1||e>300)throw"pageSize must be 1-300";if("asc"!==i&&"desc"!==i)throw"sortOrder must be asc or desc";this.settings.paging.page=t,this.settings.paging.pageSize=e,this.settings.paging.sortBy=s,this.settings.paging.sortOrder=i},this.setShuffleAndLimitTo=function(t){this.settings.shuffleAndLimitTo=t},this.nextPage=function(){this.settings.paging.page=this.settings.paging.page+1},this.previousPage=function(){this.settings.paging.page>0&&(this.settings.paging.page=this.settings.paging.page-1)},this.setSearchOperator=function(t){if("and"!==t&&"or"!==t)throw"operator must be 'and' || 'or'";this.settings.searchOperator=t}}},3716:(t,e,s)=>{"use strict";s(2702).polyfill(),s(4301),t.exports=function(t,e,s){"undefined"!=typeof window&&window.navigator&&window.navigator.sendBeacon?navigator.sendBeacon("https://"+t+"/v1/stats/"+e+"/",JSON.stringify(s)):fetch("https://"+t+"/v1/stats/"+e+"/",{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify(s)})}},4508:t=>{t.exports=function(t,e){var s,i=0;function n(){s&&clearTimeout(s)}return function(){var r=this,o=Date.now()-i,a=arguments;function c(){i=Date.now(),e.apply(r,a)}n(),o>t?c():s=setTimeout(c,t-o)}}},5159:(t,e,s)=>{t.exports={isFunction:function(t){return t&&"[object Function]"==={}.toString.call(t)},base64:function(t){return s.g.window={},window&&window.btoa?window.btoa(t):Buffer?Buffer.from(t).toString("base64"):void 0}}},9581:(t,e,s)=>{"use strict";s.d(e,{A:()=>i});var i=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector("[data-id=".concat(t,"]"))}},2702:function(t,e,s){t.exports=function(){"use strict";function t(t){return"function"==typeof t}var e=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},i=0,n=void 0,r=void 0,o=function(t,e){d[i]=t,d[i+1]=e,2===(i+=2)&&(r?r(g):b())};var a="undefined"!=typeof window?window:void 0,c=a||{},u=c.MutationObserver||c.WebKitMutationObserver,h="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),l="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function f(){var t=setTimeout;return function(){return t(g,1)}}var d=new Array(1e3);function g(){for(var t=0;t<i;t+=2)(0,d[t])(d[t+1]),d[t]=void 0,d[t+1]=void 0;i=0}var p,y,m,v,b=void 0;function w(t,e){var s=this,i=new this.constructor(S);void 0===i[F]&&R(i);var n=s._state;if(n){var r=arguments[n-1];o((function(){return j(n,i,r,s._result)}))}else P(s,i,t,e);return i}function T(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var e=new this(S);return x(e,t),e}b=h?function(){return process.nextTick(g)}:u?(y=0,m=new u(g),v=document.createTextNode(""),m.observe(v,{characterData:!0}),function(){v.data=y=++y%2}):l?((p=new MessageChannel).port1.onmessage=g,function(){return p.port2.postMessage(0)}):void 0===a?function(){try{var t=Function("return this")().require("vertx");return void 0!==(n=t.runOnLoop||t.runOnContext)?function(){n(g)}:f()}catch(t){return f()}}():f();var F=Math.random().toString(36).substring(2);function S(){}var A=void 0;function _(e,s,i){s.constructor===e.constructor&&i===w&&s.constructor.resolve===T?function(t,e){1===e._state?E(t,e._result):2===e._state?k(t,e._result):P(e,void 0,(function(e){return x(t,e)}),(function(e){return k(t,e)}))}(e,s):void 0===i?E(e,s):t(i)?function(t,e,s){o((function(t){var i=!1,n=function(t,e,s,i){try{t.call(e,s,i)}catch(t){return t}}(s,e,(function(s){i||(i=!0,e!==s?x(t,s):E(t,s))}),(function(e){i||(i=!0,k(t,e))}),t._label);!i&&n&&(i=!0,k(t,n))}),t)}(e,s,i):E(e,s)}function x(t,e){if(t===e)k(t,new TypeError("You cannot resolve a promise with itself"));else if(n=typeof(i=e),null===i||"object"!==n&&"function"!==n)E(t,e);else{var s=void 0;try{s=e.then}catch(e){return void k(t,e)}_(t,e,s)}var i,n}function O(t){t._onerror&&t._onerror(t._result),C(t)}function E(t,e){t._state===A&&(t._result=e,t._state=1,0!==t._subscribers.length&&o(C,t))}function k(t,e){t._state===A&&(t._state=2,t._result=e,o(O,t))}function P(t,e,s,i){var n=t._subscribers,r=n.length;t._onerror=null,n[r]=e,n[r+1]=s,n[r+2]=i,0===r&&t._state&&o(C,t)}function C(t){var e=t._subscribers,s=t._state;if(0!==e.length){for(var i=void 0,n=void 0,r=t._result,o=0;o<e.length;o+=3)i=e[o],n=e[o+s],i?j(s,i,n,r):n(r);t._subscribers.length=0}}function j(e,s,i,n){var r=t(i),o=void 0,a=void 0,c=!0;if(r){try{o=i(n)}catch(t){c=!1,a=t}if(s===o)return void k(s,new TypeError("A promises callback cannot return that same promise."))}else o=n;s._state!==A||(r&&c?x(s,o):!1===c?k(s,a):1===e?E(s,o):2===e&&k(s,o))}var B=0;function R(t){t[F]=B++,t._state=void 0,t._result=void 0,t._subscribers=[]}var z=function(){function t(t,s){this._instanceConstructor=t,this.promise=new t(S),this.promise[F]||R(this.promise),e(s)?(this.length=s.length,this._remaining=s.length,this._result=new Array(this.length),0===this.length?E(this.promise,this._result):(this.length=this.length||0,this._enumerate(s),0===this._remaining&&E(this.promise,this._result))):k(this.promise,new Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var e=0;this._state===A&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var s=this._instanceConstructor,i=s.resolve;if(i===T){var n=void 0,r=void 0,o=!1;try{n=t.then}catch(t){o=!0,r=t}if(n===w&&t._state!==A)this._settledAt(t._state,e,t._result);else if("function"!=typeof n)this._remaining--,this._result[e]=t;else if(s===D){var a=new s(S);o?k(a,r):_(a,t,n),this._willSettleAt(a,e)}else this._willSettleAt(new s((function(e){return e(t)})),e)}else this._willSettleAt(i(t),e)},t.prototype._settledAt=function(t,e,s){var i=this.promise;i._state===A&&(this._remaining--,2===t?k(i,s):this._result[e]=s),0===this._remaining&&E(i,this._result)},t.prototype._willSettleAt=function(t,e){var s=this;P(t,void 0,(function(t){return s._settledAt(1,e,t)}),(function(t){return s._settledAt(2,e,t)}))},t}();var D=function(){function e(t){this[F]=B++,this._result=this._state=void 0,this._subscribers=[],S!==t&&("function"!=typeof t&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof e?function(t,e){try{e((function(e){x(t,e)}),(function(e){k(t,e)}))}catch(e){k(t,e)}}(this,t):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return e.prototype.catch=function(t){return this.then(null,t)},e.prototype.finally=function(e){var s=this,i=s.constructor;return t(e)?s.then((function(t){return i.resolve(e()).then((function(){return t}))}),(function(t){return i.resolve(e()).then((function(){throw t}))})):s.then(e,e)},e}();return D.prototype.then=w,D.all=function(t){return new z(this,t).promise},D.race=function(t){var s=this;return e(t)?new s((function(e,i){for(var n=t.length,r=0;r<n;r++)s.resolve(t[r]).then(e,i)})):new s((function(t,e){return e(new TypeError("You must pass an array to race."))}))},D.resolve=T,D.reject=function(t){var e=new this(S);return k(e,t),e},D._setScheduler=function(t){r=t},D._setAsap=function(t){o=t},D._asap=o,D.polyfill=function(){var t=void 0;if(void 0!==s.g)t=s.g;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var e=t.Promise;if(e){var i=null;try{i=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===i&&!e.cast)return}t.Promise=D},D.Promise=D,D}()},4301:(t,e,s)=>{s(7147),t.exports=self.fetch.bind(self)},7147:(t,e,s)=>{"use strict";s.r(e),s.d(e,{Headers:()=>g,Request:()=>T,Response:()=>S,DOMException:()=>_,fetch:()=>x});var i="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==i&&i,n="URLSearchParams"in i,r="Symbol"in i&&"iterator"in Symbol,o="FileReader"in i&&"Blob"in i&&function(){try{return new Blob,!0}catch(t){return!1}}(),a="FormData"in i,c="ArrayBuffer"in i;if(c)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],h=ArrayBuffer.isView||function(t){return t&&u.indexOf(Object.prototype.toString.call(t))>-1};function l(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(t)||""===t)throw new TypeError('Invalid character in header field name: "'+t+'"');return t.toLowerCase()}function f(t){return"string"!=typeof t&&(t=String(t)),t}function d(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return r&&(e[Symbol.iterator]=function(){return e}),e}function g(t){this.map={},t instanceof g?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function p(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function y(t){return new Promise((function(e,s){t.onload=function(){e(t.result)},t.onerror=function(){s(t.error)}}))}function m(t){var e=new FileReader,s=y(e);return e.readAsArrayBuffer(t),s}function v(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function b(){return this.bodyUsed=!1,this._initBody=function(t){var e;this.bodyUsed=this.bodyUsed,this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:o&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:a&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:n&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():c&&o&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=v(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):c&&(ArrayBuffer.prototype.isPrototypeOf(t)||h(t))?this._bodyArrayBuffer=v(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},o&&(this.blob=function(){var t=p(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?p(this)||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer)):this.blob().then(m)}),this.text=function(){var t,e,s,i=p(this);if(i)return i;if(this._bodyBlob)return t=this._bodyBlob,s=y(e=new FileReader),e.readAsText(t),s;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),s=new Array(e.length),i=0;i<e.length;i++)s[i]=String.fromCharCode(e[i]);return s.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},a&&(this.formData=function(){return this.text().then(F)}),this.json=function(){return this.text().then(JSON.parse)},this}g.prototype.append=function(t,e){t=l(t),e=f(e);var s=this.map[t];this.map[t]=s?s+", "+e:e},g.prototype.delete=function(t){delete this.map[l(t)]},g.prototype.get=function(t){return t=l(t),this.has(t)?this.map[t]:null},g.prototype.has=function(t){return this.map.hasOwnProperty(l(t))},g.prototype.set=function(t,e){this.map[l(t)]=f(e)},g.prototype.forEach=function(t,e){for(var s in this.map)this.map.hasOwnProperty(s)&&t.call(e,this.map[s],s,this)},g.prototype.keys=function(){var t=[];return this.forEach((function(e,s){t.push(s)})),d(t)},g.prototype.values=function(){var t=[];return this.forEach((function(e){t.push(e)})),d(t)},g.prototype.entries=function(){var t=[];return this.forEach((function(e,s){t.push([s,e])})),d(t)},r&&(g.prototype[Symbol.iterator]=g.prototype.entries);var w=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function T(t,e){if(!(this instanceof T))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');var s,i,n=(e=e||{}).body;if(t instanceof T){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new g(t.headers)),this.method=t.method,this.mode=t.mode,this.signal=t.signal,n||null==t._bodyInit||(n=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"same-origin",!e.headers&&this.headers||(this.headers=new g(e.headers)),this.method=(i=(s=e.method||this.method||"GET").toUpperCase(),w.indexOf(i)>-1?i:s),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(n),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==e.cache&&"no-cache"!==e.cache)){var r=/([?&])_=[^&]*/;r.test(this.url)?this.url=this.url.replace(r,"$1_="+(new Date).getTime()):this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}function F(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var s=t.split("="),i=s.shift().replace(/\+/g," "),n=s.join("=").replace(/\+/g," ");e.append(decodeURIComponent(i),decodeURIComponent(n))}})),e}function S(t,e){if(!(this instanceof S))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===e.statusText?"":""+e.statusText,this.headers=new g(e.headers),this.url=e.url||"",this._initBody(t)}T.prototype.clone=function(){return new T(this,{body:this._bodyInit})},b.call(T.prototype),b.call(S.prototype),S.prototype.clone=function(){return new S(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new g(this.headers),url:this.url})},S.error=function(){var t=new S(null,{status:0,statusText:""});return t.type="error",t};var A=[301,302,303,307,308];S.redirect=function(t,e){if(-1===A.indexOf(e))throw new RangeError("Invalid status code");return new S(null,{status:e,headers:{location:t}})};var _=i.DOMException;try{new _}catch(t){(_=function(t,e){this.message=t,this.name=e;var s=Error(t);this.stack=s.stack}).prototype=Object.create(Error.prototype),_.prototype.constructor=_}function x(t,e){return new Promise((function(s,n){var r=new T(t,e);if(r.signal&&r.signal.aborted)return n(new _("Aborted","AbortError"));var a=new XMLHttpRequest;function u(){a.abort()}a.onload=function(){var t,e,i={status:a.status,statusText:a.statusText,headers:(t=a.getAllResponseHeaders()||"",e=new g,t.replace(/\r?\n[\t ]+/g," ").split("\r").map((function(t){return 0===t.indexOf("\n")?t.substr(1,t.length):t})).forEach((function(t){var s=t.split(":"),i=s.shift().trim();if(i){var n=s.join(":").trim();e.append(i,n)}})),e)};i.url="responseURL"in a?a.responseURL:i.headers.get("X-Request-URL");var n="response"in a?a.response:a.responseText;setTimeout((function(){s(new S(n,i))}),0)},a.onerror=function(){setTimeout((function(){n(new TypeError("Network request failed"))}),0)},a.ontimeout=function(){setTimeout((function(){n(new TypeError("Network request failed"))}),0)},a.onabort=function(){setTimeout((function(){n(new _("Aborted","AbortError"))}),0)},a.open(r.method,function(t){try{return""===t&&i.location.href?i.location.href:t}catch(e){return t}}(r.url),!0),"include"===r.credentials?a.withCredentials=!0:"omit"===r.credentials&&(a.withCredentials=!1),"responseType"in a&&(o?a.responseType="blob":c&&r.headers.get("Content-Type")&&-1!==r.headers.get("Content-Type").indexOf("application/octet-stream")&&(a.responseType="arraybuffer")),!e||"object"!=typeof e.headers||e.headers instanceof g?r.headers.forEach((function(t,e){a.setRequestHeader(e,t)})):Object.getOwnPropertyNames(e.headers).forEach((function(t){a.setRequestHeader(t,f(e.headers[t]))})),r.signal&&(r.signal.addEventListener("abort",u),a.onreadystatechange=function(){4===a.readyState&&r.signal.removeEventListener("abort",u)}),a.send(void 0===r._bodyInit?null:r._bodyInit)}))}x.polyfill=!0,i.fetch||(i.fetch=x,i.Headers=g,i.Request=T,i.Response=S)}},e={};function s(i){var n=e[i];if(void 0!==n)return n.exports;var r=e[i]={exports:{}};return t[i].call(r.exports,r,r.exports,s),r.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),s.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};return(()=>{"use strict";s.d(i,{default:()=>r});var t=s(9581),e=s(727),n=s.n(e);const r=function(){var e=document.body.dataset.addSearchApiKey;if(!e)return console.log("No AddSearch API key provided, skipping search suggestions."),[];var s=new(n())(e);return[(0,t.A)("meganav-search-input"),(0,t.A)("meganav-mobile-search-input")].filter((function(t){return t})).map((function(e){var i=e.parentNode,n=(0,t.A)("meganav-search-autocomplete-container",i),r=(0,t.A)("meganav-search-autocomplete-list",i),o=(0,t.A)("meganav-search-input-clear",i);return function(t){var e=t.input,s=t.container,i=t.listContainer,n=t.clear,r=t.client;r.setAnalyticsTag("Meganav autocomplete"),r.setThrottleTime(400);var o,a=function(){s.classList.add("hidden"),i.innerHTML=""},c=function(t){(t||"").length>0&&n?n.classList.remove("invisible"):n&&n.classList.add("invisible")},u=function(t,e){return t.value.replace(e.toLowerCase(),'<span class="font-light">'.concat(e,"</span>"))},h=function(t){return window.location="/search?q=".concat(t)},l=function(t){var e=i.querySelector('[data-suggestion-index="'.concat(t+1,'"]'));e&&e.focus()},f=function(t){var e=t-1,s=i.querySelector('[data-suggestion-index="'.concat(e,'"]'));s&&s.focus()},d=function(t){var n=t.target.value;"ArrowDown"!==t.key?n?r.suggestions(n,function(t){return function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{suggestions:[]};if(c(t),0!==n.suggestions.length){var r=n.suggestions.map((function(s,i){var n=document.createElement("li"),r=document.createElement("button");return r.classList.add("ui-text-menu2","font-medium","p-8","w-full","text-left","rounded","hover:text-gui-hover","focus:outline-gui-focus","hover:bg-light-grey"),r.innerHTML=u(s,t),r.dataset.suggestionIndex=i,r.addEventListener("click",(function(){h(s)})),r.addEventListener("keydown",(function(t){var n=t.key;"ArrowDown"===n?l():"ArrowUp"===n&&i-1<0?e.focus():"ArrowUp"===n&&i-1>=0?f():"Enter"!==n&&"Space"!==n||h(s)})),n.appendChild(r),n}));i.innerHTML="",r.forEach((function(t){return i.appendChild(t)})),s.classList.remove("hidden")}else a()}}(n)):a():l(0)};return n&&(o=function(){e.value="",n.classList.add("invisible"),a()},n.addEventListener("click",o)),e.addEventListener("keyup",d),{teardown:function(){e.removeEventListener("keyup",d),n&&n.removeEventListener("click",o)},clear:function(){e.value="",a()}}}({input:e,container:n,listContainer:r,client:s,clear:o})}))}})(),i.default})()}));
2
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.AblyUi=e():(t.AblyUi=t.AblyUi||{},t.AblyUi.Core=t.AblyUi.Core||{},t.AblyUi.Core.MeganavSearchAutocomplete=e())}(this,(function(){return(()=>{var t={727:(t,e,s)=>{"use strict";t.exports=s(5647)},493:(t,e,s)=>{"use strict";s(2702).polyfill(),s(4301);var i=function(t,e,s,n,r,o,a){var c=function(t,e){return t||!1===t?"&"+e+"="+t:""};if("search"===s||"suggest"===s||"autocomplete"===s){var u="",h="",l=null;if("search"===s){l=s,u=n.keyword,u=n.enableLogicalOperators?u.replace(/ and /g," AND ").replace(/ or /g," OR ").replace(/ not /g," NOT "):u.replace(/ AND /g," and ").replace(/ OR /g," or ").replace(/ NOT /g," not "),u=encodeURIComponent(u);var f=n.fuzzy;if("retry"===f&&(f=!0===o),"search"===s){if(h=c(n.lang,"lang")+c(f,"fuzzy")+c(n.collectAnalytics,"collectAnalytics")+c(n.postfixWildcard,"postfixWildcard")+c(n.categories,"categories")+c(n.priceFromCents,"priceFromCents")+c(n.priceToCents,"priceToCents")+c(n.dateFrom,"dateFrom")+c(n.dateTo,"dateTo")+c(n.paging.page,"page")+c(n.paging.pageSize,"limit")+c(n.paging.sortBy,"sort")+c(n.paging.sortOrder,"order")+c(n.shuffleAndLimitTo,"shuffleAndLimitTo")+c(n.jwt,"jwt")+c(n.resultType,"resultType")+c(n.userToken,"userToken")+c(n.numFacets,"numFacets")+c(n.cacheResponseTime,"cacheResponseWithTtlSeconds")+c(n.searchOperator,"defaultOperator")+c(n.analyticsTag,"analyticsTag")+c(n.hierarchicalFacetSetting,"hierarchicalFacets"),n.customFieldFilters)for(var d=0;d<n.customFieldFilters.length;d++)h=h+"&customField="+n.customFieldFilters[d];if(n.facetFields)for(d=0;d<n.facetFields.length;d++)h=h+"&facet="+n.facetFields[d];if(n.rangeFacets&&(h=h+"&rangeFacets="+JSON.stringify(n.rangeFacets)),n.statsFields)for(d=0;d<n.statsFields.length;d++)h=h+"&fieldStat="+n.statsFields[d];if(n.personalizationEvents&&Array.isArray(n.personalizationEvents))for(d=0;d<n.personalizationEvents.length;d++){var g=n.personalizationEvents[d],p=Object.keys(g);h=h+"&personalizationEvent="+encodeURIComponent(p+"="+g[p])}a?h=h+"&filter="+encodeURIComponent(JSON.stringify(a)):n.filterObject&&(h=h+"&filter="+encodeURIComponent(JSON.stringify(n.filterObject)))}}else"suggest"===s?(l=s,h=c(n.suggestionsSize,"size")+c(n.lang,"lang"),u=n.suggestionsPrefix):"autocomplete"===s&&(l="autocomplete/document-field",h=c(n.autocomplete.field,"source")+c(n.autocomplete.size,"size"),u=n.autocomplete.prefix);fetch("https://"+t+"/v1/"+l+"/"+e+"?term="+u+h).then((function(t){return t.json()})).then((function(a){if("search"===s&&"retry"===n.fuzzy&&0===a.total_hits&&!0!==o)i(t,e,s,n,r,!0);else{if(!0===o){var c=n.paging.pageSize;a.total_hits>=c&&(a.total_hits=c)}r(a)}})).catch((function(t){console.log(t),r({error:{response:500,message:"invalid server response"}})}))}else r({error:{response:400,message:"invalid query type"}})};t.exports=i},5647:(t,e,s)=>{"use strict";var i=s(493),n=s(9610),r=s(3716),o=s(7585),a=s(5159),c=s(4508);t.exports=function(t,e){this.sitekey=t,this.privatekey=e,this.apiHostname="api.addsearch.com",this.settings=new o,this.sessionId=("a-"+1e8*Math.random()).substring(0,10),this.search=function(t,e){var s=null,n=null;if(t&&a.isFunction(e))s=t,n=e;else if(!e&&a.isFunction(t))s=this.settings.getSettings().keyword,n=t;else{if(!this.settings.getSettings().callback)throw"Illegal search parameters. Should be (keyword, callbackFunction) or (callbackFunction)";s=this.settings.getSettings().keyword,n=this.settings.getSettings().callback}this.settings.setCallback(n),this.settings.setKeyword(s),this.throttledSearchFetch||(this.throttledSearchFetch=c(this.settings.getSettings().throttleTimeMs,i)),this.throttledSearchFetch(this.apiHostname,this.sitekey,"search",this.settings.getSettings(),n)},this.suggestions=function(t,e){if(!t||!e||!a.isFunction(e))throw"Illegal suggestions parameters. Should be (prefix, callbackFunction)";this.settings.setSuggestionsPrefix(t),this.throttledSuggestionsFetch||(this.throttledSuggestionsFetch=c(this.settings.getSettings().throttleTimeMs,i)),this.throttledSuggestionsFetch(this.apiHostname,this.sitekey,"suggest",this.settings.getSettings(),e)},this.autocomplete=function(t,e,s){if(!(t&&e&&s&&a.isFunction(s)))throw"Illegal autocomplete parameters. Should be (field, prefix, callbackFunction)";this.settings.setAutocompleteParams(t,e),this.throttledAutocompleteFetch||(this.throttledAutocompleteFetch=c(this.settings.getSettings().throttleTimeMs,i)),this.throttledAutocompleteFetch(this.apiHostname,this.sitekey,"autocomplete",this.settings.getSettings(),s)},this.fetchCustomApi=function(t,e,s){var n=Object.assign({},this.settings.getSettings());n.facetFields=n.facetFields.filter((e=>t===e)),i(this.apiHostname,this.sitekey,"search",n,s,null,e)},this.fetchRangeFacets=function(t,e,s){var n=Object.assign({},this.settings.getSettings());n.rangeFacets||(n.rangeFacets=[]),n.rangeFacets.push({field:t.field,ranges:t.ranges}),i(this.apiHostname,this.sitekey,"search",n,s,null,e)},this.getDocument=function(t){return n.getDocument(this.apiHostname,this.sitekey,this.privatekey,t)},this.saveDocument=function(t){return n.saveDocument(this.apiHostname,this.sitekey,this.privatekey,t)},this.saveDocumentsBatch=function(t){if(!t||!t.documents||!Array.isArray(t.documents))throw"Please provide an array of documents: {documents: []}";return n.saveDocumentsBatch(this.apiHostname,this.sitekey,this.privatekey,t)},this.deleteDocument=function(t){return n.deleteDocument(this.apiHostname,this.sitekey,this.privatekey,t)},this.deleteDocumentsBatch=function(t){if(!t||!t.documents||!Array.isArray(t.documents))throw"Please provide an array of document ids: {documents: []}";return n.deleteDocumentsBatch(this.apiHostname,this.sitekey,this.privatekey,t)},this.setApiHostname=function(t){this.apiHostname=t},this.getSettings=function(){return this.settings.getSettings()},this.setLanguage=function(t){this.settings.setLanguage(t)},this.setCategoryFilters=function(t){this.settings.setCategoryFilters(t)},this.addCustomFieldFilter=function(t,e){this.settings.addCustomFieldFilter(t,e)},this.removeCustomFieldFilter=function(t,e){this.settings.removeCustomFieldFilter(t,e)},this.setPriceRangeFilter=function(t,e){this.settings.setPriceRangeFilter(t,e)},this.setDateFilter=function(t,e){this.settings.setDateFilter(t,e)},this.setJWT=function(t){this.settings.setJWT(t)},this.setUserToken=function(t){this.settings.setUserToken(t)},this.setPaging=function(t,e,s,i){this.settings.setPaging(t,e,s,i)},this.nextPage=function(){this.settings.nextPage()},this.previousPage=function(){this.settings.previousPage()},this.setSuggestionsSize=function(t){this.settings.setSuggestionsSize(t)},this.setAutocompleteSize=function(t){this.settings.setAutocompleteSize(t)},this.addFacetField=function(t){this.settings.addFacetField(t)},this.addHierarchicalFacetSetting=function(t){this.settings.addHierarchicalFacetSetting(t)},this.addRangeFacet=function(t,e){this.settings.addRangeFacet(t,e)},this.addStatsField=function(t){this.settings.addStatsField(t)},this.setNumberOfFacets=function(t){this.settings.setNumberOfFacets(t)},this.setResultType=function(t){this.settings.setResultType(t)},this.setPersonalizationEvents=function(t){this.settings.setPersonalizationEvents(t)},this.setFilterObject=function(t){this.settings.setFilterObject(t)},this.setShuffleAndLimitTo=function(t){this.settings.setShuffleAndLimitTo(t)},this.setFuzzyMatch=function(t){this.settings.setFuzzyMatch(t)},this.setPostfixWildcard=function(t){this.settings.setPostfixWildcard(t)},this.setCacheResponseTime=function(t){this.settings.setCacheResponseTime(t)},this.setCollectAnalytics=function(t){this.settings.setCollectAnalytics(t)},this.setAnalyticsTag=function(t){this.settings.setAnalyticsTag(t)},this.setThrottleTime=function(t){this.settings.setThrottleTime(t)},this.setStatsSessionId=function(t){this.sessionId=t},this.getStatsSessionId=function(){return this.sessionId},this.enableLogicalOperators=function(t){this.settings.enableLogicalOperators(t)},this.setSearchOperator=function(t){this.settings.setSearchOperator(t)},this.sendStatsEvent=function(t,e,s){if("search"===t)s={action:"search",session:this.sessionId,keyword:e,numberOfResults:s.numberOfResults,analyticsTag:this.getSettings().analyticsTag},r(this.apiHostname,this.sitekey,s);else{if("click"!==t)throw"Illegal sendStatsEvent type parameters. Should be search or click)";s={action:"click",session:this.sessionId,keyword:e,docid:s.documentId,position:s.position,analyticsTag:this.getSettings().analyticsTag},r(this.apiHostname,this.sitekey,s)}},this.searchResultClicked=function(t,e){this.sendStatsEvent("click",this.settings.getSettings().keyword,{documentId:t,position:e})}}},9610:(t,e,s)=>{"use strict";s(4301);const i=s(5159),n=s(2702).Promise,r=function(t,e){return{Authorization:"Basic "+i.base64(t+":"+e),"Content-Type":"application/json"}};t.exports={getDocument:function(t,e,s,i){return new n(((n,o)=>{fetch("https://"+t+"/v2/indices/"+e+"/documents/"+i,{method:"GET",headers:r(e,s)}).then((t=>{200==t.status?n(t.json()):o({status:t.status,text:t.statusText})})).catch((t=>{o({status:400,text:t})}))}))},saveDocument:function(t,e,s,i){const o=i.id||i.url;return new n(((n,a)=>{fetch("https://"+t+"/v2/indices/"+e+"/documents/",{method:o?"PUT":"POST",headers:r(e,s),body:JSON.stringify(i)}).then((t=>{202==t.status?n({status:t.status,text:t.statusText}):a({status:t.status,text:t.statusText})})).catch((t=>{a({status:400,text:t})}))}))},saveDocumentsBatch:function(t,e,s,i){return new n(((n,o)=>{fetch("https://"+t+"/v2/indices/"+e+"/documents:batch",{method:"PUT",headers:r(e,s),body:JSON.stringify(i)}).then((t=>{202==t.status?n({status:t.status,text:t.statusText}):o({status:t.status,text:t.statusText})})).catch((t=>{o({status:400,text:t})}))}))},deleteDocument:function(t,e,s,i){return new n(((n,o)=>{fetch("https://"+t+"/v2/indices/"+e+"/documents/"+i,{method:"DELETE",headers:r(e,s)}).then((t=>{202==t.status?n({status:t.status,text:t.statusText}):o({status:t.status,text:t.statusText})})).catch((t=>{o({status:400,text:t})}))}))},deleteDocumentsBatch:function(t,e,s,i){return new n(((n,o)=>{fetch("https://"+t+"/v2/indices/"+e+"/documents:batch",{method:"DELETE",headers:r(e,s),body:JSON.stringify(i)}).then((t=>{202==t.status?n({status:t.status,text:t.statusText}):o({status:t.status,text:t.statusText})})).catch((t=>{o({status:400,text:t})}))}))}}},7585:t=>{"use strict";t.exports=function(){this.settings={keyword:"*",callback:null,throttleTimeMs:200,fuzzy:"auto",paging:{page:1,pageSize:10,sortBy:"relevance",sortOrder:"desc"},customFieldFilters:[],userToken:null,suggestionsSize:10,facetFields:[],autocomplete:{size:10},searchOperator:null,enableLogicalOperators:!1,cacheResponseTime:null},this.getSettings=function(){return this.settings},this.setKeyword=function(t){this.settings.keyword=t||"*"},this.setCallback=function(t){this.settings.callback=t},this.setThrottleTime=function(t){this.settings.throttleTimeMs=t},this.setSuggestionsPrefix=function(t){this.settings.suggestionsPrefix=t},this.setSuggestionsSize=function(t){this.settings.suggestionsSize=t},this.setAutocompleteSize=function(t){this.settings.autocomplete.size=t},this.setAutocompleteParams=function(t,e){this.settings.autocomplete.field=t,this.settings.autocomplete.prefix=e},this.setLanguage=function(t){if(t&&2!==t.length)throw'use 2-char language code (e.g. "en")';this.settings.lang=t},this.setFuzzyMatch=function(t){if(!0!==t&&!1!==t&&"auto"!==t&&"retry"!==t)throw"fuzzy matching can be true, false, 'auto', or 'retry'";this.settings.fuzzy=t},this.enableLogicalOperators=function(t){this.settings.enableLogicalOperators=t},this.setCacheResponseTime=function(t){this.settings.cacheResponseTime=t},this.setPostfixWildcard=function(t){this.settings.postfixWildcard=t},this.setCollectAnalytics=function(t){this.settings.collectAnalytics=t},this.setAnalyticsTag=function(t){this.settings.analyticsTag=t},this.setCategoryFilters=function(t){this.settings.categories=t},this.setFilterObject=function(t){this.settings.filterObject=t},this.setPriceRangeFilter=function(t,e){this.settings.priceFromCents=t,this.settings.priceToCents=e},this.addCustomFieldFilter=function(t,e){var s=encodeURIComponent(t+"="+e);-1===this.settings.customFieldFilters.indexOf(s)&&this.settings.customFieldFilters.push(s)},this.removeCustomFieldFilter=function(t,e){var s=!1,i=encodeURIComponent(t+"="+e);e||(s=!0,i=encodeURIComponent(t+"="));for(var n=this.settings.customFieldFilters.length;n>0;n--){var r=this.settings.customFieldFilters[n-1];(s&&0===r.indexOf(i)||r===i)&&this.settings.customFieldFilters.splice(n-1,1)}},this.setDateFilter=function(t,e){this.settings.dateFrom=t,this.settings.dateTo=e},this.setKeyword=function(t){this.settings.keyword=t||"*"},this.setJWT=function(t){this.settings.jwt=t},this.setUserToken=function(t){this.settings.userToken=t},this.setPersonalizationEvents=function(t){this.settings.personalizationEvents=t},this.setResultType=function(t){this.settings.resultType=t},this.addFacetField=function(t){-1===this.settings.facetFields.indexOf(t)&&this.settings.facetFields.push(t)},this.addHierarchicalFacetSetting=function(t){this.settings.hierarchicalFacetSetting=JSON.stringify(t)},this.addRangeFacet=function(t,e){this.settings.rangeFacets||(this.settings.rangeFacets=[]),this.settings.rangeFacets.push({field:t,ranges:e})},this.addStatsField=function(t){this.settings.statsFields||(this.settings.statsFields=[]),-1===this.settings.statsFields.indexOf(t)&&this.settings.statsFields.push(t)},this.setNumberOfFacets=function(t){this.settings.numFacets=t},this.setPaging=function(t,e,s,i){if(t<1)throw"page must be 1 or bigger";if(e<1||e>300)throw"pageSize must be 1-300";if("asc"!==i&&"desc"!==i)throw"sortOrder must be asc or desc";this.settings.paging.page=t,this.settings.paging.pageSize=e,this.settings.paging.sortBy=s,this.settings.paging.sortOrder=i},this.setShuffleAndLimitTo=function(t){this.settings.shuffleAndLimitTo=t},this.nextPage=function(){this.settings.paging.page=this.settings.paging.page+1},this.previousPage=function(){this.settings.paging.page>0&&(this.settings.paging.page=this.settings.paging.page-1)},this.setSearchOperator=function(t){if("and"!==t&&"or"!==t)throw"operator must be 'and' || 'or'";this.settings.searchOperator=t}}},3716:(t,e,s)=>{"use strict";s(2702).polyfill(),s(4301),t.exports=function(t,e,s){"undefined"!=typeof window&&window.navigator&&window.navigator.sendBeacon?navigator.sendBeacon("https://"+t+"/v1/stats/"+e+"/",JSON.stringify(s)):fetch("https://"+t+"/v1/stats/"+e+"/",{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify(s)})}},4508:t=>{t.exports=function(t,e){var s,i=0;function n(){s&&clearTimeout(s)}return function(){var r=this,o=Date.now()-i,a=arguments;function c(){i=Date.now(),e.apply(r,a)}n(),o>t?c():s=setTimeout(c,t-o)}}},5159:(t,e,s)=>{t.exports={isFunction:function(t){return t&&"[object Function]"==={}.toString.call(t)},base64:function(t){return s.g.window={},window&&window.btoa?window.btoa(t):Buffer?Buffer.from(t).toString("base64"):void 0}}},9581:(t,e,s)=>{"use strict";s.d(e,{A:()=>i});var i=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector("[data-id=".concat(t,"]"))}},2702:function(t,e,s){t.exports=function(){"use strict";function t(t){return"function"==typeof t}var e=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},i=0,n=void 0,r=void 0,o=function(t,e){d[i]=t,d[i+1]=e,2===(i+=2)&&(r?r(g):b())};var a="undefined"!=typeof window?window:void 0,c=a||{},u=c.MutationObserver||c.WebKitMutationObserver,h="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),l="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function f(){var t=setTimeout;return function(){return t(g,1)}}var d=new Array(1e3);function g(){for(var t=0;t<i;t+=2)(0,d[t])(d[t+1]),d[t]=void 0,d[t+1]=void 0;i=0}var p,y,m,v,b=void 0;function w(t,e){var s=this,i=new this.constructor(S);void 0===i[F]&&R(i);var n=s._state;if(n){var r=arguments[n-1];o((function(){return j(n,i,r,s._result)}))}else P(s,i,t,e);return i}function T(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var e=new this(S);return x(e,t),e}b=h?function(){return process.nextTick(g)}:u?(y=0,m=new u(g),v=document.createTextNode(""),m.observe(v,{characterData:!0}),function(){v.data=y=++y%2}):l?((p=new MessageChannel).port1.onmessage=g,function(){return p.port2.postMessage(0)}):void 0===a?function(){try{var t=Function("return this")().require("vertx");return void 0!==(n=t.runOnLoop||t.runOnContext)?function(){n(g)}:f()}catch(t){return f()}}():f();var F=Math.random().toString(36).substring(2);function S(){}var A=void 0;function _(e,s,i){s.constructor===e.constructor&&i===w&&s.constructor.resolve===T?function(t,e){1===e._state?E(t,e._result):2===e._state?k(t,e._result):P(e,void 0,(function(e){return x(t,e)}),(function(e){return k(t,e)}))}(e,s):void 0===i?E(e,s):t(i)?function(t,e,s){o((function(t){var i=!1,n=function(t,e,s,i){try{t.call(e,s,i)}catch(t){return t}}(s,e,(function(s){i||(i=!0,e!==s?x(t,s):E(t,s))}),(function(e){i||(i=!0,k(t,e))}),t._label);!i&&n&&(i=!0,k(t,n))}),t)}(e,s,i):E(e,s)}function x(t,e){if(t===e)k(t,new TypeError("You cannot resolve a promise with itself"));else if(n=typeof(i=e),null===i||"object"!==n&&"function"!==n)E(t,e);else{var s=void 0;try{s=e.then}catch(e){return void k(t,e)}_(t,e,s)}var i,n}function O(t){t._onerror&&t._onerror(t._result),C(t)}function E(t,e){t._state===A&&(t._result=e,t._state=1,0!==t._subscribers.length&&o(C,t))}function k(t,e){t._state===A&&(t._state=2,t._result=e,o(O,t))}function P(t,e,s,i){var n=t._subscribers,r=n.length;t._onerror=null,n[r]=e,n[r+1]=s,n[r+2]=i,0===r&&t._state&&o(C,t)}function C(t){var e=t._subscribers,s=t._state;if(0!==e.length){for(var i=void 0,n=void 0,r=t._result,o=0;o<e.length;o+=3)i=e[o],n=e[o+s],i?j(s,i,n,r):n(r);t._subscribers.length=0}}function j(e,s,i,n){var r=t(i),o=void 0,a=void 0,c=!0;if(r){try{o=i(n)}catch(t){c=!1,a=t}if(s===o)return void k(s,new TypeError("A promises callback cannot return that same promise."))}else o=n;s._state!==A||(r&&c?x(s,o):!1===c?k(s,a):1===e?E(s,o):2===e&&k(s,o))}var B=0;function R(t){t[F]=B++,t._state=void 0,t._result=void 0,t._subscribers=[]}var z=function(){function t(t,s){this._instanceConstructor=t,this.promise=new t(S),this.promise[F]||R(this.promise),e(s)?(this.length=s.length,this._remaining=s.length,this._result=new Array(this.length),0===this.length?E(this.promise,this._result):(this.length=this.length||0,this._enumerate(s),0===this._remaining&&E(this.promise,this._result))):k(this.promise,new Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var e=0;this._state===A&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var s=this._instanceConstructor,i=s.resolve;if(i===T){var n=void 0,r=void 0,o=!1;try{n=t.then}catch(t){o=!0,r=t}if(n===w&&t._state!==A)this._settledAt(t._state,e,t._result);else if("function"!=typeof n)this._remaining--,this._result[e]=t;else if(s===D){var a=new s(S);o?k(a,r):_(a,t,n),this._willSettleAt(a,e)}else this._willSettleAt(new s((function(e){return e(t)})),e)}else this._willSettleAt(i(t),e)},t.prototype._settledAt=function(t,e,s){var i=this.promise;i._state===A&&(this._remaining--,2===t?k(i,s):this._result[e]=s),0===this._remaining&&E(i,this._result)},t.prototype._willSettleAt=function(t,e){var s=this;P(t,void 0,(function(t){return s._settledAt(1,e,t)}),(function(t){return s._settledAt(2,e,t)}))},t}();var D=function(){function e(t){this[F]=B++,this._result=this._state=void 0,this._subscribers=[],S!==t&&("function"!=typeof t&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof e?function(t,e){try{e((function(e){x(t,e)}),(function(e){k(t,e)}))}catch(e){k(t,e)}}(this,t):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return e.prototype.catch=function(t){return this.then(null,t)},e.prototype.finally=function(e){var s=this,i=s.constructor;return t(e)?s.then((function(t){return i.resolve(e()).then((function(){return t}))}),(function(t){return i.resolve(e()).then((function(){throw t}))})):s.then(e,e)},e}();return D.prototype.then=w,D.all=function(t){return new z(this,t).promise},D.race=function(t){var s=this;return e(t)?new s((function(e,i){for(var n=t.length,r=0;r<n;r++)s.resolve(t[r]).then(e,i)})):new s((function(t,e){return e(new TypeError("You must pass an array to race."))}))},D.resolve=T,D.reject=function(t){var e=new this(S);return k(e,t),e},D._setScheduler=function(t){r=t},D._setAsap=function(t){o=t},D._asap=o,D.polyfill=function(){var t=void 0;if(void 0!==s.g)t=s.g;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var e=t.Promise;if(e){var i=null;try{i=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===i&&!e.cast)return}t.Promise=D},D.Promise=D,D}()},4301:(t,e,s)=>{s(7147),t.exports=self.fetch.bind(self)},7147:(t,e,s)=>{"use strict";s.r(e),s.d(e,{Headers:()=>g,Request:()=>T,Response:()=>S,DOMException:()=>_,fetch:()=>x});var i="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==i&&i,n="URLSearchParams"in i,r="Symbol"in i&&"iterator"in Symbol,o="FileReader"in i&&"Blob"in i&&function(){try{return new Blob,!0}catch(t){return!1}}(),a="FormData"in i,c="ArrayBuffer"in i;if(c)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],h=ArrayBuffer.isView||function(t){return t&&u.indexOf(Object.prototype.toString.call(t))>-1};function l(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(t)||""===t)throw new TypeError('Invalid character in header field name: "'+t+'"');return t.toLowerCase()}function f(t){return"string"!=typeof t&&(t=String(t)),t}function d(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return r&&(e[Symbol.iterator]=function(){return e}),e}function g(t){this.map={},t instanceof g?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function p(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function y(t){return new Promise((function(e,s){t.onload=function(){e(t.result)},t.onerror=function(){s(t.error)}}))}function m(t){var e=new FileReader,s=y(e);return e.readAsArrayBuffer(t),s}function v(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function b(){return this.bodyUsed=!1,this._initBody=function(t){var e;this.bodyUsed=this.bodyUsed,this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:o&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:a&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:n&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():c&&o&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=v(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):c&&(ArrayBuffer.prototype.isPrototypeOf(t)||h(t))?this._bodyArrayBuffer=v(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},o&&(this.blob=function(){var t=p(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?p(this)||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer)):this.blob().then(m)}),this.text=function(){var t,e,s,i=p(this);if(i)return i;if(this._bodyBlob)return t=this._bodyBlob,s=y(e=new FileReader),e.readAsText(t),s;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),s=new Array(e.length),i=0;i<e.length;i++)s[i]=String.fromCharCode(e[i]);return s.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},a&&(this.formData=function(){return this.text().then(F)}),this.json=function(){return this.text().then(JSON.parse)},this}g.prototype.append=function(t,e){t=l(t),e=f(e);var s=this.map[t];this.map[t]=s?s+", "+e:e},g.prototype.delete=function(t){delete this.map[l(t)]},g.prototype.get=function(t){return t=l(t),this.has(t)?this.map[t]:null},g.prototype.has=function(t){return this.map.hasOwnProperty(l(t))},g.prototype.set=function(t,e){this.map[l(t)]=f(e)},g.prototype.forEach=function(t,e){for(var s in this.map)this.map.hasOwnProperty(s)&&t.call(e,this.map[s],s,this)},g.prototype.keys=function(){var t=[];return this.forEach((function(e,s){t.push(s)})),d(t)},g.prototype.values=function(){var t=[];return this.forEach((function(e){t.push(e)})),d(t)},g.prototype.entries=function(){var t=[];return this.forEach((function(e,s){t.push([s,e])})),d(t)},r&&(g.prototype[Symbol.iterator]=g.prototype.entries);var w=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function T(t,e){if(!(this instanceof T))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');var s,i,n=(e=e||{}).body;if(t instanceof T){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new g(t.headers)),this.method=t.method,this.mode=t.mode,this.signal=t.signal,n||null==t._bodyInit||(n=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"same-origin",!e.headers&&this.headers||(this.headers=new g(e.headers)),this.method=(i=(s=e.method||this.method||"GET").toUpperCase(),w.indexOf(i)>-1?i:s),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(n),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==e.cache&&"no-cache"!==e.cache)){var r=/([?&])_=[^&]*/;r.test(this.url)?this.url=this.url.replace(r,"$1_="+(new Date).getTime()):this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}function F(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var s=t.split("="),i=s.shift().replace(/\+/g," "),n=s.join("=").replace(/\+/g," ");e.append(decodeURIComponent(i),decodeURIComponent(n))}})),e}function S(t,e){if(!(this instanceof S))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===e.statusText?"":""+e.statusText,this.headers=new g(e.headers),this.url=e.url||"",this._initBody(t)}T.prototype.clone=function(){return new T(this,{body:this._bodyInit})},b.call(T.prototype),b.call(S.prototype),S.prototype.clone=function(){return new S(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new g(this.headers),url:this.url})},S.error=function(){var t=new S(null,{status:0,statusText:""});return t.type="error",t};var A=[301,302,303,307,308];S.redirect=function(t,e){if(-1===A.indexOf(e))throw new RangeError("Invalid status code");return new S(null,{status:e,headers:{location:t}})};var _=i.DOMException;try{new _}catch(t){(_=function(t,e){this.message=t,this.name=e;var s=Error(t);this.stack=s.stack}).prototype=Object.create(Error.prototype),_.prototype.constructor=_}function x(t,e){return new Promise((function(s,n){var r=new T(t,e);if(r.signal&&r.signal.aborted)return n(new _("Aborted","AbortError"));var a=new XMLHttpRequest;function u(){a.abort()}a.onload=function(){var t,e,i={status:a.status,statusText:a.statusText,headers:(t=a.getAllResponseHeaders()||"",e=new g,t.replace(/\r?\n[\t ]+/g," ").split("\r").map((function(t){return 0===t.indexOf("\n")?t.substr(1,t.length):t})).forEach((function(t){var s=t.split(":"),i=s.shift().trim();if(i){var n=s.join(":").trim();e.append(i,n)}})),e)};i.url="responseURL"in a?a.responseURL:i.headers.get("X-Request-URL");var n="response"in a?a.response:a.responseText;setTimeout((function(){s(new S(n,i))}),0)},a.onerror=function(){setTimeout((function(){n(new TypeError("Network request failed"))}),0)},a.ontimeout=function(){setTimeout((function(){n(new TypeError("Network request failed"))}),0)},a.onabort=function(){setTimeout((function(){n(new _("Aborted","AbortError"))}),0)},a.open(r.method,function(t){try{return""===t&&i.location.href?i.location.href:t}catch(e){return t}}(r.url),!0),"include"===r.credentials?a.withCredentials=!0:"omit"===r.credentials&&(a.withCredentials=!1),"responseType"in a&&(o?a.responseType="blob":c&&r.headers.get("Content-Type")&&-1!==r.headers.get("Content-Type").indexOf("application/octet-stream")&&(a.responseType="arraybuffer")),!e||"object"!=typeof e.headers||e.headers instanceof g?r.headers.forEach((function(t,e){a.setRequestHeader(e,t)})):Object.getOwnPropertyNames(e.headers).forEach((function(t){a.setRequestHeader(t,f(e.headers[t]))})),r.signal&&(r.signal.addEventListener("abort",u),a.onreadystatechange=function(){4===a.readyState&&r.signal.removeEventListener("abort",u)}),a.send(void 0===r._bodyInit?null:r._bodyInit)}))}x.polyfill=!0,i.fetch||(i.fetch=x,i.Headers=g,i.Request=T,i.Response=S)}},e={};function s(i){var n=e[i];if(void 0!==n)return n.exports;var r=e[i]={exports:{}};return t[i].call(r.exports,r,r.exports,s),r.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),s.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};return(()=>{"use strict";s.d(i,{default:()=>r});var t=s(9581),e=s(727),n=s.n(e);const r=function(){var e=document.body.dataset.addSearchApiKey;if(!e)return console.log("No AddSearch API key provided, skipping search suggestions."),[];var s=new(n())(e);return[(0,t.A)("meganav-search-input"),(0,t.A)("meganav-mobile-search-input")].filter((function(t){return t})).map((function(e){var i=e.parentNode,n=(0,t.A)("meganav-search-autocomplete-container",i),r=(0,t.A)("meganav-search-autocomplete-list",i),o=(0,t.A)("meganav-search-input-clear",i);return function(t){var e=t.input,s=t.container,i=t.listContainer,n=t.clear,r=t.client;r.setAnalyticsTag("Meganav autocomplete"),r.setThrottleTime(400);var o,a=function(){s.classList.add("hidden"),i.innerHTML=""},c=function(t){(t||"").length>0&&n?n.classList.remove("invisible"):n&&n.classList.add("invisible")},u=function(t,e){return t.replace(e.toLowerCase(),'<span class="font-light">'.concat(e,"</span>"))},h=function(t){return window.location="/search?q=".concat(t)},l=function(t){var e=i.querySelector('[data-suggestion-index="'.concat(t+1,'"]'));e&&e.focus()},f=function(t){var e=t-1,s=i.querySelector('[data-suggestion-index="'.concat(e,'"]'));s&&s.focus()},d=function(t){var n=t.target.value;"ArrowDown"!==t.key?n?r.suggestions(n,function(t){return function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{suggestions:[]};if(c(t),0!==n.suggestions.length){var r=n.suggestions.map((function(s,i){var n=document.createElement("li"),r=document.createElement("button");return r.type="button",r.classList.add("ui-text-menu2","font-medium","p-8","w-full","text-left","rounded","hover:text-gui-hover","focus:outline-gui-focus","hover:bg-light-grey"),r.innerHTML=u(s.value,t),r.dataset.suggestionIndex=i,r.addEventListener("click",(function(){h(s.value)})),r.addEventListener("keydown",(function(t){var n=t.key;"ArrowDown"===n?l(i):"ArrowUp"===n&&i-1<0?e.focus():"ArrowUp"===n&&i-1>=0?f(i):"Enter"!==n&&"Space"!==n||h(s.value)})),n.appendChild(r),n}));i.innerHTML="",r.forEach((function(t){return i.appendChild(t)})),s.classList.remove("hidden")}else a()}}(n)):a():l(0)};return n&&(o=function(){e.value="",n.classList.add("invisible"),a()},n.addEventListener("click",o)),e.addEventListener("keyup",d),{teardown:function(){e.removeEventListener("keyup",d),n&&n.removeEventListener("click",o)},clear:function(){e.value="",a()}}}({input:e,container:n,listContainer:r,client:s,clear:o})}))}})(),i.default})()}));
@@ -161,29 +161,29 @@ var MeganavSearchSuggestions = function MeganavSearchSuggestions(_ref) {
161
161
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
162
162
  className: "ui-text-overline2 text-cool-black py-12"
163
163
  }, "Popular pages"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
164
- className: "flex justify-between items-center overflow-x-scroll md:overflow-auto"
164
+ className: "flex justify-between items-center overflow-hidden"
165
165
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
166
- className: "flex"
166
+ className: "flex transition-transform"
167
167
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
168
168
  className: "py-12 pr-8 flex-shrink-0"
169
169
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
170
170
  href: absUrl("/docs/how-ably-works"),
171
- className: "ui-text-p2"
171
+ className: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
172
172
  }, "How does Ably work?")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
173
173
  className: "py-12 px-8 flex-shrink-0"
174
174
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
175
175
  href: absUrl("/docs/quick-start-guide"),
176
- className: "ui-text-p2"
176
+ className: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
177
177
  }, "Quickstart guide")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
178
178
  className: "py-12 px-8 flex-shrink-0"
179
179
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
180
180
  href: absUrl("/docs/core-features/pubsub"),
181
- className: "ui-text-p2"
181
+ className: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
182
182
  }, "Publish/Subscribe Messaging")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
183
183
  className: "py-12 pl-8 flex-shrink-0"
184
184
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
185
185
  href: absUrl("/platform"),
186
- className: "ui-text-p2"
186
+ className: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
187
187
  }, "Platform"))), displaySupportLink ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_FeaturedLink_component_jsx__WEBPACK_IMPORTED_MODULE_2__.default, {
188
188
  url: absUrl("/support"),
189
189
  textSize: "text-p2"
@@ -430,6 +430,7 @@ var MeganavSearchPanel = function MeganavSearchPanel(_ref) {
430
430
  name: "q",
431
431
  className: "ui-input pl-48 h-48",
432
432
  placeholder: "Search",
433
+ autoComplete: "off",
433
434
  "data-id": "meganav-search-input"
434
435
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_MeganavSearchAutocomplete_component_jsx__WEBPACK_IMPORTED_MODULE_4__.default, null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", {
435
436
  type: "submit",
@@ -1 +1 @@
1
- !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.AblyUi=o():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavSearchSuggestions=o())}(this,(function(){return{}.default}));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AblyUi=t():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavSearchSuggestions=t())}(this,(function(){return(()=>{"use strict";var e={9581:(e,t,n)=>{n.d(t,{A:()=>r});var r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelector("[data-id=".concat(e,"]"))}}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var r={};return(()=>{n.d(r,{default:()=>s});var e=n(9581),t=function(e){return new DOMMatrix(window.getComputedStyle(e).transform).e},o=function(e,t){return e.style.transform="translateX(".concat(t,"px)")},i=function(e,t){return e>=t},u=function(e,t,n,r){return Math.abs(e-n+r)>t},a=function(e,t){var n;return(null===(n=e.changedTouches[0])||void 0===n?void 0:n.clientX)-t},c=function(e){return Math.abs(e)<5};const s=function(){var n,r=(0,e.A)("meganav-mobile-search-input"),s=(0,e.A)("meganav-mobile-search-suggestions"),d=s.querySelector("ul"),l=d.querySelectorAll("li"),v=Array.from(l).map((function(e){return e.getBoundingClientRect().width})).reduce((function(e,t){return e+t}),0),f=function(e){var t;n=null===(t=e.touches[0])||void 0===t?void 0:t.clientX},h=function(e){var r=a(e,n);c(r)||(r>0?function(e,n){var r=t(d),u=Math.round(r+e);i(u,24)||o(d,u)}(r):function(e,n){var r=d.getBoundingClientRect().width,i=t(d),a=Math.round(i+e);u(a,v,r,96)||o(d,a)}(r))},m=function(e){var r=a(e,n);c(r)||(r>0?function(e,n){var r=t(d),u=Math.round(r+e);i(u,24)&&(u=0),o(d,u)}(r):function(e,n){var r=d.getBoundingClientRect().width,i=t(d),a=Math.round(i+e);u(a,v,r,48)&&(a=-(v-r+48)),o(d,a)}(r))},p=function(){s.classList.add("max-h-96")},y=function(e){e.relatedTarget!==s.querySelectorAll("a")[0]&&s.classList.remove("max-h-96")};return r.addEventListener("focus",p),r.addEventListener("blur",y),s.addEventListener("touchstart",f),s.addEventListener("touchmove",h),s.addEventListener("touchend",m),{teardown:function(){r.removeEventListener("focus",p),r.removeEventListener("blur",y),s.removeEventListener("touchstart",f),s.removeEventListener("touchmove",h),s.removeEventListener("touchend",m)},clear:function(){s.classList.remove("max-h-96"),d.style.transform="translateX(0px)"}}}})(),r.default})()}));
@@ -324,29 +324,29 @@ var MeganavSearchSuggestions = function MeganavSearchSuggestions(_ref) {
324
324
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
325
325
  className: "ui-text-overline2 text-cool-black py-12"
326
326
  }, "Popular pages"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
327
- className: "flex justify-between items-center overflow-x-scroll md:overflow-auto"
327
+ className: "flex justify-between items-center overflow-hidden"
328
328
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
329
- className: "flex"
329
+ className: "flex transition-transform"
330
330
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
331
331
  className: "py-12 pr-8 flex-shrink-0"
332
332
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
333
333
  href: absUrl("/docs/how-ably-works"),
334
- className: "ui-text-p2"
334
+ className: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
335
335
  }, "How does Ably work?")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
336
336
  className: "py-12 px-8 flex-shrink-0"
337
337
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
338
338
  href: absUrl("/docs/quick-start-guide"),
339
- className: "ui-text-p2"
339
+ className: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
340
340
  }, "Quickstart guide")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
341
341
  className: "py-12 px-8 flex-shrink-0"
342
342
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
343
343
  href: absUrl("/docs/core-features/pubsub"),
344
- className: "ui-text-p2"
344
+ className: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
345
345
  }, "Publish/Subscribe Messaging")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
346
346
  className: "py-12 pl-8 flex-shrink-0"
347
347
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
348
348
  href: absUrl("/platform"),
349
- className: "ui-text-p2"
349
+ className: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus"
350
350
  }, "Platform"))), displaySupportLink ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_FeaturedLink_component_jsx__WEBPACK_IMPORTED_MODULE_2__.default, {
351
351
  url: absUrl("/support"),
352
352
  textSize: "text-p2"
@@ -0,0 +1,3 @@
1
+ @layer base {
2
+ @import url("https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@600&display=swap");
3
+ }
package/core/styles.css CHANGED
@@ -15,9 +15,10 @@
15
15
  --color-charcoal-grey: #292831;
16
16
  --color-gui-default: #0073e6;
17
17
  --color-gui-hover: #0867c4;
18
- --color-gui-focus: #80b9f2;
18
+ --color-gui-focus: #0073e6;
19
+ --color-gui-focus-outline: #80b9f2;
19
20
  --color-gui-active: #074095;
20
- --color-gui-viewed: #4887c2;
21
+ --color-gui-visited: #4887c2;
21
22
  --color-gui-unavailable: #a8a8a8;
22
23
  --color-gui-error: #fb0c0c;
23
24
  --color-gui-success: #11cb24;
@@ -157,7 +158,7 @@
157
158
  /* In components, when looking at implementing viewport margin and spacing between elements,
158
159
  the values in the comments can be used as guide as they represent the grid the elements (should) sit on.
159
160
  alternatively, look for ui-grid-* helpers. */
160
- --bp-xs: 375px; /* gutters 8px, side-margin 24px */
161
+ --bp-xs: 428px; /* gutters 8px, side-margin 24px */
161
162
  --bp-sm: 768px; /* gutters 16px, side-margin 32px */
162
163
  --bp-md: 1040px; /* gutters 24px, side-margin 40px, meganav desktop */
163
164
  --bp-lg: 1280px; /* gutters 24px, side-margin 64px */
@@ -345,17 +346,17 @@
345
346
  }
346
347
 
347
348
  .ui-text-p1 {
348
- @apply font-sans font-light text-cool-black;
349
+ @apply font-sans font-light text-charcoal-grey;
349
350
  @apply text-p1;
350
351
  }
351
352
 
352
353
  .ui-text-p2 {
353
- @apply font-sans font-light text-cool-black;
354
+ @apply font-sans font-light text-charcoal-grey;
354
355
  @apply text-p2;
355
356
  }
356
357
 
357
358
  .ui-text-p3 {
358
- @apply font-sans font-light text-cool-black;
359
+ @apply font-sans font-light text-charcoal-grey;
359
360
  @apply text-p3;
360
361
  }
361
362
 
@@ -461,24 +462,18 @@
461
462
  @apply list-square;
462
463
  }
463
464
 
464
- /* visited needs to come before :hover et all else it overrides them */
465
- .ui-link:visited {
466
- @apply text-gui-viewed;
465
+ .ui-link {
466
+ @apply visited:text-gui-visited;
467
+ @apply hover:text-gui-hover active:text-gui-active disabled:text-gui-unavailable;
468
+ @apply focus:text-gui-focus focus:outline-gui-focus;
469
+ @apply underline;
467
470
  }
468
471
 
469
- .ui-link {
470
- @apply hover:text-active-orange active:text-red-orange;
471
- -webkit-text-decoration-color: var(--color-active-orange);
472
- text-decoration-color: var(--color-active-orange);
473
- text-underline-offset: 4px; /* px used here as behaves weird with rem's */
474
- -webkit-text-decoration-line: underline;
475
- text-decoration-line: underline;
476
- text-decoration-thickness: 0.125rem;
477
- }
478
-
479
- .ui-link:focus {
480
- @apply focus:text-white focus:bg-active-orange focus:outline-none;
481
- text-decoration: none;
472
+ .ui-link-neutral {
473
+ @apply visited:text-dark-grey;
474
+ @apply hover:text-dark-grey active:text-cool-black disabled:text-gui-unavailable;
475
+ @apply focus:text-gui-focus focus:outline-gui-focus-neutral;
476
+ @apply underline;
482
477
  }
483
478
  }
484
479
  @layer components {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ably/ui",
3
- "version": "7.10.0-dev.e980a00",
3
+ "version": "8.0.1",
4
4
  "description": "Home of the Ably design system library ([design.ably.com](https://design.ably.com)). It provides a showcase, development/test environment and a publishing pipeline for different distributables.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,6 +1,4 @@
1
- @layer base {
2
- @import url("https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@600&display=swap");
3
- }
1
+ @import "../fonts/source-code-pro.css";
4
2
 
5
3
  @layer components {
6
4
  .hljs {
@@ -18,6 +18,7 @@ import MeganavControlMobileDropdown from "../MeganavControlMobileDropdown/compon
18
18
  import MobilePanelOpenClick from "../MeganavControlMobilePanelOpen/component";
19
19
  import MobilePanelCloseClick from "../MeganavControlMobilePanelClose/component";
20
20
  import MeganavSearchAutocomplete from "../MeganavSearchAutocomplete/component";
21
+ import MeganavSearchSuggestions from "../MeganavSearchSuggestions/component";
21
22
 
22
23
  // Close menu when user clicks outside of viewport
23
24
  const windowOnBlur = (closeAll) => {
@@ -117,6 +118,7 @@ export default function Meganav({ themeName } = { themeName: null }) {
117
118
  const panelOpenControls = MobilePanelOpenClick();
118
119
  const panelCloseControls = MobilePanelCloseClick();
119
120
  const search = MeganavSearchAutocomplete();
121
+ const searchSuggestions = MeganavSearchSuggestions();
120
122
 
121
123
  const mobileDropdownControl = MeganavControlMobileDropdown({
122
124
  clearPanels: () =>
@@ -126,6 +128,7 @@ export default function Meganav({ themeName } = { themeName: null }) {
126
128
  const closeAll = () =>
127
129
  [
128
130
  mobileDropdownControl,
131
+ searchSuggestions,
129
132
  ...panelOpenControls,
130
133
  ...panelCloseControls,
131
134
  ...controls,
@@ -137,6 +140,7 @@ export default function Meganav({ themeName } = { themeName: null }) {
137
140
  documentClick(closeAll),
138
141
  windowOnBlur(closeAll),
139
142
  mobileDropdownControl,
143
+ searchSuggestions,
140
144
  ...controls,
141
145
  ...panelOpenControls,
142
146
  ...panelCloseControls,
@@ -7,8 +7,6 @@ const MeganavControlMobileDropdown = ({ clearPanels }) => {
7
7
  const dropdown = queryId("meganav-mobile-dropdown");
8
8
  const menuIcon = queryId("meganav-control-mobile-dropdown-menu");
9
9
  const closeIcon = queryId("meganav-control-mobile-dropdown-close");
10
- const meganavSearchSuggestionsToggle = queryId("meganav-mobile-search-input");
11
- const meganavSearchSuggestions = queryId("meganav-mobile-search-suggestions");
12
10
 
13
11
  const clickHandler = () => {
14
12
  const ariaExpanded = control.getAttribute("aria-expanded");
@@ -28,40 +26,12 @@ const MeganavControlMobileDropdown = ({ clearPanels }) => {
28
26
  closeIcon.classList.toggle("hidden");
29
27
  };
30
28
 
31
- const focusSuggestionsHandler = () => {
32
- meganavSearchSuggestions.classList.add("max-h-96");
33
- };
34
- const blurSuggestionsHandler = (event) => {
35
- if (
36
- event.relatedTarget === meganavSearchSuggestions.querySelectorAll("a")[0]
37
- ) {
38
- return;
39
- }
40
- meganavSearchSuggestions.classList.remove("max-h-96");
41
- };
42
-
43
29
  control.addEventListener("click", clickHandler);
44
- meganavSearchSuggestionsToggle.addEventListener(
45
- "focus",
46
- focusSuggestionsHandler
47
- );
48
- meganavSearchSuggestionsToggle.addEventListener(
49
- "blur",
50
- blurSuggestionsHandler
51
- );
52
30
 
53
31
  return {
54
32
  teardown: () => {
55
33
  control.removeEventListener("click", clickHandler);
56
34
  scrollLock.enablePageScroll();
57
- meganavSearchSuggestionsToggle.removeEventListener(
58
- "focus",
59
- focusSuggestionsHandler
60
- );
61
- meganavSearchSuggestionsToggle.removeEventListener(
62
- "blur",
63
- blurSuggestionsHandler
64
- );
65
35
  },
66
36
  clear: () => {
67
37
  dropdown.classList.replace("visible", "invisible");
@@ -69,7 +39,6 @@ const MeganavControlMobileDropdown = ({ clearPanels }) => {
69
39
  menuIcon.classList.remove("hidden");
70
40
  closeIcon.classList.add("hidden");
71
41
  scrollLock.enablePageScroll();
72
- meganavSearchSuggestions.classList.remove("max-h-96");
73
42
  },
74
43
  };
75
44
  };
@@ -28,6 +28,7 @@
28
28
  class="ui-input px-48 h-48"
29
29
  style={{ maxWidth: "none" }}
30
30
  placeholder="Search"
31
+ autocomplete="off"
31
32
  data-id="meganav-mobile-search-input"
32
33
  />
33
34
 
@@ -53,6 +53,7 @@ const MeganavItemsMobile = ({ panels, paths, sessionState, theme, loginLink, abs
53
53
  className="ui-input px-48 h-48"
54
54
  style={{ maxWidth: "none" }}
55
55
  placeholder="Search"
56
+ autoComplete="off"
56
57
  data-id="meganav-mobile-search-input"
57
58
  />
58
59
 
@@ -2,12 +2,12 @@
2
2
  type="button"
3
3
  data-id="meganav-control"
4
4
  data-control="search"
5
- class="h-64 w-24 px-24 pr-48 py-20"
5
+ class="h-64 w-24 px-24 pr-48 py-20 group focus:outline-none"
6
6
  aria-expanded="false"
7
7
  aria-controls="panel-search"
8
8
  aria-label="Show Search Panel"
9
9
  >
10
- <%= render(AblyUi::Core::Icon.new(name: "icon-gui-search", size: "1.5rem", color: "text-cool-black", additional_css: "hover:text-gui-hover")) %>
10
+ <%= render(AblyUi::Core::Icon.new(name: "icon-gui-search", size: "1.5rem", color: "text-cool-black", additional_css: "group-hover:text-gui-hover group-focus:text-gui-focus")) %>
11
11
  </button>
12
12
 
13
13
  <div class="ui-meganav-panel invisible" id="panel-search" data-id="meganav-panel">
@@ -11,12 +11,12 @@ const MeganavSearch = ({ absUrl }) => {
11
11
  type="button"
12
12
  data-id="meganav-control"
13
13
  data-control="search"
14
- className="h-64 w-24 px-24 pr-48 py-20"
14
+ className="h-64 w-24 px-24 pr-48 py-20 group focus:outline-none"
15
15
  aria-expanded="false"
16
16
  aria-controls="panel-search"
17
17
  aria-label={`Show Search Panel`}
18
18
  >
19
- <Icon name="icon-gui-search" color="text-cool-black" size="1.5rem" additionalCSS="hover:text-gui-hover" />
19
+ <Icon name="icon-gui-search" color="text-cool-black" size="1.5rem" additionalCSS="group-hover:text-gui-hover group-focus:text-gui-focus" />
20
20
  </button>
21
21
 
22
22
  <div className="ui-meganav-panel invisible" id="panel-search" data-id="meganav-panel">
@@ -18,8 +18,8 @@ const init = ({ input, container, listContainer, clear, client }) => {
18
18
  }
19
19
  };
20
20
 
21
- const markQueryInSuggestion = (suggestion, query) => {
22
- return suggestion.value.replace(
21
+ const markQueryInSuggestion = (suggestionValue, query) => {
22
+ return suggestionValue.replace(
23
23
  query.toLowerCase(),
24
24
  `<span class="font-light">${query}</span>`
25
25
  );
@@ -58,6 +58,7 @@ const init = ({ input, container, listContainer, clear, client }) => {
58
58
  const items = results.suggestions.map((suggestion, index) => {
59
59
  const li = document.createElement("li");
60
60
  const button = document.createElement("button");
61
+ button.type = "button";
61
62
 
62
63
  button.classList.add(
63
64
  "ui-text-menu2",
@@ -71,25 +72,25 @@ const init = ({ input, container, listContainer, clear, client }) => {
71
72
  "hover:bg-light-grey"
72
73
  );
73
74
 
74
- button.innerHTML = markQueryInSuggestion(suggestion, query);
75
+ button.innerHTML = markQueryInSuggestion(suggestion.value, query);
75
76
 
76
77
  button.dataset.suggestionIndex = index;
77
78
 
78
79
  button.addEventListener("click", () => {
79
- navigateToUrl(suggestion);
80
+ navigateToUrl(suggestion.value);
80
81
  });
81
82
 
82
83
  button.addEventListener("keydown", (e) => {
83
84
  const key = e.key;
84
85
 
85
86
  if (key === "ArrowDown") {
86
- focusNext();
87
+ focusNext(index);
87
88
  } else if (key === "ArrowUp" && index - 1 < 0) {
88
89
  input.focus();
89
90
  } else if (key === "ArrowUp" && index - 1 >= 0) {
90
- focusPrevious();
91
+ focusPrevious(index);
91
92
  } else if (key === "Enter" || key === "Space") {
92
- navigateToUrl(suggestion);
93
+ navigateToUrl(suggestion.value);
93
94
  }
94
95
  });
95
96
 
@@ -4,7 +4,7 @@
4
4
  <form class="flex items-start" action={absUrl("/search")} method="get">
5
5
  <div class="relative w-full">
6
6
  <%= render(AblyUi::Core::Icon.new(name: "icon-gui-search", size: "1.5rem", color: "text-cool-black", additional_css:"absolute top-12 left-16")) %>
7
- <input type="search" name="q" class="ui-input pl-48 h-48" placeholder="Search" data-id="meganav-search-input" />
7
+ <input type="search" name="q" class="ui-input pl-48 h-48" placeholder="Search" autocomplete="off" data-id="meganav-search-input" />
8
8
 
9
9
  <%= render(AblyUi::Core::MeganavSearchAutocomplete.new) %>
10
10
  </div>
@@ -13,7 +13,7 @@ const MeganavSearchPanel = ({ absUrl }) => {
13
13
  <form className="flex items-start" action={absUrl("/search")} method="get">
14
14
  <div className="relative w-full">
15
15
  <Icon name="icon-gui-search" color="text-cool-black" size="1.5rem" additionalCSS="absolute top-12 left-16" />
16
- <input type="search" name="q" className="ui-input pl-48 h-48" placeholder="Search" data-id="meganav-search-input" />
16
+ <input type="search" name="q" className="ui-input pl-48 h-48" placeholder="Search" autoComplete="off" data-id="meganav-search-input" />
17
17
 
18
18
  <MeganavSearchAutocomplete />
19
19
  </div>
@@ -3,16 +3,16 @@
3
3
  <div class="flex justify-between items-center overflow-x-scroll md:overflow-auto">
4
4
  <ul class="flex">
5
5
  <li class="py-12 pr-8 flex-shrink-0">
6
- <%= link_to 'How does Ably work?', abs_url("/docs/how-ably-works"), class: "ui-text-p2" %>
6
+ <%= link_to 'How does Ably work?', abs_url("/docs/how-ably-works"), class: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus" %>
7
7
  </li>
8
8
  <li class="py-12 px-8 flex-shrink-0">
9
- <%= link_to 'Quickstart guide', abs_url("/docs/quick-start-guide"), class: "ui-text-p2" %>
9
+ <%= link_to 'Quickstart guide', abs_url("/docs/quick-start-guide"), class: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus" %>
10
10
  </li>
11
11
  <li class="py-12 px-8 flex-shrink-0">
12
- <%= link_to 'Publish/Subscribe Messaging', abs_url("/docs/core-features/pubsub"), class: "ui-text-p2" %>
12
+ <%= link_to 'Publish/Subscribe Messaging', abs_url("/docs/core-features/pubsub"), class: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus" %>
13
13
  </li>
14
14
  <li class="py-12 pl-8 flex-shrink-0">
15
- <%= link_to 'Platform', abs_url("/docs/how-ably-works"), class: "ui-text-p2" %>
15
+ <%= link_to 'Platform', abs_url("/docs/how-ably-works"), class: "ui-text-p2 hover:text-gui-hover active:text-gui-active focus:text-gui-focus" %>
16
16
  </li>
17
17
  </ul>
18
18