Get a Close-Up Look at Scheana Shay's 'Rare' 12.74-Carat Pink Morganite Engagement Ring (2023)

Yahoo Entertainment

Sign in

Mail

Sign in to view your mail

  • Entertainment
  • Anniversary Party
  • Role Recall
  • Under the Covers
  • Game Changers
  • The It List
  • The Never-Weres
  • Are the Kids Alright?
  • Interviews
  • Videos
  • Shopping
      {promoMarkup}{notifMarkup}

    {notificationCenterNavMsg}

    ',panelEmptyTemplate='

  • {emptyPanelMsg}

  • ',panelErrorTemplate='

    {errorMsg}

    ',panelParentTemplate='

    ',notifOnboardPromoTemplate='

  • Get a Close-Up Look at Scheana Shay's 'Rare' 12.74-Carat Pink Morganite Engagement Ring (3)

    {notifOnboardMsg}

  • ',EXPANDED_PANEL="expanded_panel",ERROR_PANEL="error_panel",NotificationView=function(){function e(n,t){classCallCheck(this,e);var i=this;i._config=n,i._panelNode=null,i._store=t}return createClass(e,[{key:"_generatePanelMarkup",value:function(e,n){var t=this._config,i=void 0,o=void 0;"undefined"!=typeof window&&(i=window.Notification&&"default"===window.Notification.permission,o=t.promos.bypassEligibleClassCheck||hasClass(document.body,t.promos.eligibleBodyClass));var s=t.promos.enableNotifOnboard&&i&&o?notifOnboardPromoTemplate:"";if(s){var r=t.promos.showYahooLogo?"":"yns-no-logo";s=s.replace("{notifOnboardBtnLabel}",t.promos.notifOnboardBtnLabel).replace("{notifOnboardMsg}",t.promos.notifOnboardMsg).replace("{subscriptionTopic}",t.promos.subscriptionTopic).replace("{noLogoClass}",r).replace("{promoLogo}",t.promos.promoLogo)}var a=n.newCount>t.panel.maxCount?n.newCount:"",c=t.panel.notificationCenterPath,l=c?"":constants.panelHideElement,d=t.panel.headerMsg?"":" "+constants.panelHideElement,u=c?constants.panelPaddingBtm:"",p=void 0;n.count?p=n.markup:p=panelEmptyTemplate.replace("{emptyPanelMsg}",t.panel.emptyPanelMsg);return e=e.replace("{notifMarkup}",p).replace("{promoMarkup}",s).replace("{hideClass}",l).replace("{notifCenterLink}",c).replace("{paddingClass}",u).replace("{headerMsg}",t.panel.headerMsg).replace("{hideHeaderClass}",d).replace(/{notificationCenterNavMsg}/g,t.panel.notificationCenterNavMsg).replace(/{newCount}/g,a)}},{key:"render",value:function(e,n){var t=this;if(t._panelNode){var i=void 0,o=t._panelNode,s=void 0,r=void 0;switch(e){case EXPANDED_PANEL:i=panelTemplate,r=t._store.getNotifications(),s=t._generatePanelMarkup(i,r),o.innerHTML=s;break;case ERROR_PANEL:s=(i=panelErrorTemplate).replace("{errorMsg}",t._config.panel.errorMsg),o.innerHTML=s}n&&n()}else n&&n(new Error("No panel parent"))}},{key:"createPanelParentNode",value:function(e){e&&(e.innerHTML=panelParentTemplate,this._panelNode=document.getElementById(constants.panelNodeId))}},{key:"updateBadgeNode",value:function(e){if(e){var n=this._store.getNotifications().newCount,t=this._config.badge.maxCount;if(n){var i=n>t?t+"+":n;e.innerHTML=i}else e.innerHTML=""}}},{key:"addStyles",value:function(e){if(e&&"undefined"!=typeof window){var n=document.getElementById(this._config.panel.styleTagId);n||((n=document.createElement("style")).type="text/css",n.id=this._config.panel.styleTagId,n.innerText=e,document.head.appendChild(n))}}}]),e}(),EXPANDED_PANEL$1="expanded_panel",ERROR_PANEL$1="error_panel",PanelController=function(){function e(n,t,i){classCallCheck(this,e);var o=this;o._store=t,o._view=i,o._config=n;var s=o._config.panel;o._panelParentNode=document.querySelector(s.parentSelector),o._badgeNode=o._config.badge.selector&&document.querySelector(o._config.badge.selector),o._indicatorNode=s.indicatorSelector&&document.querySelector(s.indicatorSelector)}return createClass(e,[{key:"createPanelParentNode",value:function(){this._view.createPanelParentNode(this._panelParentNode),this._notifPanelNode=document.getElementById(constants.panelNodeId)}},{key:"refreshPanelNode",value:function(e,n){var t=this;addClass(t._notifPanelNode,constants.panelLoading),t._store.fetchNotifications(e,(function(e,i){var o=window.wafer&&window.wafer.base;o&&o.destroy(t._notifPanelNode),e?t._notifPanelNode.innerHTML||(t._view.render(ERROR_PANEL$1),addClass(t._notifPanelNode,constants.panelLoading)):(t._view.render(EXPANDED_PANEL$1),t._view.updateBadgeNode(t._badgeNode),t._showBadge(),t._showIndicator(),t._view.addStyles(i.css)),removeClass(t._notifPanelNode,constants.panelLoading),o&&o.sync(t._notifPanelNode.parentNode),n&&n(e,i)}))}},{key:"resetBadge",value:function(){var e=this;e._store.resetNewCount(),e._view.updateBadgeNode(e._badgeNode),addClass(e._badgeNode,e._config.badge.hideClass)}},{key:"_showIndicator",value:function(){this._indicatorNode&&(this._store.getNotifications().newCount?addClass(this._indicatorNode,this._config.panel.indicatorClass):removeClass(this._indicatorNode,this._config.panel.indicatorClass))}},{key:"_showBadge",value:function(){var e=this;e._store.getNotifications().newCount?removeClass(e._badgeNode,e._config.badge.hideClass):addClass(e._badgeNode,e._config.badge.hideClass)}}]),e}(),config={promos:{eligibleBodyClass:"display-push-promos",enableNotifOnboard:!0,bypassEligibleClassCheck:!1,notifOnboardBtnLabel:"Notify Me",notifOnboardMsg:"Get alerts for breaking news and top stories",promoLogo:"https://s.yimg.com/cv/apiv2/ae/news/circle_bell.png",showYahooLogo:!0,subscriptionTopic:"gondor_homerun_news"},badge:{hideClass:"",maxCount:5,selector:""},panel:{emptyPanelMsg:"You have no new notifications.",errorMsg:"",headerMsg:"Notifications",imageTag:"img:40x40|2|80",indicatorClass:"yns-indicator",indicatorSelector:null,maxCount:6,notificationCenterNavMsg:"View all {newCount} notifications",notificationCenterPath:"",notificationTypes:"",parentSelector:null,styleTagId:"notificationStyles",theme:"default"},service:{attemptCount:1,attemptDelay:2,url:null,resetUrl:null,isRMP:!1,responseType:"json",timeout:1500}},Main=function(){function e(n){classCallCheck(this,e);var t=this;t.config=t._parseConfig(n),t._validateRequiredConfigs()&&(t._request=new NotificationRequest(t.config),t._store=new NotificationStore(t.config,t._request),t._view=new NotificationView(t.config,t._store),t._panelController=new PanelController(t.config,t._store,t._view),t._panelController.createPanelParentNode(),t._assignHelperMethods())}return createClass(e,[{key:"_parseConfig",value:function(e){var n={};for(var t in objectAssign(n,config),n)if(n.hasOwnProperty(t)){var i=n[t],o=e[t];"object"===(void 0===i?"undefined":_typeof(i))?objectAssign(i,o):n[t]=e[t]}return n}},{key:"_validateRequiredConfigs",value:function(){var e=this.config;return!(!e.panel.parentSelector||!e.service.url)}},{key:"_assignHelperMethods",value:function(){var e=this;e.helpers={refreshPanelNode:e._panelController.refreshPanelNode.bind(e._panelController),resetBadge:e._panelController.resetBadge.bind(e._panelController),resetIndicator:function(){removeClass(e._panelController._indicatorNode,e.config.panel.indicatorClass)}}}}]),e}(),notificationClient_module_min=Main,notificationClient={NotificationClient:notificationClient_module_min},CONSUMPTION_STORAGE_KEY="lnct",NotifClient=function(){function e(){var e,n;this.personalized=!1,this.ybarElem=document.getElementById("ybar"),this.partnerClasses=null===(n=null===(e=this.ybarElem)||void 0===e?void 0:e.className)||void 0===n?void 0:n.match(/ybar-variant-([a-z]*)/),this.client=new notificationClient.NotificationClient(this.getConfig())}return e.prototype.refreshPanel=function(){var e,n,t,i=this,o={lastUpdate:this.getTimeStamp()||this.setTimeStamp(),loadInHpViewer:!0,includePersonalized:this.personalized},s=(null===(e=window.YAHOO)||void 0===e?void 0:e.context)||(null===(n=window.Af)||void 0===n?void 0:n.context)||{};return s.region&&s.lang&&(o.lang=s.lang,o.region=s.region),(null===(t=this.partnerClasses)||void 0===t?void 0:t.length)&&(o.partner=this.partnerClasses[1]),new Promise((function(e,n){i.client.helpers.refreshPanelNode({matrixParams:o},(function(t,i){t&&(logError("Notification refresh error:",t),n(t)),e(i)}))}))},e.prototype.resetBadge=function(){this.client.helpers.resetBadge(),this.setTimeStamp()},e.prototype.getConfig=function(){var e,n,t,i,o,s={promos:{eligibleBodyClass:"display-push-promos",enableNotifOnboard:!0},badge:{selector:"#notif-badge",hideClass:"ybar-notification-hidden"},panel:{emptyPanelMsg:"You have no new notifications.",errorMsg:"Please check back later.",headerMsg:"Notifications",maxCount:5,parentSelector:"#ybarNotificationBody",notificationTypes:"breakingNews"},service:{url:"/tdv2_fp/api/resource/NotificationHistory.getHistory",isRMP:!1}},r=document.getElementById("notification-container"),a=null===(e=null==r?void 0:r.dataset)||void 0===e?void 0:e.config,c={};if(a){"att"===(null===(n=this.partnerClasses)||void 0===n?void 0:n[1])&&(s.promos.showYahooLogo=!1);try{var l=JSON.parse(a);c=__assign({},l),this.personalized=1===l.personalize}catch(e){logError("Notifications config parsing error",e)}r&&delete r.dataset.config}var d=this.mergeConfigs(s,c);return(null===(t=this.partnerClasses)||void 0===t?void 0:t.length)&&"yahoo"!==(null===(i=this.partnerClasses)||void 0===i?void 0:i[1])&&(null===(o=d.promos)||void 0===o?void 0:o.subscriptionTopic)&&delete d.promos.subscriptionTopic,d},e.prototype.mergeConfigs=function(e,n){var t=__assign({},e);for(var i in e)t[i]=__assign(__assign({},e[i]),n[i]);return t},e.prototype.getTimeStamp=function(){var e;return null===(e=window.localStorage)||void 0===e?void 0:e.getItem(CONSUMPTION_STORAGE_KEY)},e.prototype.setTimeStamp=function(){var e,n=""+Math.floor((new Date).getTime()/1e3);return null===(e=window.localStorage)||void 0===e||e.setItem(CONSUMPTION_STORAGE_KEY,n),n},e}(),notifClient=new NotifClient,getNotifClient=function(){return notifClient},reInit=function(){notifClient=new NotifClient},ybarRapid,ybarRapidInterval,ybarRapidErrMsg="",beaconQueue=[],noop=function(){},logRapidError=function(){window.removeEventListener("beforeunload",logRapidError),""!==ybarRapidErrMsg&&logError("Rapid not found on page",new Error(ybarRapidErrMsg))},findRapidWithSpaceid=function(e){var n=void 0;if(e&&e.length>0)for(var t=0;t

    0){if(ybarRapid.addModules(o,!1,i),beaconQueue.length>0)for(e=0;e90&&fireImageBeacon("performance",e)}catch(e){}}),1e3)}))},measureInit=measure("ybar-init");initYbar(),measureInit.stop(),initPerformanceMetricsBeaconListener(),initRapid(),initErrorBeaconListener();var selected="_yb_1hst9",Css$9={"right-item":"_yb_b652q",selected:selected,"ybar-mod-topnavigation":"_yb_pvkt1","ybar-mod-topnavigation-teaser-imp":"_yb_1tmh9"},DOCUMENT_NODE_TYPE=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var proto=Element.prototype;proto.matches=proto.matchesSelector||proto.mozMatchesSelector||proto.msMatchesSelector||proto.oMatchesSelector||proto.webkitMatchesSelector}function closest(e,n){for(;e&&e.nodeType!==DOCUMENT_NODE_TYPE;){if("function"==typeof e.matches&&e.matches(n))return e;e=e.parentNode}}var closest_1=closest;function _delegate(e,n,t,i,o){var s=listener.apply(this,arguments);return e.addEventListener(t,s,o),{destroy:function(){e.removeEventListener(t,s,o)}}}function delegate(e,n,t,i,o){return"function"==typeof e.addEventListener?_delegate.apply(null,arguments):"function"==typeof t?_delegate.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,(function(e){return _delegate(e,n,t,i,o)})))}function listener(e,n,t,i){return function(t){t.delegateTarget=closest_1(t.target,n),t.delegateTarget&&i.call(e,t)}}var delegate_1=delegate,ListNode=function(e){this.data=e,this.next=null,this.prev=null},LinkedList=function(){function e(){this.head=null,this.tail=null}return e.prototype.push=function(e){var n=new ListNode(e);return this.head?this.tail?(n.prev=this.tail,this.tail.next=n,this.tail=n):(this.tail=n,this.tail.prev=this.head,this.head.next=this.tail):(this.head=n,n.next=this.tail),n},e.prototype.size=function(){for(var e=0,n=this.head;n;)e+=1,n=n.next;return e},e.prototype.getHead=function(){return this.head},e.prototype.getTail=function(){return this.tail},e.prototype.get=function(e){if(e>=this.size())return null;for(var n=0,t=this.head;(null==t?void 0:t.next)&&n0&&!i.includes(n.sidenav)&&!i.includes(n.sidenavBtn)&&t(n)}};if(n.sidenavBtn&&n.closeBtn){if(e.addElementListener(n.sidenavBtn,"click",(function(){i(n)})),e.addElementListener(n.closeBtn,"click",(function(){t(n)})),n.sections)Array.from(n.sections).forEach((function(t){var i=t.querySelector("h3");i&&e.addElementListener(i,"click",(function(){if(t.classList.contains("".concat(Css$8.expanded)))return t.classList.remove("".concat(Css$8.expanded)),void t.classList.add("".concat(Css$8.collapsed));if(n.sidenav){var e=n.sidenav.querySelector(".".concat(Css$8.expanded));e&&(e.classList.remove("".concat(Css$8.expanded)),e.classList.add("".concat(Css$8.collapsed)))}t.classList.remove("".concat(Css$8.collapsed)),t.classList.add("".concat(Css$8.expanded))}))}));window.addEventListener("keyup",(function(e){27===e.keyCode&&t(n)}))}}));var Css$7={"logo-image":"_yb_1nkcw"},hideLogosOnError=function(e){e.length>0&&Array.prototype.forEach.call(e,(function(e){e.onerror=function(){e.onerror=null,e.style.display="none"}}))},fixLogoOutline=function(e,n){e&&(hideOutlineOnMouseDown("#ybar-logo","#ybar-logo",n),n.onDestroy((function(){e.classList.remove("ybar-show-outline"),e.classList.remove("ybar-hide-outline")})))},logoClick=function(e,n){n&&e.addElementListener(n,"click",(function(){e.triggerEvent("logo-click")}))},init$3=function(e,n){n.logoImages&&hideLogosOnError(n.logoImages),n.wrapper&&(fixLogoOutline(n.wrapper,e),logoClick(e,n.wrapper))};initModule("ybar-mod-logo",(function(e){var n={wrapper:document.getElementById("ybar-logo"),logoImages:document.querySelectorAll(".".concat(Css$7["logo-image"]))};init$3(e,n)}));var overlay$1="_yb_epj3v",tooltip="_yb_12nug",tooltip__text="_yb_nhqh1",tooltip__voice="_yb_fbgoa",tooltip__web="_yb_1cd92",dark="_yb_189we",darker="_yb_14m2m",light="_yb_13xtx",midnight60="_yb_1aqh1",Css$6={"dropdown-open":"_yb_tvunh","merchant-is-selected":"_yb_sn8is",overlay:overlay$1,"selected-merchant-clear-button":"_yb_5dznu","shops-buttons":"_yb_4ez5s","styled-select":"_yb_1cqj5",tooltip:tooltip,"tooltip--show":"_yb_6uzaj",tooltip__text:tooltip__text,tooltip__voice:tooltip__voice,tooltip__web:tooltip__web,dark:dark,darker:darker,light:light,midnight60:midnight60},range=function(e,n){var t=Math.max(e,n),i=Math.min(e,n),o=Math.abs(t-i);return __spreadArray([],__read(new Array(o+1)),!1).map((function(e,n){return i+n}))},openSearchOverlay=function(e,n,t){var i=e.getConfig().bucketConfig,o=(void 0===i?{}:i).enable_search_ui,s=void 0!==o&&o;if(n.ybar){n.ybar.classList.add("ybar-searchbox-assist-fullscreen"),document.documentElement.classList.add("ybar-overlay"),document.body.classList.add("ybar-overlay-noscroll");beaconClick("ybar","websrch","",{elm:"expand",subsec:"searchbox",itc:"1"}),setTimeout((function(){n.searchInput instanceof HTMLInputElement&&(t&&(n.searchInput.value=t),n.searchInput.focus(),s&&n.searchInput.click())}))}},closeSearchOverlay=function(e){var n;null===(n=e.ybar)||void 0===n||n.classList.remove("ybar-searchbox-assist-fullscreen"),document.documentElement.classList.remove("ybar-overlay"),document.body.classList.remove("ybar-overlay-noscroll"),e.searchInput instanceof HTMLInputElement&&(e.searchInput.value="",e.searchInput.blur())},initMweb=function(e,n){"smartphone"===e.getConfig().device&&(e.addElementListener(n.searchBoxPlaceholder,"click",(function(){openSearchOverlay(e,n)})),e.addElementListener(n.searchBoxPlaceholder,"keydown",(function(t){var i=t,o=i.keyCode,s=i.key,r=range(65,90),a=__spreadArray(__spreadArray([],__read(range(58,57)),!1),__read(range(96,105)),!1),c=__spreadArray(__spreadArray([],__read(r),!1),__read(a),!1).includes(o);(32===o||13===o||c)&&(t.preventDefault(),t.stopPropagation(),openSearchOverlay(e,n,c?s:""))})),n.searchBoxBackButton&&(e.addElementListener(n.searchBoxBackButton,"click",(function(e){e.stopPropagation(),closeSearchOverlay(n);beaconClick("ybar","back-close-srch","",{elm:"btn",subsec:"searchbox",itc:"1"})})),e.addElementListener(n.searchInput,"keyup",(function(e){e.stopPropagation();27===e.keyCode&&(e.stopPropagation(),closeSearchOverlay(n))}))),e.addEventListener("viewerClosed",(function(){closeSearchOverlay(n)})),e.onDestroy((function(){closeSearchOverlay(n)})))},Tooltip=function(){function e(e,n,t){n&&(this.ybar=e,this.elem=n,this.options=t,this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.addEventListeners())}return Object.defineProperty(e.prototype,"tooltip",{get:function(){var e=this;return this.tooltipMarkup||(this.tooltipMarkup=this.createTooltip(),(this.options.tooltipParentElm||this.elem).appendChild(this.tooltipMarkup),this.ybar.onDestroy((function(){var n,t;null===(t=null===(n=e.tooltipMarkup)||void 0===n?void 0:n.parentNode)||void 0===t||t.removeChild(e.tooltipMarkup)}))),this.tooltipMarkup},enumerable:!1,configurable:!0}),e.prototype.show=function(){this.tooltip.classList.add(this.options.showClass)},e.prototype.hide=function(){this.tooltip.classList.remove(this.options.showClass)},e.prototype.addEventListeners=function(){this.ybar.addElementListener(this.elem,"mouseenter",this.show),this.ybar.addElementListener(this.elem,"focus",this.show),this.ybar.addElementListener(this.elem,"mouseleave",this.hide),this.ybar.addElementListener(this.elem,"blur",this.hide)},e.prototype.createTooltip=function(){var e=document.createElement("div");e.className=this.options.containerClass||"";var n=document.createElement("p");return n.textContent=this.options.label,n.className=this.options.textClass||"",e.appendChild(n),e},e}();createCommonjsModule((function(module){(function(){var __webpack_modules__={"./src/index.js":/*!**********************!*\ !*** ./src/index.js ***! \**********************/function(__unused_webpack_module,__unused_webpack_exports,__webpack_require__){eval("var I18n = __webpack_require__(/*! ./lib/I18n */ \"./src/lib/I18n.js\");\n\n(function (win, doc) {\n \"use strict\";\n\n var defaultConfig = {\n uiLang: 'en-US',\n speechLang: 'en-US',\n voiceButton: '#voice-btn',\n searchBox: {\n form: '#sf',\n input: '#yschsp',\n params: {\n fr: '',\n fr2: ''\n }\n },\n enable_voice_trending: false,\n trending: {\n market: \"en-us\"\n },\n ui: {\n speechOverlay: {\n disableBlur: false\n }\n },\n browsers: {\n edge: false\n }\n };\n\n function VoiceSearch(config) {\n var self = this;\n self.config = Object.assign(defaultConfig, config || {});\n self.i18n = new VoiceSearch.I18n({\n lang: self.config.uiLang\n });\n self.renderPermissionGuide(self);\n self.renderSpeechPanel(self);\n self.speechResult = '';\n self.noSpeech = true;\n self.isRecognitionStart = false;\n self.recognition = null;\n self.voiceButton = doc.querySelector(self.config.voiceButton);\n self.searchBoxForm = doc.querySelector(self.config.searchBox.form);\n self.searchBoxQuery = doc.querySelector(self.config.searchBox.input);\n self.speechPanel = doc.querySelector('#spch');\n self.speechButtonContainer = doc.querySelector('#spchbc');\n self.speechButton = doc.querySelector('#spchbc-btn');\n self.speechText = doc.querySelector('#spcht');\n self.speechOverlay = doc.getElementById('spch-overlay');\n self.retryLink = doc.querySelector('#spcht-retry');\n self.trending = doc.getElementById('spch-trending');\n self.trendingTerms = doc.getElementById('trending-terms');\n self.termSpans = doc.getElementsByClassName(\"trending-term\");\n self.closeButton = doc.querySelector('#spchx');\n self.startAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-start-202105050733.wav');\n self.resultAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-result-202105050733.wav');\n self.errorAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-error-202105050733.wav');\n self.closeAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-close-202105050733.wav');\n self.permissionGuide = doc.querySelector('#spchp');\n self.permissionGuideClose = doc.querySelector('#spchpx');\n self.permissionGuideTimer = null;\n\n self.onEscKeyDown = function (e) {\n if (e.code !== 'Escape') {\n return;\n }\n\n self.recognition.stop();\n self.sendBeacon('keybrd', 'voicesearch_cancel_esc'); // The clean up should put inside closePanel() instead of here,\n // or func won't be cleaned up if user close panel with btn or overlay\n\n self.closePanel(self);\n };\n\n if (self.isBrowserSupported()) {\n var SpeechRecognition = win.SpeechRecognition || win.webkitSpeechRecognition;\n var SpeechGrammarList = win.SpeechGrammarList || win.webkitSpeechGrammarList;\n var speechGrammar = '#JSGF V1.0;';\n self.recognition = new SpeechRecognition();\n var speechRecognitionList = new SpeechGrammarList();\n\n if (speechRecognitionList.addFromString) {\n speechRecognitionList.addFromString(speechGrammar, 1);\n }\n\n self.recognition.grammars = speechRecognitionList;\n self.recognition.continuous = false;\n self.recognition.lang = self.config.speechLang;\n self.recognition.interimResults = false;\n self.recognition.maxAlternatives = 1;\n /* Listeners */\n\n if (self.voiceButton) {\n self.voiceButton.onclick = function () {\n self.recognition.start();\n\n if (self.permissionGuideTimer) {\n win.clearTimeout(self.permissionGuideTimer);\n }\n\n self.permissionGuideTimer = win.setTimeout(function () {\n if (!self.isRecognitionStart) {\n self.showPermissionGuide(self);\n }\n }, 300); // Also close when pressing esc\n\n doc.addEventListener('keydown', self.onEscKeyDown);\n self.sendBeacon('clk', 'voicesearch');\n };\n }\n\n if (self.speechButton) {\n self.speechButton.onclick = function () {\n if (!self.isRecognitionStart) {\n self.recognition.start();\n self.sendBeacon('clk', 'voicesearch_panel_mic_restart');\n } else {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_panel_mic_close');\n self.closePanel(self);\n }\n };\n }\n\n if (self.retryLink) {\n self.retryLink.onclick = function () {\n if (!self.isRecognitionStart) {\n self.recognition.start();\n self.sendBeacon('clk', 'voicesearch_panel_retry');\n }\n };\n }\n\n if (self.speechOverlay) {\n self.speechOverlay.onclick = function () {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_cancel_outside');\n self.closePanel(self);\n };\n }\n\n if (self.closeButton) {\n self.closeButton.onclick = function\n /*event*/\n () {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_cancel');\n self.closePanel(self);\n };\n }\n\n if (self.permissionGuideClose) {\n self.permissionGuideClose.onclick = function\n /*event*/\n () {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_permission_close');\n self.closeAudio.play();\n self.hidePermissionGuide(self);\n };\n }\n /* Recognition Events */\n\n\n self.recognition.onresult = function (event) {\n // The SpeechRecognitionEvent results property returns a SpeechRecognitionResultList object\n // The SpeechRecognitionResultList object contains SpeechRecognitionResult objects.\n // It has a getter so it can be accessed like an array\n // The first [0] returns the SpeechRecognitionResult at the last position.\n // Each SpeechRecognitionResult object contains SpeechRecognitionAlternative objects that contain individual results.\n // These also have getters so they can be accessed like arrays.\n // The second [0] returns the SpeechRecognitionAlternative at position 0.\n // We then return the transcript property of the SpeechRecognitionAlternative object\n // console.log('Confidence: ' + event.results[0][0].confidence);\n self.speechResult = event.results[0][0].transcript;\n /* Punctuation Handling: Check last character and strip it if necessary */\n\n self.handlePunctuation(self);\n\n if (self.speechText) {\n self.speechText.innerText = self.speechResult;\n }\n\n if (self.searchBoxQuery) {\n self.searchBoxQuery.value = self.speechResult;\n }\n\n self.resultAudio.play();\n win.setTimeout(function () {\n if (self.speechPanel) {\n self.speechPanel.classList.remove(\"s2tb\");\n self.speechPanel.classList.add(\"s2tb-h\");\n }\n\n self.hideRetryLink(self);\n\n if (self.searchBoxForm) {\n var inputFr = self.searchBoxForm.querySelector('[name=fr]');\n var inputFr2 = self.searchBoxForm.querySelector('[name=fr2]');\n\n if (inputFr && self.config.searchBox && self.config.searchBox.params && self.config.searchBox.params.fr) {\n inputFr.value = config.searchBox.params.fr;\n inputFr.disabled = false; // for homepage case\n }\n\n if (inputFr2 && self.config.searchBox && self.config.searchBox.params && self.config.searchBox.params.fr2) {\n inputFr2.value = config.searchBox.params.fr2;\n inputFr2.disabled = false; // for homepage case\n }\n\n self.searchBoxForm.submit();\n }\n }, 1000);\n };\n\n self.recognition.onspeechstart = function\n /*event*/\n () {// Fired when speech starts\n };\n\n self.recognition.onspeechend = function () {\n // Fired when speech ends\n self.recognition.stop();\n };\n\n self.recognition.onerror = function\n /*event*/\n () {\n // console.log('Error occurred in recognition: ' + event.error);\n if (self.speechText) {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_error');\n }\n\n self.hideTrending(self);\n self.showRetryLink(self);\n self.errorAudio.play();\n };\n\n self.recognition.onaudiostart = function\n /*event*/\n () {\n // Fired when the user agent has started to capture audio.\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.add(\"listening\");\n }\n };\n\n self.recognition.onaudioend = function\n /*event*/\n () {\n // Fired when the user agent has finished capturing audio.\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\"listening\");\n }\n };\n\n self.recognition.onsoundstart = function\n /*event*/\n () {\n // Fired when any sound — recognisable speech or not — has been detected.\n self.hideTrending(self);\n self.noSpeech = false;\n\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\"listening\");\n self.speechButtonContainer.classList.add(\"speaking\");\n }\n };\n\n self.recognition.onsoundend = function\n /*event*/\n () {\n // Fired when no sound present\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\"speaking\");\n }\n };\n\n self.recognition.onstart = function\n /*event*/\n () {\n // Fired when the speech recognition service has begun listening\n self.recognitionInit(self);\n self.startRecognition(self);\n };\n\n self.recognition.onend = function\n /*event*/\n () {\n // Fired when the speech recognition service has disconnected.\n self.isRecognitionStart = false;\n\n if (self.noSpeech == false && self.speechResult == '') {\n // No match: Fired when the speech recognition can't recognise speech\n if (self.speechText) {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_nomatch');\n }\n\n self.hideTrending(self);\n self.showRetryLink(self);\n self.errorAudio.play();\n }\n }; // trigger onReady event when initialized\n\n\n if (document && document.dispatchEvent) {\n document.dispatchEvent(new Event('VOICE_JS_READY'));\n }\n }\n } // static members\n\n\n VoiceSearch.I18n = I18n; // instance members\n\n VoiceSearch.prototype.renderPermissionGuide = function (self) {\n var tmpl = \"\\n

    \\n

    \\n

    \\n

    \\n

    \\n

    \\n

    \\n

    \".concat(self.i18n.t('search.voice.permission_title'), \"

    \\n

    \").concat(self.i18n.t('search.voice.permission_text'), \"

    \\n

    \\n

    \\n

    \\n \");\n var dom = new DOMParser().parseFromString(tmpl, 'text/html');\n document.body.appendChild(dom.body.children[0]);\n };\n\n VoiceSearch.prototype.renderSpeechPanel = function (self) {\n var tmpl = \"\\n

    \\n

    \\n

    \\n

    \\n

    \\n

    \\n \\n \\n \\n \\n \\n \\n

    \\n

    \\n

    \\n \\n \\n \".concat(self.i18n.t('search.voice.recognition_retry'), \"\\n

    \\n

    \\n

    \\n

    \\n

    \\n

    \\n \").concat(self.i18n.t('search.voice.trending_title'), \"\\n \\n

    \\n

    \\n

    \\n \");\n var dom = new DOMParser().parseFromString(tmpl, 'text/html');\n\n if (self && self.config && self.config.ui && self.config.ui.speechOverlay && self.config.ui.speechOverlay.disableBlur) {\n dom.body.children[0].classList.add('disable-blur-overlay');\n }\n\n document.body.appendChild(dom.body.children[0]);\n };\n\n VoiceSearch.prototype.isBrowserSupported = function () {\n var isSupported = false;\n var self = this;\n var isChromium = Boolean(window.chrome);\n var isIOSChrome = /CriOS/.test(window.navigator.userAgent);\n var isEdge = /Edg\\//.test(window.navigator.userAgent);\n var isLegacyEdge = /Edge\\//.test(window.navigator.userAgent);\n var isOpera = Boolean(window.opr);\n var isBrave = Boolean(window.navigator.brave);\n var browsers = [// chrome\n {\n checkEnabled: function checkEnabled() {\n return true;\n },\n checkBrowser: function checkBrowser() {\n return isChromium && !isIOSChrome && !isEdge && !isOpera && !isBrave;\n },\n checkAPI: function checkAPI() {\n return win && ('SpeechRecognition' in win || 'webkitSpeechRecognition' in win) && ('SpeechGrammarList' in win || 'webkitSpeechGrammarList' in win);\n }\n }, // edge\n {\n checkEnabled: function checkEnabled() {\n return self && self.config && self.config.browsers && self.config.browsers.edge;\n },\n checkBrowser: function checkBrowser() {\n return isChromium && isEdge && !isLegacyEdge;\n },\n checkAPI: function checkAPI() {\n return win && ('SpeechRecognition' in win || 'webkitSpeechRecognition' in win) && ('SpeechGrammarList' in win || 'webkitSpeechGrammarList' in win);\n }\n }];\n\n for (var b = 0; b < browsers.length; b++) {\n var browser = browsers[b];\n\n if (browser && browser.checkBrowser && browser.checkBrowser() && browser.checkEnabled && browser.checkEnabled(self) && browser.checkAPI && browser.checkAPI()) {\n isSupported = true;\n }\n }\n\n return isSupported;\n };\n\n VoiceSearch.prototype.recognitionInit = function (self) {\n // Initialize flags for checking whether user is speaking or not\n self.speechResult = '';\n self.noSpeech = true;\n self.isRecognitionStart = true;\n };\n\n VoiceSearch.prototype.showPermissionGuide = function (self) {\n if (self.permissionGuide) {\n self.permissionGuide.classList.remove(\"hide\");\n }\n };\n\n VoiceSearch.prototype.hidePermissionGuide = function (self) {\n if (self.permissionGuide) {\n self.permissionGuide.classList.add(\"hide\");\n }\n };\n\n VoiceSearch.prototype.getTrending = function (self) {\n // Call api for trending terms\n if (!self.config.enable_voice_trending || !self.trending) {\n return;\n }\n\n var url = \"https://api.search.yahoo.com/data/v3/search?appid=4d234a9d&market=\" + self.config.trending.market + \"&features=trending.voice\";\n self.ajaxReq(url, function (resBody) {\n if (!resBody || !resBody.response || !resBody.response.search || !resBody.response.search.results || !resBody.response.search.results[\"trending.voice\"]) {\n return;\n }\n\n var terms = resBody.response.search.results[\"trending.voice\"].data;\n self.showTrending(self, terms);\n });\n };\n\n VoiceSearch.prototype.showTrending = function (self, terms) {\n // params check\n if (!Array.isArray(terms) || terms.length < 3) {\n return;\n } // DOM check\n\n\n if (!self.trending || !self.termSpans || !self.termSpans[0]) {\n return;\n }\n\n var trendingLabel = '';\n trendingLabel += '\"' + terms[0].text + '\"' + ', ';\n trendingLabel += '\"' + terms[1].text + '\"' + ' ';\n trendingLabel += self.i18n.t('search.voice.trending_or') + ' ';\n trendingLabel += '\"' + terms[2].text + '\"';\n self.termSpans[0].innerText = trendingLabel;\n self.trending.classList.remove(\"hide\");\n };\n\n VoiceSearch.prototype.hideTrending = function (self) {\n if (!self.trending) {\n return;\n }\n\n self.trending.classList.add(\"hide\");\n };\n\n VoiceSearch.prototype.showRetryLink = function (self) {\n if (self.retryLink) {\n self.retryLink.innerText = self.i18n.t('search.voice.recognition_retry');\n self.retryLink.classList.remove(\"hide\");\n }\n };\n\n VoiceSearch.prototype.hideRetryLink = function (self) {\n if (self.retryLink) {\n self.retryLink.classList.add(\"hide\");\n }\n };\n\n VoiceSearch.prototype.startRecognition = function (self) {\n self.hidePermissionGuide(self);\n self.getTrending(self);\n self.startAudio.play();\n\n if (self.speechText) {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_start');\n win.setTimeout(function () {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_listening');\n }, 2000);\n }\n\n if (self.speechPanel) {\n self.speechPanel.classList.remove(\"s2tb-h\");\n self.speechPanel.classList.add(\"s2tb\");\n }\n\n self.hideRetryLink(self);\n };\n\n VoiceSearch.prototype.closePanel = function (self) {\n self.closeAudio.play();\n win.setTimeout(function () {\n if (self.speechPanel) {\n self.speechPanel.classList.remove(\"s2tb\");\n self.speechPanel.classList.add(\"s2tb-h\");\n }\n\n self.hideTrending(self);\n self.hideRetryLink(self); // clean up esc listener\n\n doc.removeEventListener('keydown', self.onEscKeyDown);\n }, 100);\n };\n\n VoiceSearch.prototype.handlePunctuation = function (self) {\n if (self.speechResult.length > 0) {\n var lastChar = self.speechResult.charAt(self.speechResult.length - 1);\n\n if (lastChar === '.' || lastChar === '?' || lastChar === '。' || lastChar === '?') {\n self.speechResult = self.speechResult.slice(0, -1);\n }\n }\n };\n\n VoiceSearch.prototype.sendBeacon = function (actn, slk) {\n var ULT = win.YAHOO.ULT || {},\n SB = win.YAHOO.SB || {};\n\n if (ULT.beacon_click) {\n var trackParams = {\n _S: SB.config.i13n.spaceid,\n _I: SB.config.i13n.pvid,\n actn: actn,\n sec: 'search',\n slk: slk\n };\n win.YAHOO.ULT.beacon_click(trackParams);\n }\n };\n\n VoiceSearch.prototype.ajaxReq = function (url, callback) {\n var DONE_STATE = XMLHttpRequest.DONE || 4; // for IE-compatibility\n\n var xhr = new XMLHttpRequest();\n var responseRaw;\n var response; // CORS request only for IE8/IE9\n\n if (doc.documentMode && doc.documentMode < 10) {\n var xdr = new win.XDomainRequest();\n\n xdr.onload = function () {\n try {\n response = JSON.parse(responseRaw);\n callback(response);\n } catch (err) {\n return;\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n return;\n } // CORS request for browers newer than IE9\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState !== DONE_STATE) {\n return;\n } // handle ajax response\n\n\n switch (xhr.status) {\n case 200:\n responseRaw = xhr.responseText;\n\n try {\n response = JSON.parse(responseRaw);\n callback(response);\n } catch (err) {\n return;\n }\n\n break;\n\n default:\n // non-200 status code: retry or assume failure\n callback(response);\n break;\n }\n };\n\n xhr.open('GET', url, true);\n /* aync request */\n\n xhr.timeout = 10000;\n xhr.send();\n };\n\n if (!win.YAHOO) {\n win.YAHOO = {};\n }\n\n if (!win.YAHOO.Util) {\n win.YAHOO.Util = {};\n }\n\n win.YAHOO.Util.VoiceSearch = VoiceSearch;\n})(window, document);\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/index.js?")},"./src/lib/I18n.js":/*!*************************!*\ !*** ./src/lib/I18n.js ***! \*************************/function(module,__unused_webpack_exports,__webpack_require__){eval("module.exports = function () {\n var LANG_LIST = __webpack_require__(/*! ./lang_list.json */ \"./src/lib/lang_list.json\");\n\n var DEFAULT_LANG = 'default';\n\n var isValidLang = function isValidLang(lang) {\n return LANG_LIST.indexOf(lang) !== -1;\n }; // convert language strings to key-value map\n\n\n var buildStrMap = function buildStrMap(langStrings) {\n return langStrings.reduce(function (strMap, item) {\n strMap[item.id] = item.defaultMessage;\n return strMap;\n }, {});\n };\n\n var I18n = function I18n(options) {\n // initialize\n this.lang = isValidLang(options && options.lang) ? options.lang : DEFAULT_LANG;\n }; // static members\n\n\n I18n.langMap = {};\n I18n.langMap[DEFAULT_LANG] = buildStrMap(__webpack_require__(/*! ../lang/strings.json */ \"./src/lang/strings.json\"));\n\n I18n.setLangMap = function (lang, strings) {\n if (lang && strings) {\n I18n.langMap[lang] = buildStrMap(strings);\n }\n }; // instance members\n\n\n I18n.prototype = {\n t: function t(id) {\n switch (true) {\n // look up target language\n case Boolean(I18n.langMap && I18n.langMap[this.lang] && I18n.langMap[this.lang][id]):\n return I18n.langMap[this.lang][id];\n // fallback to default strings\n\n case Boolean(I18n.langMap && I18n.langMap[DEFAULT_LANG] && I18n.langMap[DEFAULT_LANG][id]):\n return I18n.langMap[DEFAULT_LANG][id];\n\n default:\n return '';\n }\n }\n };\n return I18n;\n}();\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/lib/I18n.js?")},"./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css":/*!*******************************************************************************************************!*\ !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css ***! \*******************************************************************************************************/function(module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, "/* Sprites */\\n#spchp.permission-guide .guide .microphone .sprite,\\n#spchp .close-button,\\n#spch .close-button,\\n#spch .spchc .microphone,\\n#spch .spchc .speaking .microphone {\\n background-image: url(https://s.yimg.com/pv/static/img/voiceSearch1x-1620383531565.min.png);\\n background-repeat: no-repeat;\\n background-size: initial;\\n color: transparent;\\n}\\n/* Retina displays */\\n@media\\n only screen and (-webkit-min-device-pixel-ratio: 2),\\n only screen and (min-device-pixel-ratio: 2),\\n only screen and (min-resolution: 192dpi),\\n only screen and (min-resolution: 2dppx) {\\n#spchp.permission-guide .guide .microphone .sprite,\\n#spchp .close-button,\\n#spch .close-button,\\n#spch .spchc .microphone,\\n#spch .spchc .speaking .microphone {\\n background-size: 41px 330px;\\n background-image: url(https://s.yimg.com/pv/static/img/voiceSearch2x-1620383531565.min.png)\\n}\\n }\\n\\n/* permission guide */\\n#spchp.permission-guide {\\n height: 100%;\\n width: 100%;\\n padding: 0;\\n opacity: 0.9;\\n background-color: #fff;\\n left: 0;\\n overflow: hidden;\\n position: fixed;\\n text-align: left;\\n top: 0;\\n z-index: 10000;\\n transition: visibility 0s linear 0.218s, background-color 0.218s;\\n}\\n#spchp.permission-guide .close-button {\\n background-position: 0 0;\\n width: 24px;\\n height: 24px;\\n border: none;\\n cursor: pointer;\\n right: 0;\\n margin: 20px;\\n padding: 0;\\n position: absolute;\\n top: 0;\\n z-index: 10;\\n opacity: 0.8;\\n }\\n#spchp.permission-guide .close-button:hover {\\n opacity: 1;\\n }\\n#spchp.permission-guide .guide {\\n margin: 191px 0 0 507px;\\n }\\n#spchp.permission-guide .guide .microphone {\\n height: 68px;\\n width: 52px;\\n border-right: 1px solid #232a31;\\n float: left;\\n }\\n#spchp.permission-guide .guide .microphone .sprite {\\n background-position: 0 -105px;\\n width: 28px;\\n height: 28px;\\n }\\n#spchp.permission-guide .guide .guide-text {\\n height: 68px;\\n margin-left: 24px;\\n float: left;\\n }\\n#spchp.permission-guide .guide .guide-text .title {\\n color: #232a31;\\n font-size: 32px;\\n font-family: HelveticaNeue-Bold;\\n line-height: 28px;\\n margin-bottom: 16px;\\n }\\n#spchp.permission-guide .guide .guide-text .text {\\n color: #232a31;\\n font-size: 16px;\\n line-height: 28px;\\n }\\n#spchp.permission-guide.hide {\\n display: none;\\n }\\n\\n/* speech panel */\\n#spch.spch {\\n background: #fff;\\n height: 100%;\\n left: 0;\\n opacity: 0;\\n overflow: hidden;\\n position: fixed;\\n text-align: left;\\n top: 0;\\n visibility: hidden;\\n width: 100%;\\n z-index: 10000;\\n transition: visibility 0s linear 0.218s, background-color 0.218s;\\n}\\n#spch.spch .close-button {\\n background-position: 0 0;\\n width: 24px;\\n height: 24px;\\n border: none;\\n cursor: pointer;\\n right: 0;\\n margin: 20px;\\n padding: 0;\\n position: absolute;\\n top: 0;\\n z-index: 10;\\n opacity: 0.8;\\n }\\n#spch.spch .close-button:hover {\\n opacity: 1;\\n }\\n#spch.spch .spchc {\\n display: block;\\n height: 97px;\\n pointer-events: none;\\n }\\n#spch.spch .spchc .inner-container {\\n width: 100%;\\n height: 100%;\\n opacity: 0.1;\\n pointer-events: none;\\n transition: opacity 0.318s ease-in;\\n }\\n#spch.spch .spchc .inner-container .spch-control {\\n display: inline-block;\\n }\\n#spch.spch .spchc .inner-container .text-container {\\n float: left;\\n height: 91px;\\n overflow: hidden;\\n margin: 3px 0;\\n pointer-events: none;\\n width: calc(50% - 48.5px);\\n }\\n#spch.spch .spchc .inner-container .text-container p {\\n display: table-cell;\\n vertical-align: middle;\\n width: 550px;\\n height: 97px;\\n }\\n#spch.spch .spchc .inner-container .text-container .spcht {\\n font-weight: normal;\\n color: #6e7780;\\n line-height: normal;\\n opacity: 0;\\n pointer-events: none;\\n text-align: left;\\n -webkit-font-smoothing: antialiased;\\n transition: opacity 0.1s ease-in, margin-left 0.5s ease-in, top 0s linear 0.218s;\\n }\\n#spch.spch .spchc .inner-container .text-container .spcht.hide {\\n display: none;\\n }\\n#spch.spch .spchc .inner-container .text-container #spcht-retry {\\n color: #0f69ff;\\n cursor: pointer;\\n pointer-events: auto;\\n }\\n#spch.spch .spchc .inner-container .button-container {\\n pointer-events: none;\\n position: relative;\\n transition: transform 0.218s, opacity 0.218s ease-in;\\n }\\n#spch.spch .spchc .inner-container .button-container .button {\\n background-color: #fff;\\n border: 1px solid #eee;\\n border-radius: 100%;\\n bottom: 0;\\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\\n cursor: pointer;\\n display: inline-block;\\n left: 0;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n right: 0;\\n top: 0;\\n transition: background-color 0.218s, border 0.218s, box-shadow 0.218s;\\n }\\n#spch.spch .spchc .inner-container .button-container .button .microphone {\\n background-position: 0 -24px;\\n width: 41px;\\n height: 41px;\\n left: 27px;\\n pointer-events: none;\\n position: absolute;\\n top: 27px;\\n transform: scale(1);\\n }\\n#spch.spch .spchc .inner-container .button-container.listening .ripple {\\n position: absolute;\\n width: 136px;\\n height: 136px;\\n z-index: -1;\\n left: 50%;\\n top: 50%;\\n opacity: 0;\\n margin: -70px 0 0 -70px;\\n border-radius: 100px;\\n -webkit-animation: ripple 3.3s infinite;\\n animation: ripple 3.3s infinite;\\n background-color: #fff !important;\\n border: 2px solid #e0e4e9;\\n }\\n#spch.spch .spchc .inner-container .button-container.listening .ripple:nth-child(2) {\\n -webkit-animation-delay: 1.1s;\\n animation-delay: 1.1s;\\n }\\n#spch.spch .spchc .inner-container .button-container.listening .ripple:nth-child(3) {\\n -webkit-animation-delay: 2.2s;\\n animation-delay: 2.2s;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .button {\\n background-color: #0f69ff;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .button .microphone {\\n background-position: 0 -65px;\\n width: 40px;\\n height: 40px;\\n pointer-events: none;\\n position: absolute;\\n transform: scale(1);\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .ripple {\\n background-size: 114px;\\n position: absolute;\\n width: 114px;\\n height: 114px;\\n z-index: -1;\\n left: 50%;\\n top: 50%;\\n margin: -57px 0 0 -57px;\\n -webkit-animation: speakingRipple1 2s infinite;\\n animation: speakingRipple1 2s infinite;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .ripple:nth-child(2) {\\n background-size: 123px;\\n width: 123px;\\n height: 123px;\\n margin: -62px 0 0 -62px;\\n -webkit-animation: speakingRipple2 2s infinite;\\n animation: speakingRipple2 2s infinite;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .ripple:nth-child(3) {\\n background-size: 136px;\\n width: 136px;\\n height: 136px;\\n margin: -68px 0 0 -68px;\\n -webkit-animation: speakingRipple3 2s infinite;\\n animation: speakingRipple3 2s infinite;\\n }\\n#spch.spch .spcho {\\n background-image: linear-gradient(to bottom, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 99%);\\n display: block;\\n min-width: 100%;\\n text-align: center;\\n top: 145px;\\n padding-bottom: 71px;\\n pointer-events: auto;\\n }\\n#spch.spch .spcho #spch-trending {\\n -webkit-animation: fadeIn 1s forwards;\\n animation: fadeIn 1s forwards;\\n opacity: 0;\\n }\\n#spch.spch .spcho #spch-trending .trending {\\n color: #6e7780;\\n display: inline-block;\\n font-size: 16px;\\n }\\n#spch.spch .spcho #spch-trending #trending-label {\\n font-weight: bold;\\n margin: 5px 5px;\\n }\\n#spch.spch .spcho #spch-trending.hide {\\n display: none;\\n }\\n#spch.spch.s2tb .spchc, #spch.spch.s2tb-h .spchc {\\n background: #fff;\\n box-sizing: border-box;\\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\\n height: auto;\\n margin: 0;\\n min-width: 100%;\\n overflow: hidden;\\n padding: 24px 115px;\\n }\\n#spch.spch.s2tb .spchc .inner-container, #spch.spch.s2tb-h .spchc .inner-container {\\n opacity: 1;\\n transition: opacity 0.318s ease-in;\\n }\\n#spch.spch.s2tb .spchc .inner-container .text-container, #spch.spch.s2tb-h .spchc .inner-container .text-container {\\n position: relative;\\n }\\n#spch.spch.s2tb {\\n background: rgba(255, 255, 255, 0);\\n opacity: 1;\\n visibility: visible;\\n transition-delay: 0s;\\n }\\n#spch.spch.s2tb .spchc .inner-container .button-container {\\n transform: scale(1);\\n height: 97px;\\n right: 0;\\n top: 0;\\n width: 97px;\\n }\\n#spch.spch.s2tb .spchc .inner-container .button-container .button {\\n opacity: 1;\\n pointer-events: auto;\\n position: absolute;\\n transform: scale(1);\\n transition-delay: 0;\\n }\\n#spch.spch.s2tb .spchc .inner-container .text-container .spcht {\\n font-size: 24px;\\n margin-left: 0;\\n opacity: 1;\\n transition: opacity 0.5s ease-out, margin-left 0.5s ease-out;\\n }\\n#spch.spch.s2tb #spch-overlay {\\n -webkit-backdrop-filter: blur(10px);\\n backdrop-filter: blur(10px);\\n background-color: #fff;\\n height: 100%;\\n opacity: 0.9;\\n position: absolute;\\n top: 149px;\\n\\n /* spchc\'s height */\\n width: 100%;\\n }\\n#spch.spch.disable-blur-overlay #spch-overlay {\\n background-color: transparent;\\n -webkit-backdrop-filter: none;\\n backdrop-filter: none;\\n }\\n#spch.spch.disable-blur-overlay .spcho {\\n height: 27px;\\n padding-bottom: 20px;\\n background: #fff;\\n background-image: none;\\n box-shadow: 0 8px 6px -6px rgb(0 0 0 / 20%);\\n }\\n#spch.spch.s2tb-h {\\n background: rgba(255, 255, 255, 0);\\n opacity: 0;\\n visibility: hidden;\\n }\\n\\n@-webkit-keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n }\\n\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n }\\n\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n@-webkit-keyframes ripple {\\n 0% {\\n opacity: 1;\\n transform: scale(0.7);\\n }\\n\\n 100% {\\n opacity: 0;\\n transform: scale(1);\\n }\\n}\\n\\n@keyframes ripple {\\n 0% {\\n opacity: 1;\\n transform: scale(0.7);\\n }\\n\\n 100% {\\n opacity: 0;\\n transform: scale(1);\\n }\\n}\\n\\n@-webkit-keyframes speakingRipple1 {\\n 0%,\\n 100% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-1-202105260611.png\\");\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@keyframes speakingRipple1 {\\n 0%,\\n 100% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-1-202105260611.png\\");\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@-webkit-keyframes speakingRipple2 {\\n 0%,\\n 100% {\\n background-image: none;\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@keyframes speakingRipple2 {\\n 0%,\\n 100% {\\n background-image: none;\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@-webkit-keyframes speakingRipple3 {\\n 0%,\\n 25%,\\n 75%,\\n 100% {\\n background-image: none;\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple3-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@keyframes speakingRipple3 {\\n 0%,\\n 25%,\\n 75%,\\n 100% {\\n background-image: none;\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple3-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n", ""]);\n// Exports\n/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/index.css?./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js')},"./node_modules/css-loader/dist/runtime/api.js":/*!*****************************************************!*\ !*** ./node_modules/css-loader/dist/runtime/api.js ***! \*****************************************************/function(module){eval('\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return "@media ".concat(item[2], " {").concat(content, "}");\n }\n\n return content;\n }).join("");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === "string") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, ""]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = "".concat(mediaQuery, " and ").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\n//# sourceURL=webpack://@vzmi/voicejs/./node_modules/css-loader/dist/runtime/api.js?')},"./src/index.css":/*!***********************!*\ !*** ./src/index.css ***! \***********************/function(module,__unused_webpack_exports,__webpack_require__){eval('var api = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");\n var content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js!../node_modules/postcss-loader/dist/cjs.js!./index.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === \'string\') {\n content = [[module.id, content, \'\']];\n }\n\nvar options = {};\n\noptions.insert = "head";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/index.css?')},"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":/*!****************************************************************************!*\ !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! \****************************************************************************/function(module,__unused_webpack_exports,__webpack_require__){eval("\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = true ? __webpack_require__.nc : 0;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of

    FAQs

    How much would a 12.74 carat pink morganite ring cost? ›

    On the latest episode of the hit reality show, the 30-year-old Australian former rugby player was shown reportedly using three separate credit cards to purchase the $25,000, 12.74-carat pink morganite ring from celeb-loved jeweler Kyle Chan.

    Is Scheana Shay's engagement ring real? ›

    “We are SO thrilled that @scheana and @brock__davies finally tied the knot in Mexico!” the company wrote. Davies gave Shay a 4-carat emerald cut solitaire ring designed by Ring Come True. Davies gave Shay a 4-carat emerald cut solitaire ring designed by Ring Come True.

    How much is Scheana from vanderpump engagement ring worth? ›

    During an episode of the reality show, Brock could be seen using three separate credit cards to purchase the $25,000 ring for Scheana. “I knew it was coming soon, but I didn't know how or when. I was so surprised!” the Bravo star told People at the time.

    How did Brock afford Scheana's ring? ›

    In the January 5 episode of Vanderpump Rules, Brock bought Scheana the gorgeous pink morganite sparkler, which he purchased using three different credit cards. After receiving backlash from viewers on the payment method, Scheana decided to set the record straight in an exclusive interview with Us Weekly.

    What is the most valuable color of morganite? ›

    Generally, pure pinks to purplish pinks with strong color saturation are the rarest and most valuable morganite colors. Remember that morganite is usually light in color, making it a great pastel gemstone.

    Is pink morganite expensive? ›

    The price of morganite may vary, but in general, morganite costs around $100 to $300 per carat. Morganite stones that are medium light to medium pink in color, with custom cuts, are the most valuable of all. The lighter the stone and the more inclusions, the less valuable it is.

    Is morganite better than diamond? ›

    Morganite has a hard rating of 7-8 on the Mohs scale, while diamonds have a rating of 10. This means Morganite is more susceptible to scratches and chips than diamonds, but still considered durable for light everyday wear.

    Is morganite cheaper than diamond? ›

    If you're opting for a diamond alternative to save money, morganite and moissanite are both more affordable than diamonds. The price per carat of both stones is lower than even lab created diamonds. Morganite usually costs about three hundred dollars per carat.

    What kind of stone is Scheana Shay's engagement ring? ›

    Jewelry designer Kyle Chan dished that the ring was a "very rare pink morganite" stone that "looks like a pink diamond." The husband-to-be noted that he was first thinking about getting Scheana an eight-carat ring, but eventually ended up with one that had over 12 carats.

    How much is Katie Maloney ring? ›

    Katie Maloney's Engagement Ring From Tom Schwartz: See Her $25K Bling.

    How many carats is Lisa Vanderpump's engagement ring? ›

    Lisa Vanderpump

    It's no surprise that the Real Housewives of Beverly Hills star rocks a 20-carat bauble on her hand. The ring from her husband, Kenneth Todd, features an emerald-cut diamond in a pave setting and is worth around $2 million.

    How many carats is Raquel Leviss engagement ring? ›

    The groom then shared some more details about the diamond, including that it's 2.5 carats, it is insured, and that it is "priceless."

    What is a morganite stone? ›

    Morganite is the pink to orange-pink variety of beryl, a mineral that includes emerald and aquamarine. Natural color. Blends of pink and orange are typical natural morganite colors. Size. At 146.58 cts., this oval-cut morganite is a sizeable specimen.

    How did Beau get Stassi's ring? ›

    So Stassi's sparkler definitely stands out in the crowd. The ring is actually a family heirloom from the early 1900s. Beau's grandfather received the ring in the 1940s or 1950s, and he later passed it on to Beau's aunt.

    How much is morganite worth per carat? ›

    What is Morganite worth per carat? The “Gemguide” gives a wholesale value to Morganite in fine quality from $85 to $450 per carat. Most of what we have sold is from $100 to $225 per carat with excellent quality.

    Which is more expensive pink sapphire or morganite? ›

    Affordability. Pink Sapphire: This is a precious gem that is quite sought-after. Fine-quality pink sapphires, especially, can be very expensive. Morganite: Fine-quality morganites are comparatively more affordable.

    Does morganite lose its sparkle? ›

    Needs Frequent Cleaning

    For some reason, maybe because of its lustre and colour, morganite tends to lose its sparkle faster than other gemstones. Fortunately, the remedy is simple. You just need to clean it often. Once a week, clean your engagement ring at home with a soft toothbrush.

    What is the best grade of morganite? ›

    The best clarity grade for Morganite is AAAA (heirloom) though only 1% of stones make this category. AAAA to AA is suitable for faceted jewelry.

    What is the best cut of morganite stone? ›

    Cut: The shape of a morganite gem should have minimal effect on its beauty. Like a diamond, a morganite engagement ring can be attractive as a round brilliant, emerald cut, marquise or oval. Light-color material might be cut slightly deep to help intensify the color.

    How can you tell if morganite is high quality? ›

    The best quality morganite is “clean” and free of visible inclusions of any kind. It exhibits an attractive vitreous lustre when cut and polished. Morganite engagement rings with highest clarity grades will be considered more valuable and any inclusions or blemishes will severely affect the value.

    What is the most expensive pink stone? ›

    1: The Pink Star Diamond

    The Pink Star is one of the most historically significant diamonds ever to be sold at public auction as it holds a couple of distinctions: The largest natural, Fancy Vivid Pink Colour and Internally Flawless ever sold. The most expensive Pink Diamond ever sold by some margin.

    Does morganite go up in value? ›

    As morganite frequently occurs in larger crystals, there is no exponential increase in price with carat weight. Paradoxically, smaller morganites, if they show good color, can be more valuable than larger ones. In order to show good color, large stones must be so large that they're impractical for use as jewelry.

    Should I buy a morganite engagement ring? ›

    Yes! Morganites are hardy and durable stones, making them a perfect diamond alternative for engagement rings. "Morganite is a 7.5 - 8 on the Mohs scale so not quite as hard as a diamond but with the proper care makes an excellent alternative.

    Can you wear morganite everyday? ›

    The short answer is yes! Morganites have a rating of 7.5 - 8 on Mohs scale of mineral hardness. While they aren't as strong as diamonds, you can definitely wear them every day. But maintenance is of utmost importance.

    Why is my morganite ring cloudy? ›

    Morganite should be cleaned regularly to avoid dirt build-up. Due to its shiny colors, it collects dirt quickly and becomes permanently cloudy if not routinely cleaned. Morganite should also be cleaned gently to avoid damaging the gem.

    Who should wear morganite stone? ›

    Morganite is believed to bring healing, compassion and promise to those who wear it. Morganite opens wearers to unconditional love while dissolving ego. Though not an actual birthstone, morganite is said to be an excellent stone for the zodiac signs of Pisces, Taurus and Cancer.

    What rock is like diamond but cheaper? ›

    Moissanites or white sapphires are most comparable to a diamond. While there are visible differences, these gems will look the closest to a diamond while offering a more affordable price. These stones are also high on the Mohs scale of relative hardness, making them suitable for everyday wear.

    What stone is more valuable than a diamond? ›

    Painite. The most valuable gem that is not a diamond is one that many have never heard of. Painite is an interesting brick-coloured gemstone. It is the most valuable non-diamond gem priced at £41,000-£49,000 ($50,000-$60,000 US) per carat.

    Is sapphire better than morganite? ›

    The morganite is a pleasing gem, perfect for all occasions. However, if you're looking for better durability, then the pink sapphire is your pick. There is a fair amount of difference in the price tag of the two gemstones. The pink sapphire is one of the 'big three gemstones' which makes it more valuable and expensive.

    What Stone is Jennifer Lopez new engagement ring? ›

    Sourced by Ilan Portugali and designed by Tamara Rahaminov and Nicol Goldfiner, of Rahaminov Diamonds, Lopez's new engagement ring from Affleck features an 8.5ct. natural green diamond center stone, and is flanked by a pair of trapezoid-shaped white diamonds.

    What celebrity has a morganite engagement ring? ›

    Lily Collins debuted her engagement ring to the world in September 2020. She opted for a novel take on the traditional diamond with a morganite center stone to Director Charlie MacDowell.

    What Stone is Jennifer Lopez Green engagement ring? ›

    J. Lo's second engagement ring from Affleck is even rarer—with the central green diamond sourced by Ilan Portugali of Beverly Hills Diamonds.

    How much was Jennifer Lopez ring? ›

    Love don't cost a thing, but diamonds definitely do.

    Who is the most expensive ring? ›

    The Wittelsbach-Graff Diamond ring is the most expensive ring in the world, priced at a mind-blowing $80 million. It is a stunning deep-blue 31-carat oval cut diamond ring.

    How many carats is Kate's ring? ›

    The ring—a 12-carat blue sapphire engagement ring surrounded by 14 solitaire diamonds—is a piece that Kate reportedly adores and has since the moment Prince William proposed to her in Kenya in 2010.

    How many carats is a $10000 engagement ring? ›

    Typically, a $10,000 budget can allow you to buy a diamond between 0.75 carats and 2 carats. If you opt for a 0.75-carat stone, it measures about 5.7 mm. Meanwhile, the 2-carat diamond measures about 8.1 mm.

    How many carats is a $5000 ring? ›

    With a budget of $5,000, you'll have no problems buying a beautiful diamond engagement ring that's close to the average engagement ring size of 1 carat.

    How many carats is normal for engagement? ›

    According to a study done by The Knot in 2021, the average engagement ring diamond was 1.5 carats. 50% of those who participated in the study purchased rings between 1 and 2 carats. Only 25% of rings were over 2 carats. In this study, they found that diamond size was not as important as the cut and shape of the stone.

    How many carat is Meghan Markle engagement ring? ›

    The cushion-cut center diamond of Meghan's engagement ring is estimated to be roughly three carats and was sourced from Botswana — a country that is very important to Prince Harry and where the couple took their first vacation together.

    How many carats is the ring Ben Affleck gave Jennifer Lopez? ›

    Ben Affleck

    When J. Lo received a 6.10 carat radiant-cut pink Harry Winston diamond when she became engaged to Affleck in 2002, it set off a trend toward colored diamonds, and dramatically increased the value of pink diamonds.

    How many carats was Jennifer Aniston engagement ring? ›

    Jennifer Anniston

    Jennifer Aniston's 10-carat engagement ring from Justin Theroux cost $1 million.

    How much is a 12.74 carat morganite ring? ›

    On the latest episode of the hit reality show, the 30-year-old Australian former rugby player was shown reportedly using three separate credit cards to purchase the $25,000, 12.74-carat pink morganite ring from celeb-loved jeweler Kyle Chan.

    What does morganite symbolize? ›

    Morganite is a variety of Beryl.

    It often comes in shades of pale pink, purple, and orange. The meaning of Morganite is heart healing and manifestation.

    Is morganite a good investment? ›

    Whether it is a good investment partly depends on what it means to you. If you are looking for a stone to financially invest in, we would still recommend diamonds over morganite. However, this dreamy and mesmerising stone can still be a fantastic investment for those who love gemstones and gemstone jewellery.

    How much is 1ct of morganite worth? ›

    The “Gemguide” gives a wholesale value to Morganite in fine quality from $85 to $450 per carat. Most of what we have sold is from $100 to $225 per carat with excellent quality.

    What is the price per carat for morganite? ›

    The price of morganite may vary, but in general, morganite costs around $100 to $300 per carat. Morganite stones that are medium light to medium pink in color, with custom cuts, are the most valuable of all.

    How much is a 12 carat pink diamond? ›

    Opinions expressed by Forbes Contributors are their own. The largest round fancy intense pink diamond to ever appear at auction sold for $17.4 million at Christie's Hong Kong Magnificent Jewels sale Tuesday.

    References

    Top Articles
    Latest Posts
    Article information

    Author: Amb. Frankie Simonis

    Last Updated: 28/12/2023

    Views: 6428

    Rating: 4.6 / 5 (56 voted)

    Reviews: 95% of readers found this page helpful

    Author information

    Name: Amb. Frankie Simonis

    Birthday: 1998-02-19

    Address: 64841 Delmar Isle, North Wiley, OR 74073

    Phone: +17844167847676

    Job: Forward IT Agent

    Hobby: LARPing, Kitesurfing, Sewing, Digital arts, Sand art, Gardening, Dance

    Introduction: My name is Amb. Frankie Simonis, I am a hilarious, enchanting, energetic, cooperative, innocent, cute, joyous person who loves writing and wants to share my knowledge and understanding with you.