@saasquatch/mint-components 1.7.4-1 → 1.7.4-2

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 (23) hide show
  1. package/dist/cjs/{sqm-logout-current-user-view-717f01c0.js → sqm-logout-current-user-view-c9f18d96.js} +1 -0
  2. package/dist/cjs/sqm-logout-current-user.cjs.entry.js +1 -1
  3. package/dist/cjs/sqm-stencilbook.cjs.entry.js +1 -1
  4. package/dist/collection/components/sqm-logout-current-user/sqm-logout-current-user-view.js +1 -0
  5. package/dist/esm/{sqm-logout-current-user-view-04ba85ed.js → sqm-logout-current-user-view-2c6122cd.js} +1 -0
  6. package/dist/esm/sqm-logout-current-user.entry.js +1 -1
  7. package/dist/esm/sqm-stencilbook.entry.js +1 -1
  8. package/dist/esm-es5/sqm-logout-current-user-view-2c6122cd.js +1 -0
  9. package/dist/esm-es5/sqm-logout-current-user.entry.js +1 -1
  10. package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
  11. package/dist/mint-components/mint-components.esm.js +1 -1
  12. package/dist/mint-components/p-0943b547.system.js +1 -1
  13. package/dist/mint-components/{p-f9972f6e.entry.js → p-10bf0b3a.entry.js} +1 -1
  14. package/dist/mint-components/{p-5e9919da.system.entry.js → p-20b4e20b.system.entry.js} +1 -1
  15. package/dist/mint-components/p-9dcfa187.system.js +1 -0
  16. package/dist/mint-components/{p-87b060a3.entry.js → p-d65de81a.entry.js} +2 -2
  17. package/dist/mint-components/{p-f7fa2581.system.entry.js → p-dd0b4da7.system.entry.js} +1 -1
  18. package/dist/mint-components/p-e3e16c36.js +1 -0
  19. package/docs/docs.docx +0 -0
  20. package/package.json +1 -1
  21. package/dist/esm-es5/sqm-logout-current-user-view-04ba85ed.js +0 -1
  22. package/dist/mint-components/p-7377f6db.js +0 -1
  23. package/dist/mint-components/p-8f20f113.system.js +0 -1
@@ -1 +1 @@
1
- var __makeTemplateObject=this&&this.__makeTemplateObject||function(e,t){if(Object.defineProperty){Object.defineProperty(e,"raw",{value:t})}else{e.raw=t}return e};var __extends=this&&this.__extends||function(){var e=function(t,n){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n))e[n]=t[n]};return e(t,n)};return function(t,n){e(t,n);function a(){this.constructor=t}t.prototype=n===null?Object.create(n):(a.prototype=n.prototype,new a)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++){t=arguments[n];for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]}return e};return __assign.apply(this,arguments)};var __awaiter=this&&this.__awaiter||function(e,t,n,a){function r(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,s){function i(e){try{l(a.next(e))}catch(e){s(e)}}function o(e){try{l(a["throw"](e))}catch(e){s(e)}}function l(e){e.done?n(e.value):r(e.value).then(i,o)}l((a=a.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},a,r,s,i;return i={next:o(0),throw:o(1),return:o(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function o(e){return function(t){return l([e,t])}}function l(i){if(a)throw new TypeError("Generator is already executing.");while(n)try{if(a=1,r&&(s=i[0]&2?r["return"]:i[0]?r["throw"]||((s=r["return"])&&s.call(r),0):r.next)&&!(s=s.call(r,i[1])).done)return s;if(r=0,s)i=[i[0]&2,s.value];switch(i[0]){case 0:case 1:s=i;break;case 4:n.label++;return{value:i[1],done:false};case 5:n.label++;r=i[1];i=[0];continue;case 7:i=n.ops.pop();n.trys.pop();continue;default:if(!(s=n.trys,s=s.length>0&&s[s.length-1])&&(i[0]===6||i[0]===2)){n=0;continue}if(i[0]===3&&(!s||i[1]>s[0]&&i[1]<s[3])){n.label=i[1];break}if(i[0]===6&&n.label<s[1]){n.label=s[1];s=i;break}if(s&&n.label<s[2]){n.label=s[2];n.ops.push(i);break}if(s[2])n.ops.pop();n.trys.pop();continue}i=t.call(e,n)}catch(e){i=[6,e];r=0}finally{a=s=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}};var __spreadArrays=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var a=Array(e),r=0,t=0;t<n;t++)for(var s=arguments[t],i=0,o=s.length;i<o;i++,r++)a[r]=s[i];return a};import{h,r as registerInstance,c as Host}from"./index-17b4da69.js";import{a as commonjsGlobal,u as useMemo,j as useState,f as useEffect,c as createCommonjsModule,m as h$1}from"./stencil-hooks.module-14b87f98.js";import"./global-91edfca0.js";import{h as hn,v as vn,e as setUserIdentity,d as dist,z as ze,k as setProgramId}from"./index.module-99d8522e.js";import"./cjs-bdfb4486.js";import"./mixins-f60a614c.js";import{c as createStyleSheet}from"./JSS-67b5cff8.js";import{G as GenericTableView}from"./GenericTableView-266126f9.js";import"./useChildElements-b945a965.js";import{l as luxon}from"./luxon-f01e85fe.js";import"./utils-334c1e34.js";import"./sqm-text-span-view-8d140661.js";import{A as AssetCardView}from"./sqm-asset-card-view-9d93fbdd.js";import{C as CloseButtonView}from"./sqm-close-button-view-dc65b4e3.js";import{E as EmailRegistrationView}from"./email-registration-view-4a4202e7.js";import{L as LeaderboardRankView}from"./sqm-leaderboard-rank-view-10657658.js";import{L as LogoutCurrentUserView}from"./sqm-logout-current-user-view-04ba85ed.js";import{N as NavigationSidebarView}from"./sqm-navigation-sidebar-view-414bcb19.js";import{N as NavigationSidebarItemView}from"./sqm-navigation-sidebar-item-view-eb765b9c.js";import{P as PortalEmailVerificationView}from"./sqm-portal-email-verification-view-408af676.js";import{P as PortalForgotPasswordView}from"./sqm-portal-forgot-password-view-41afcace.js";import{P as PortalProfileView}from"./sqm-portal-profile-view-efa44888.js";import{P as PortalResetPasswordView}from"./sqm-portal-reset-password-view-0df781f6.js";import{P as PortalVerifyEmailView}from"./sqm-portal-verify-email-view-1db4fae6.js";import{S as ShareButtonView,L as LeaderboardView,C as CopyTextView,B as BigStatView,P as PortalFrameView,E as EditProfileView,u as useShareLink,a as useShareButton,b as useDemoBigStat,c as StatContainerView,d as PortalChangePasswordView,e as PortalLoginView,f as PortalRegisterView,T as TaskCardView,g as ProgressBarView,h as PoweredByImg$1,i as PortalFooterView,H as HeroView,R as ReferralIframeView,N as NameFieldsView,j as CheckboxFieldView,D as DropdownFieldView,I as InputFieldView,k as RewardExchangeView,r as rewardExchangeCustomErrorMsg,l as rewardExchangeLongText,m as rewardExchangeSelected,n as chooseAmountFixed,o as chooseAmountFixedNoDescription,p as chooseAmountVariable,q as chooseAmountVariableNoDescription,s as chooseAmountVariableDisabled,t as chooseAmountVariableUnavailable,v as confirmFixed,w as confirmVariable,x as redemptionError,y as queryError,z as success,A as successVariable,F as loading,G as empty$1,J as rewardExchange,K as CardFeedView,M as CouponCodeView,O as autoColorScaleCss,Q as ShadowViewAddon}from"./ShadowViewAddon-a5b397ce.js";import{P as PortalContainerView,a as PortalSectionView}from"./sqm-portal-container-view-ab89c6cc.js";var INFINITY=1/0;var symbolTag="[object Symbol]";var reAsciiWord=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var reLatin=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;var rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f\\ufe20-\\ufe23",rsComboSymbolsRange="\\u20d0-\\u20f0",rsDingbatRange="\\u2700-\\u27bf",rsLowerRange="a-z\\xdf-\\xf6\\xf8-\\xff",rsMathOpRange="\\xac\\xb1\\xd7\\xf7",rsNonCharRange="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",rsPunctuationRange="\\u2000-\\u206f",rsSpaceRange=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rsUpperRange="A-Z\\xc0-\\xd6\\xd8-\\xde",rsVarRange="\\ufe0e\\ufe0f",rsBreakRange=rsMathOpRange+rsNonCharRange+rsPunctuationRange+rsSpaceRange;var rsApos="['’]",rsAstral="["+rsAstralRange+"]",rsBreak="["+rsBreakRange+"]",rsCombo="["+rsComboMarksRange+rsComboSymbolsRange+"]",rsDigits="\\d+",rsDingbat="["+rsDingbatRange+"]",rsLower="["+rsLowerRange+"]",rsMisc="[^"+rsAstralRange+rsBreakRange+rsDigits+rsDingbatRange+rsLowerRange+rsUpperRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsUpper="["+rsUpperRange+"]",rsZWJ="\\u200d";var rsLowerMisc="(?:"+rsLower+"|"+rsMisc+")",rsUpperMisc="(?:"+rsUpper+"|"+rsMisc+")",rsOptLowerContr="(?:"+rsApos+"(?:d|ll|m|re|s|t|ve))?",rsOptUpperContr="(?:"+rsApos+"(?:D|LL|M|RE|S|T|VE))?",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsEmoji="(?:"+[rsDingbat,rsRegional,rsSurrPair].join("|")+")"+rsSeq,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")";var reApos=RegExp(rsApos,"g");var reComboMark=RegExp(rsCombo,"g");var reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");var reUnicodeWord=RegExp([rsUpper+"?"+rsLower+"+"+rsOptLowerContr+"(?="+[rsBreak,rsUpper,"$"].join("|")+")",rsUpperMisc+"+"+rsOptUpperContr+"(?="+[rsBreak,rsUpper+rsLowerMisc,"$"].join("|")+")",rsUpper+"?"+rsLowerMisc+"+"+rsOptLowerContr,rsUpper+"+"+rsOptUpperContr,rsDigits,rsEmoji].join("|"),"g");var reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboMarksRange+rsComboSymbolsRange+rsVarRange+"]");var reHasUnicodeWord=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var deburredLetters={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"ss"};var freeGlobal=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal;var freeSelf=typeof self=="object"&&self&&self.Object===Object&&self;var root=freeGlobal||freeSelf||Function("return this")();function arrayReduce(e,t,n,a){var r=-1,s=e?e.length:0;if(a&&s){n=e[++r]}while(++r<s){n=t(n,e[r],r,e)}return n}function asciiToArray(e){return e.split("")}function asciiWords(e){return e.match(reAsciiWord)||[]}function basePropertyOf(e){return function(t){return e==null?undefined:e[t]}}var deburrLetter=basePropertyOf(deburredLetters);function hasUnicode(e){return reHasUnicode.test(e)}function hasUnicodeWord(e){return reHasUnicodeWord.test(e)}function stringToArray(e){return hasUnicode(e)?unicodeToArray(e):asciiToArray(e)}function unicodeToArray(e){return e.match(reUnicode)||[]}function unicodeWords(e){return e.match(reUnicodeWord)||[]}var objectProto=Object.prototype;var objectToString=objectProto.toString;var Symbol$1=root.Symbol;var symbolProto=Symbol$1?Symbol$1.prototype:undefined,symbolToString=symbolProto?symbolProto.toString:undefined;function baseSlice(e,t,n){var a=-1,r=e.length;if(t<0){t=-t>r?0:r+t}n=n>r?r:n;if(n<0){n+=r}r=t>n?0:n-t>>>0;t>>>=0;var s=Array(r);while(++a<r){s[a]=e[a+t]}return s}function baseToString(e){if(typeof e=="string"){return e}if(isSymbol(e)){return symbolToString?symbolToString.call(e):""}var t=e+"";return t=="0"&&1/e==-INFINITY?"-0":t}function castSlice(e,t,n){var a=e.length;n=n===undefined?a:n;return!t&&n>=a?e:baseSlice(e,t,n)}function createCaseFirst(e){return function(t){t=toString(t);var n=hasUnicode(t)?stringToArray(t):undefined;var a=n?n[0]:t.charAt(0);var r=n?castSlice(n,1).join(""):t.slice(1);return a[e]()+r}}function createCompounder(e){return function(t){return arrayReduce(words(deburr(t).replace(reApos,"")),e,"")}}function isObjectLike(e){return!!e&&typeof e=="object"}function isSymbol(e){return typeof e=="symbol"||isObjectLike(e)&&objectToString.call(e)==symbolTag}function toString(e){return e==null?"":baseToString(e)}function deburr(e){e=toString(e);return e&&e.replace(reLatin,deburrLetter).replace(reComboMark,"")}var startCase=createCompounder((function(e,t,n){return e+(n?" ":"")+upperFirst(t)}));var upperFirst=createCaseFirst("toUpperCase");function words(e,t,n){e=toString(e);t=n?undefined:t;if(t===undefined){return hasUnicodeWord(e)?unicodeWords(e):asciiWords(e)}return e.match(t)||[]}var lodash_startcase=startCase;function sheetForTag(e){if(e.sheet){return e.sheet}for(var t=0;t<document.styleSheets.length;t++){if(document.styleSheets[t].ownerNode===e){return document.styleSheets[t]}}}function createStyleElement(e){var t=document.createElement("style");t.setAttribute("data-emotion",e.key);if(e.nonce!==undefined){t.setAttribute("nonce",e.nonce)}t.appendChild(document.createTextNode(""));t.setAttribute("data-s","");return t}var StyleSheet=function(){function e(e){var t=this;this._insertTag=function(e){var n;if(t.tags.length===0){n=t.prepend?t.container.firstChild:t.before}else{n=t.tags[t.tags.length-1].nextSibling}t.container.insertBefore(e,n);t.tags.push(e)};this.isSpeedy=e.speedy===undefined?"production"==="production":e.speedy;this.tags=[];this.ctr=0;this.nonce=e.nonce;this.key=e.key;this.container=e.container;this.prepend=e.prepend;this.before=null}var t=e.prototype;t.hydrate=function e(t){t.forEach(this._insertTag)};t.insert=function e(t){if(this.ctr%(this.isSpeedy?65e3:1)===0){this._insertTag(createStyleElement(this))}var n=this.tags[this.tags.length-1];if(this.isSpeedy){var a=sheetForTag(n);try{a.insertRule(t,a.cssRules.length)}catch(e){}}else{n.appendChild(document.createTextNode(t))}this.ctr++};t.flush=function e(){this.tags.forEach((function(e){return e.parentNode.removeChild(e)}));this.tags=[];this.ctr=0};return e}();var e="-ms-";var r="-moz-";var a="-webkit-";var c="comm";var n="rule";var t="decl";var i="@import";var p="@keyframes";var k=Math.abs;var d=String.fromCharCode;function m(e,t){return(((t<<2^z(e,0))<<2^z(e,1))<<2^z(e,2))<<2^z(e,3)}function g(e){return e.trim()}function x(e,t){return(e=t.exec(e))?e[0]:e}function y(e,t,n){return e.replace(t,n)}function j(e,t){return e.indexOf(t)}function z(e,t){return e.charCodeAt(t)|0}function C(e,t,n){return e.slice(t,n)}function A(e){return e.length}function M(e){return e.length}function O(e,t){return t.push(e),e}function S(e,t){return e.map(t).join("")}var q=1;var B=1;var D=0;var E=0;var F=0;var G="";function H(e,t,n,a,r,s,i){return{value:e,root:t,parent:n,type:a,props:r,children:s,line:q,column:B,length:i,return:""}}function I(e,t,n){return H(e,t.root,t.parent,n,t.props,t.children,0)}function J(){return F}function K(){F=E>0?z(G,--E):0;if(B--,F===10)B=1,q--;return F}function L(){F=E<D?z(G,E++):0;if(B++,F===10)B=1,q++;return F}function N(){return z(G,E)}function P(){return E}function Q(e,t){return C(G,e,t)}function R(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function T(e){return q=B=1,D=A(G=e),E=0,[]}function U(e){return G="",e}function V(e){return g(Q(E-1,_(e===91?e+2:e===40?e+1:e)))}function X(e){while(F=N())if(F<33)L();else break;return R(e)>2||R(F)>3?"":" "}function Z(e,t){while(--t&&L())if(F<48||F>102||F>57&&F<65||F>70&&F<97)break;return Q(e,P()+(t<6&&N()==32&&L()==32))}function _(e){while(L())switch(F){case e:return E;case 34:case 39:return _(e===34||e===39?e:F);case 40:if(e===41)_(e);break;case 92:L();break}return E}function ee(e,t){while(L())if(e+F===47+10)break;else if(e+F===42+42&&N()===47)break;return"/*"+Q(t,E-1)+"*"+d(e===47?e:L())}function re(e){while(!R(N()))L();return Q(e,E)}function ae(e){return U(ce("",null,null,null,[""],e=T(e),0,[0],e))}function ce(e,t,n,a,r,s,i,o,l){var u=0;var c=0;var m=i;var h=0;var p=0;var g=0;var f=1;var b=1;var w=1;var v=0;var x="";var C=r;var E=s;var k=a;var T=x;while(b)switch(g=v,v=L()){case 34:case 39:case 91:case 40:T+=V(v);break;case 9:case 10:case 13:case 32:T+=X(g);break;case 92:T+=Z(P()-1,7);continue;case 47:switch(N()){case 42:case 47:O(te(ee(L(),P()),t,n),l);break;default:T+="/"}break;case 123*f:o[u++]=A(T)*w;case 125*f:case 59:case 0:switch(v){case 0:case 125:b=0;case 59+c:if(p>0&&A(T)-m)O(p>32?se(T+";",a,n,m-1):se(y(T," ","")+";",a,n,m-2),l);break;case 59:T+=";";default:O(k=ne(T,t,n,u,c,r,o,x,C=[],E=[],m),s);if(v===123)if(c===0)ce(T,t,k,k,C,s,m,o,E);else switch(h){case 100:case 109:case 115:ce(e,k,k,a&&O(ne(e,k,k,0,0,r,o,x,r,C=[],m),E),r,E,m,o,a?C:E);break;default:ce(T,k,k,k,[""],E,m,o,E)}}u=c=p=0,f=w=1,x=T="",m=i;break;case 58:m=1+A(T),p=g;default:if(f<1)if(v==123)--f;else if(v==125&&f++==0&&K()==125)continue;switch(T+=d(v),v*f){case 38:w=c>0?1:(T+="\f",-1);break;case 44:o[u++]=(A(T)-1)*w,w=1;break;case 64:if(N()===45)T+=V(L());h=N(),c=A(x=T+=re(P())),v++;break;case 45:if(g===45&&A(T)==2)f=0}}return s}function ne(e,t,a,r,s,i,o,l,d,u,c){var m=s-1;var h=s===0?i:[""];var p=M(h);for(var f=0,b=0,w=0;f<r;++f)for(var v=0,x=C(e,m+1,m=k(b=o[f])),E=e;v<p;++v)if(E=g(b>0?h[v]+" "+x:y(x,/&\f/g,h[v])))d[w++]=E;return H(e,t,a,s===0?n:l,d,u,c)}function te(e,t,n){return H(e,t,n,c,d(J()),C(e,2,-2),0)}function se(e,n,a,r){return H(e,n,a,t,C(e,0,r),C(e,r+1,-1),r)}function ue(t,n){switch(m(t,n)){case 5103:return a+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return a+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return a+t+r+t+e+t+t;case 6828:case 4268:return a+t+e+t+t;case 6165:return a+t+e+"flex-"+t+t;case 5187:return a+t+y(t,/(\w+).+(:[^]+)/,a+"box-$1$2"+e+"flex-$1$2")+t;case 5443:return a+t+e+"flex-item-"+y(t,/flex-|-self/,"")+t;case 4675:return a+t+e+"flex-line-pack"+y(t,/align-content|flex-|-self/,"")+t;case 5548:return a+t+e+y(t,"shrink","negative")+t;case 5292:return a+t+e+y(t,"basis","preferred-size")+t;case 6060:return a+"box-"+y(t,"-grow","")+a+t+e+y(t,"grow","positive")+t;case 4554:return a+y(t,/([^-])(transform)/g,"$1"+a+"$2")+t;case 6187:return y(y(y(t,/(zoom-|grab)/,a+"$1"),/(image-set)/,a+"$1"),t,"")+t;case 5495:case 3959:return y(t,/(image-set\([^]*)/,a+"$1"+"$`$1");case 4968:return y(y(t,/(.+:)(flex-)?(.*)/,a+"box-pack:$3"+e+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+a+t+t;case 4095:case 3583:case 4068:case 2532:return y(t,/(.+)-inline(.+)/,a+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(A(t)-1-n>6)switch(z(t,n+1)){case 109:if(z(t,n+4)!==45)break;case 102:return y(t,/(.+:)(.+)-([^]+)/,"$1"+a+"$2-$3"+"$1"+r+(z(t,n+3)==108?"$3":"$2-$3"))+t;case 115:return~j(t,"stretch")?ue(y(t,"stretch","fill-available"),n)+t:t}break;case 4949:if(z(t,n+1)!==115)break;case 6444:switch(z(t,A(t)-3-(~j(t,"!important")&&10))){case 107:return y(t,":",":"+a)+t;case 101:return y(t,/(.+:)([^;!]+)(;|!.+)?/,"$1"+a+(z(t,14)===45?"inline-":"")+"box$3"+"$1"+a+"$2$3"+"$1"+e+"$2box$3")+t}break;case 5936:switch(z(t,n+11)){case 114:return a+t+e+y(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return a+t+e+y(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return a+t+e+y(t,/[svh]\w+-[tblr]{2}/,"lr")+t}return a+t+e+t+t}return t}function ie(e,t){var n="";var a=M(e);for(var r=0;r<a;r++)n+=t(e[r],r,e,t)||"";return n}function fe(e,a,r,s){switch(e.type){case i:case t:return e.return=e.return||e.value;case c:return"";case n:e.value=e.props.join(",")}return A(r=ie(e.children,s))?e.return=e.value+"{"+r+"}":""}function oe(e){var t=M(e);return function(n,a,r,s){var i="";for(var o=0;o<t;o++)i+=e[o](n,a,r,s)||"";return i}}function le(e){return function(t){if(!t.root)if(t=t.return)e(t)}}function ve(s,i,o,l){if(!s.return)switch(s.type){case t:s.return=ue(s.value,s.length);break;case p:return ie([I(y(s.value,"@","@"+a),s,"")],l);case n:if(s.length)return S(s.props,(function(t){switch(x(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return ie([I(y(t,/:(read-\w+)/,":"+r+"$1"),s,"")],l);case"::placeholder":return ie([I(y(t,/:(plac\w+)/,":"+a+"input-$1"),s,""),I(y(t,/:(plac\w+)/,":"+r+"$1"),s,""),I(y(t,/:(plac\w+)/,e+"input-$1"),s,"")],l)}return""}))}}function memoize(e){var t=Object.create(null);return function(n){if(t[n]===undefined)t[n]=e(n);return t[n]}}var toRules=function e(t,n){var a=-1;var r=44;do{switch(R(r)){case 0:if(r===38&&N()===12){n[a]=1}t[a]+=re(E-1);break;case 2:t[a]+=V(r);break;case 4:if(r===44){t[++a]=N()===58?"&\f":"";n[a]=t[a].length;break}default:t[a]+=d(r)}}while(r=L());return t};var getRules=function e(t,n){return U(toRules(T(t),n))};var fixedElements=new WeakMap;var compat=function e(t){if(t.type!=="rule"||!t.parent||!t.length){return}var n=t.value,a=t.parent;var r=t.column===a.column&&t.line===a.line;while(a.type!=="rule"){a=a.parent;if(!a)return}if(t.props.length===1&&n.charCodeAt(0)!==58&&!fixedElements.get(a)){return}if(r){return}fixedElements.set(t,true);var s=[];var i=getRules(n,s);var o=a.props;for(var l=0,d=0;l<i.length;l++){for(var u=0;u<o.length;u++,d++){t.props[d]=s[l]?i[l].replace(/&\f/g,o[u]):o[u]+" "+i[l]}}};var removeLabel=function e(t){if(t.type==="decl"){var n=t.value;if(n.charCodeAt(0)===108&&n.charCodeAt(2)===98){t["return"]="";t.value=""}}};var defaultStylisPlugins=[ve];var createCache=function e(t){var n=t.key;if(n==="css"){var a=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(a,(function(e){var t=e.getAttribute("data-emotion");if(t.indexOf(" ")===-1){return}document.head.appendChild(e);e.setAttribute("data-s","")}))}var r=t.stylisPlugins||defaultStylisPlugins;var s={};var i;var o=[];{i=t.container||document.head;Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),(function(e){var t=e.getAttribute("data-emotion").split(" ");for(var n=1;n<t.length;n++){s[t[n]]=true}o.push(e)}))}var l;var d=[compat,removeLabel];{var u;var c=[fe,le((function(e){u.insert(e)}))];var m=oe(d.concat(r,c));var h=function e(t){return ie(ae(t),m)};l=function e(t,n,a,r){u=a;h(t?t+"{"+n.styles+"}":n.styles);if(r){p.inserted[n.name]=true}}}var p={key:n,sheet:new StyleSheet({key:n,container:i,nonce:t.nonce,speedy:t.speedy,prepend:t.prepend}),nonce:t.nonce,inserted:s,registered:{},insert:l};p.sheet.hydrate(o);return p};function murmur2(e){var t=0;var n,a=0,r=e.length;for(;r>=4;++a,r-=4){n=e.charCodeAt(a)&255|(e.charCodeAt(++a)&255)<<8|(e.charCodeAt(++a)&255)<<16|(e.charCodeAt(++a)&255)<<24;n=(n&65535)*1540483477+((n>>>16)*59797<<16);n^=n>>>24;t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16)}switch(r){case 3:t^=(e.charCodeAt(a+2)&255)<<16;case 2:t^=(e.charCodeAt(a+1)&255)<<8;case 1:t^=e.charCodeAt(a)&255;t=(t&65535)*1540483477+((t>>>16)*59797<<16)}t^=t>>>13;t=(t&65535)*1540483477+((t>>>16)*59797<<16);return((t^t>>>15)>>>0).toString(36)}var unitlessKeys={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var hyphenateRegex=/[A-Z]|^ms/g;var animationRegex=/_EMO_([^_]+?)_([^]*?)_EMO_/g;var isCustomProperty=function e(t){return t.charCodeAt(1)===45};var isProcessableValue=function e(t){return t!=null&&typeof t!=="boolean"};var processStyleName=memoize((function(e){return isCustomProperty(e)?e:e.replace(hyphenateRegex,"-$&").toLowerCase()}));var processStyleValue=function e(t,n){switch(t){case"animation":case"animationName":{if(typeof n==="string"){return n.replace(animationRegex,(function(e,t,n){cursor={name:t,styles:n,next:cursor};return t}))}}}if(unitlessKeys[t]!==1&&!isCustomProperty(t)&&typeof n==="number"&&n!==0){return n+"px"}return n};function handleInterpolation(e,t,n){if(n==null){return""}if(n.__emotion_styles!==undefined){return n}switch(typeof n){case"boolean":{return""}case"object":{if(n.anim===1){cursor={name:n.name,styles:n.styles,next:cursor};return n.name}if(n.styles!==undefined){var a=n.next;if(a!==undefined){while(a!==undefined){cursor={name:a.name,styles:a.styles,next:cursor};a=a.next}}var r=n.styles+";";return r}return createStringFromObject(e,t,n)}case"function":{if(e!==undefined){var s=cursor;var i=n(e);cursor=s;return handleInterpolation(e,t,i)}break}}if(t==null){return n}var o=t[n];return o!==undefined?o:n}function createStringFromObject(e,t,n){var a="";if(Array.isArray(n)){for(var r=0;r<n.length;r++){a+=handleInterpolation(e,t,n[r])+";"}}else{for(var s in n){var i=n[s];if(typeof i!=="object"){if(t!=null&&t[i]!==undefined){a+=s+"{"+t[i]+"}"}else if(isProcessableValue(i)){a+=processStyleName(s)+":"+processStyleValue(s,i)+";"}}else{if(s==="NO_COMPONENT_SELECTOR"&&"production"!=="production"){throw new Error("Component selectors can only be used in conjunction with @emotion/babel-plugin.")}if(Array.isArray(i)&&typeof i[0]==="string"&&(t==null||t[i[0]]===undefined)){for(var o=0;o<i.length;o++){if(isProcessableValue(i[o])){a+=processStyleName(s)+":"+processStyleValue(s,i[o])+";"}}}else{var l=handleInterpolation(e,t,i);switch(s){case"animation":case"animationName":{a+=processStyleName(s)+":"+l+";";break}default:{a+=s+"{"+l+"}"}}}}}}return a}var labelPattern=/label:\s*([^\s;\n{]+)\s*(;|$)/g;var cursor;var serializeStyles=function e(t,n,a){if(t.length===1&&typeof t[0]==="object"&&t[0]!==null&&t[0].styles!==undefined){return t[0]}var r=true;var s="";cursor=undefined;var i=t[0];if(i==null||i.raw===undefined){r=false;s+=handleInterpolation(a,n,i)}else{s+=i[0]}for(var o=1;o<t.length;o++){s+=handleInterpolation(a,n,t[o]);if(r){s+=i[o]}}labelPattern.lastIndex=0;var l="";var d;while((d=labelPattern.exec(s))!==null){l+="-"+d[1]}var u=murmur2(s)+l;return{name:u,styles:s,next:cursor}};var isBrowser="object"!=="undefined";function getRegisteredStyles(e,t,n){var a="";n.split(" ").forEach((function(n){if(e[n]!==undefined){t.push(e[n]+";")}else{a+=n+" "}}));return a}var insertStyles=function e(t,n,a){var r=t.key+"-"+n.name;if((a===false||isBrowser===false)&&t.registered[r]===undefined){t.registered[r]=n.styles}if(t.inserted[n.name]===undefined){var s=n;do{var i=t.insert(n===s?"."+r:"",s,t.sheet,true);s=s.next}while(s!==undefined)}};function insertWithoutScoping(e,t){if(e.inserted[t.name]===undefined){return e.insert("",t,e.sheet,true)}}function merge(e,t,n){var a=[];var r=getRegisteredStyles(e,a,n);if(a.length<2){return n}return r+t(a)}var createEmotion=function e(t){var n=createCache(t);n.sheet.speedy=function(e){this.isSpeedy=e};n.compat=true;var a=function e(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++){a[r]=arguments[r]}var s=serializeStyles(a,n.registered,undefined);insertStyles(n,s,false);return n.key+"-"+s.name};var r=function e(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++){a[r]=arguments[r]}var s=serializeStyles(a,n.registered);var i="animation-"+s.name;insertWithoutScoping(n,{name:s.name,styles:"@keyframes "+i+"{"+s.styles+"}"});return i};var s=function e(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++){a[r]=arguments[r]}var s=serializeStyles(a,n.registered);insertWithoutScoping(n,s)};var i=function e(){for(var t=arguments.length,r=new Array(t),s=0;s<t;s++){r[s]=arguments[s]}return merge(n.registered,a,classnames(r))};return{css:a,cx:i,injectGlobal:s,keyframes:r,hydrate:function e(t){t.forEach((function(e){n.inserted[e]=true}))},flush:function e(){n.registered={};n.inserted={};n.sheet.flush()},sheet:n.sheet,cache:n,getRegisteredStyles:getRegisteredStyles.bind(null,n.registered),merge:merge.bind(null,n.registered,a)}};var classnames=function e(t){var n="";for(var a=0;a<t.length;a++){var r=t[a];if(r==null)continue;var s=void 0;switch(typeof r){case"boolean":break;case"object":{if(Array.isArray(r)){s=e(r)}else{s="";for(var i in r){if(r[i]&&i){s&&(s+=" ");s+=i}}}break}default:{s=r}}if(s){n&&(n+=" ");n+=s}}return n};var _createEmotion=createEmotion({key:"css"}),css=_createEmotion.css;function i$1(){return(i$1=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}function a$1(e,t){return t||(t=e.slice(0)),e.raw=t,e}var l,s,u,c$1=css(l||(l=a$1(['\n width: 100vw;\n height: 100vh;\n\n .story-book-outer-div {\n .story-div {\n font-family: "Arial", sans-serif;\n font-size: 12px;\n }\n padding-bottom: 500px;\n }\n\n .story-div {\n position: fixed;\n box-sizing: border-box;\n top: 0;\n width: 250px;\n height: 100vh;\n z-index: 999;\n overflow-y: scroll;\n background: white;\n margin-bottom: 32px;\n }\n\n .header {\n padding: 24px 0 16px 16px;\n margin-bottom: 24px;\n color: white;\n background: #333;\n cursor: pointer;\n\n h2 {\n letter-spacing: 3px;\n font-weight: 400;\n }\n }\n\n .parentStoryList {\n list-style: none;\n padding-left: 16px;\n\n summary {\n margin-bottom: 4px;\n }\n }\n .parentStory {\n cursor: pointer;\n }\n .parentStory.selected {\n font-weight: bold;\n }\n\n .subStory {\n font-size: 12px;\n cursor: pointer;\n line-height: 1.5em;\n margin-top: 4px;\n\n a {\n display: block;\n padding: 4px 4px 4px 16px;\n }\n }\n .subStory:hover {\n background-color: #eee;\n }\n .subStory.selected {\n background-color: lightgreen;\n }\n\n .component {\n padding: 24px 16px;\n }\n\n h4.group-header {\n margin: 8px 0;\n text-transform: uppercase;\n font-weight: 600;\n font-size: 14px;\n color: #575757;\n }\n\n .group-wrapper {\n margin-bottom: 24px;\n }\n\n .dynamic-display-wrapper {\n position: fixed;\n display: flex;\n flex-direction: column;\n bottom: 0;\n left: 100%;\n padding: 16px;\n z-index: 1000;\n background: white;\n transform: translateX(-100%);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n\n & > :not(:first-child) {\n margin-top: 12px;\n }\n\n p {\n font-size: 12px;\n margin: 0;\n padding: 0;\n }\n\n .button-wrapper {\n display: flex;\n\n & > :not(:first-child) {\n margin-left: 12px;\n }\n }\n\n & button {\n border: 1px solid #eaeaea;\n background: white;\n border-radius: 4px;\n color: #777;\n padding: 4px 12px;\n justify-content: center;\n align-items: center;\n text-align: center;\n\n &.active {\n background: #555;\n border-color: #555;\n color: white;\n }\n }\n }\n'])));function d$1(e,t){var n,a=t.story.title.split("/"),r=a[1]?a[0]:"_";return i$1({},e,((n={})[r]=[].concat(e[r]||[],[{story:i$1({},t.story,{title:a[1]||a[0]}),subs:t.subs}]).sort((function(e,t){return e.story.title.localeCompare(t.story.title)})),n))}function p$1(e){return{story:e.default,subs:function(e,t){if(null==e)return{};var n,a,r={},s=Object.keys(e);for(a=0;a<s.length;a++)t.indexOf(n=s[a])>=0||(r[n]=e[n]);return r}(e,["default"])}}function f(e,t){var n,a;if(e){var r=decodeURIComponent(e).split("-"),s=r[1],i=r[2],o=null==t||null==(n=t[r[0]])?void 0:n.find((function(e){return e.story.title===s})),l=null==o||null==(a=o.subs)?void 0:a[i],d={key:e,story:l,parent:null==o?void 0:o.story,label:null==l?void 0:l.name};return d.key&&d.story&&d.parent&&d.label?d:void 0}}function y$1(e,t){var n=t.h,a=void 0===n?h:n,r=t.title,i=void 0===r?"Stencilbook":r,o=t.homepage,l=void 0===o?a("h3",null,"Select a story!"):o,d=t.addons,c=void 0===d?[]:d,m=useMemo((function(){return e.map(p$1).reduce(d$1,{_:[]})}),e),p=decodeURIComponent(window.location.hash).replace("#",""),g=useState(f(p,m)),b=g[0],w=g[1],v=null==b?void 0:b.key,x=useState(!0),y=x[0],C=x[1],E=useState(!1),k=E[0],A=E[1],T=function(){return a("div",{class:"dynamic-display-wrapper"},a("button",{class:k?"active":"",onClick:function(){return A((function(e){return!e}))}},"Toggle Dark Background"),a("button",{class:y?"active":"",onClick:function(){return C((function(e){return!e}))}},"Toggle Sidebar"))},q=css(s||(s=a$1(["\n max-width: ",";\n margin-left: ",";\n "])),"1124px",y?"250px":"0px"),R=css(u||(u=a$1(["\n display: none;\n "])));document.body.style.backgroundColor=k?"#232323":"#fafafa";var D=function(e){var t=e.selected,n=c.reduce((function(e,n){return function(){return a(n,{story:i$1({},t)},a(e,null))}}),null==t?void 0:t.story);return a(n,null)},_=function(){return a("div",{class:"story-book-outer-div"},a("div",{class:"story-div "+(y?"":R)},a("div",{class:"header",onClick:function(){w(void 0)}},a("h2",null,i)),a("ul",{class:"parentStoryList"},Object.keys(m).sort().map((function(e){return a("div",{class:"group-wrapper"},"_"!==e&&a("h4",{class:"group-header"},e),m[e].map((function(t){return a("li",{class:"parentStory"},a("details",{style:{marginBottom:"10px"}},a("summary",{style:{outline:"none"}},t.story.title),t.subs&&Object.keys(t.subs).map((function(n){var r=e+"-"+t.story.title+"-"+n,s=t.subs[n].storyName||lodash_startcase(n);return a("div",{class:"subStory "+(v===r?"selected":"")},a("a",{onClick:function(){return function(e){window.location.hash=encodeURIComponent(e),w(f(e,m))}(r)}},s))}))))})))})))),a(T,null),a("div",{class:"component "+q},!v&&l,v&&a("div",null,a("h3",null,b.label),a(D,{selected:b}))))};return{class:c$1,children:a(_,null),View:_,selected:b}}var scenario='@author:noah\n@owner:noah\nFeature: Share Button\n\n The share button redirects users to a platform where they can share their referral link\n\n @motivating\n @ui\n Scenario Outline: Share button displays for various platforms\n Given the share button\'s medium prop is "<medium>"\n And the button\'s child is text saying "BUTTON_TEXT"\n When the share button is rendered\n Then the button has text "BUTTON_TEXT"\n And the button is <colour>\n And it displays an <icon> beside the text\n And clicking the button redirects to an appropriate link\n Examples:\n | medium | colour | icon |\n | facebook | #1877f2 | facebook logo |\n | twitter | #1da1f2 | twitter logo |\n | email | #666666 | envelope |\n | direct | brand colour | paper plane |\n | linkedin | #0077b5 | linkedIn logo |\n | sms | #34DA50 | chat bubble |\n | fbmessenger | #0084ff | messenger logo |\n | whatsapp | #25d366 | whatsapp logo |\n | linemessenger | #00B300 | linemessenger logo |\n | pinterest | #e60023 | pinterest logo |\n\n @minutia\n @ui\n Scenario Outline: Default icons can be overwritten\n Given a share button for any medium with <iconPropValue>\n When the share button is rendered\n Then it displays a <iconPropValue> instead of the share mediums default icon\n Examples:\n | iconPropValue |\n | basket |\n | bluetooth |\n | bandaid |\n\n @motivating\n @ui\n Scenario Outline: Default share medium colours can be overwritten\n Given a share button for any medium with <backgroundColourPropValue>\n When the share button is rendered\n Then the share button is <backgroundColourPropValue>\n Examples:\n | backgroundColourPropValue |\n | blue |\n | black |\n | green |\n\n @minutia\n @ui\n Scenario Outline: Share medium icons and text can be hidden\n Given a share button with <prop> <value>\n When the share button is rendered\n Then <element> is hidden\n Examples:\n | prop | value | element |\n | hideicon | true | icon |\n | hidetext | true | text |\n\n @minutia\n @ui\n Scenario Outline: Icons can be on either side of the text\n Given a share button with <iconslotPropValue>\n When the share button is rendered\n Then the icon is displayed to the <direction> of the text\n Examples:\n | iconslotPropValue | direction |\n | suffix | right |\n | prefix | left |\n | prefix | left |\n\n @minutia\n Scenario: Unsupported browsers hide native share buttons\n Given the share button\'s medium prop is "direct"\n And your browser does not support the Web Share API\n Then the share button is hidden\n\n @minutia\n Scenario: SMS share buttons are hidden on non Android and iOS devices\n Given the share button\'s medium is "sms"\n And the share button is being viewed on a device which is not an Android or iOS device\n Then the share button is hidden\n\n @motivating\n Scenario: Facebook share buttons uses SquatchAndroid sharing features\n Given the share button\'s medium is "facebook"\n And the share button is being viewed in a web view with the SquatchAndroid API\n And the Facebook app is available\n Then tapping the share button opens the phone\'s Facebook app\n And a share activity is opened with the share link prefilled\n\n @motivating\n Scenario: SquatchAndroid falls back to the Facebook website if no app is available\n Given the share button\'s medium is "facebook"\n And the share button is being viewed in a web view with the SquatchAndroid API\n And the Facebook app is not available\n Then tapping the share button opens the the Facebook mobile site in the device\'s browser\n And a share activity is opened with the share link prefilled\n\n @minutia\n Scenario: A supplied program ID is used if available\n Given the program id is supplied to the component in the "programId" prop\n Then the program ID in the "programId" prop is used to retrieve share links\n\n @minutia\n Scenario: The program ID is automatically fetched from context\n Given the program id is not supplied to the component in the "programId" prop\n Then the program ID is retrieved from context';var ShareButton_stories={title:"Components/Share Button",parameters:{scenario:scenario}};var WithIconPrefix=function(){var e={medium:"whatsapp",iconslot:"prefix"};return h(ShareButtonView,Object.assign({},e),"Share")};var WithIconSuffix=function(){var e={medium:"whatsapp",iconslot:"suffix"};return h(ShareButtonView,Object.assign({},e),"Share")};var WithIconOverride=function(){var e={medium:"facebook",icon:"person-badge"};return h(ShareButtonView,Object.assign({},e),"Share")};var TextStyle=function(){var e={medium:"facebook",type:"text"};return h(ShareButtonView,Object.assign({},e),"Share")};var WithoutIcon=function(){var e={medium:"facebook",hideicon:true};return h(ShareButtonView,Object.assign({},e),"Share")};var WithoutText=function(){var e={medium:"facebook",hidetext:true};return h(ShareButtonView,Object.assign({},e),"Share")};var TextStyleWithoutIcon=function(){var e={medium:"facebook",type:"text",hideicon:true};return h(ShareButtonView,Object.assign({},e),"Share")};var WithCustomColors=function(){var e={medium:"facebook",type:"text",backgroundcolor:"red",textcolor:"yellow",iconslot:"prefix"};return h(ShareButtonView,Object.assign({},e),"Facebook")};var WithCustomBorderRadius=function(){var e={medium:"facebook",type:"text",borderradius:8,iconslot:"prefix"};return h(ShareButtonView,Object.assign({},e),"Facebook")};var FullStackIcon=function(){return h("div",null,h("sqm-share-button",{medium:"facebook"},h("span",null,"Facebook")),h("br",null),h("sqm-share-button",{medium:"email"},h("span",null,"Email")))};var AllMediums=function(){return h("div",null,h("sqm-share-button",{medium:"facebook"},h("span",null,"Facebook")),h("br",null),h("sqm-share-button",{medium:"email"},h("span",null,"Email")),h("br",null),h("sqm-share-button",{medium:"whatsapp"},h("span",null,"WhatsApp")),h("br",null),h("sqm-share-button",{medium:"linkedin"},h("span",null,"Linkedin")),h("br",null),h("sqm-share-button",{medium:"twitter"},h("span",null,"Twitter")),h("br",null),h("sqm-share-button",{medium:"pinterest"},h("span",null,"Pinterest")),h("br",null),h("sqm-share-button",{medium:"fbmessenger"},h("span",null,"Messenger")),h("br",null),h("sqm-share-button",{medium:"sms"},h("span",null,"SMS")),h("br",null),h("sqm-share-button",{medium:"linemessenger"},h("span",null,"Line Messenger")),h("br",null),h("sqm-share-button",{medium:"direct"},h("span",null,"Share")))};var ShareButton=Object.freeze({__proto__:null,default:ShareButton_stories,WithIconPrefix:WithIconPrefix,WithIconSuffix:WithIconSuffix,WithIconOverride:WithIconOverride,TextStyle:TextStyle,WithoutIcon:WithoutIcon,WithoutText:WithoutText,TextStyleWithoutIcon:TextStyleWithoutIcon,WithCustomColors:WithCustomColors,WithCustomBorderRadius:WithCustomBorderRadius,FullStackIcon:FullStackIcon,AllMediums:AllMediums});var scenario$1='@author:derek\n@owner:derek\nFeature: Empty State\n\n The sqm-empty component acts as a universal template for the empty states that are used accross our mint components.\n\n @motivating\n @ui\n Scenario: The empty state displays an image, a header and description text\n Given a empty component with the following props\n | prop | value |\n | empty-state-image | https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png |\n | empty-state-header | My Custom Empty State |\n | empty-state-text | Description about why this empty state is being shown! |\n And it is wrapped by a component with an "empty" slot\n When a user views a component using the empty state\n Then it is displayed in the "empty" slot\n And they see an image\n And below they see "My Custom Empty State"\n And below they see "Description about why this empty state is being shown!"\n And the images/text are centered aligned';var EmptyState_stories={title:"Components/Empty State",parameters:{scenario:scenario$1}};var defaultStyles={usersheading:"TOP REFERRERS",statsheading:"NEW CUSTOMERS"};var Empty=function(){return h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"})};var defaultElements={empty:h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"}),loadingstate:h("slot",{name:"loading"},h("table",null,__spreadArrays(Array(10)).map((function(){return h("tr",null,h("td",null,h("sl-skeleton",null)))}))))};var SlottedIntoComponent=function(){var e={states:{loading:false,hasLeaders:false,styles:__assign({},defaultStyles)},data:{rankType:"rowNumber",leaderboard:[],showUser:true,rowNumber:10,userRank:{firstName:"Kutay",lastInitial:"C",value:8,rowNumber:11,rank:23}},elements:__assign({},defaultElements)};return h(LeaderboardView,Object.assign({},e))};var EmptyState=Object.freeze({__proto__:null,default:EmptyState_stories,Empty:Empty,SlottedIntoComponent:SlottedIntoComponent});var scenario$2='@author:johan\n@owner:johan\nFeature: Share Link\n\n The share link component is a box that allows users to see and copy their share link for a given program\n\n Background: Environment\n Given there is a valid program ID in the environment\n And there is a valid user ID and account ID in the environment\n\n @motivating\n Scenario: A Users sharelink can be copied to their clipboard\n Given tooltipText is "hello tooltip"\n When the component renders\n Then there is a textbox with the user\'s share link\n When the clipboard icon is clicked\n Then the link is copied to clipboard\n And a tooltip appears for ~1 second\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip\'s lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip appears for ~2 seconds\n\n @minutia\n Scenario: Demo\n Given isDemo() returns true\n Then the share link is "https://www.example.com/sharelink/abc"\n And the component won\'t be interactive\n And the tooltip is hidden\n\n @minutia\n Scenario: Program ID can be sourced from prop\n Given the programId prop is set to "program-a"\n And window.widgetIdent.programId is set to "program-b"\n When the component renders\n Then the share link is for "program-a"\n\n @minutia\n Scenario: Program ID can be sourced from window\n Given the programId prop is unset\n And window.widgetIdent.programId is set to "program-b"\n When the component renders\n Then the share link is for "program-b"\n\n @minutia\n Scenario: An analytic event is fired when a user copies their sharelink\n Given a user viewing the share link component\n And the component is rendered for "program-a"\n When they click to copy their link\n Then an "USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT" analytic event is fired\n And it is for "program-a"\n And it has share medium "DIRECT"\n\n\n @ui\n Scenario Outline: user can edit the alignment of the share link text\n Given a user is editing the share link component\n Then they see "Align text" props\n And the default value is "left"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the share link component\n Then they see "Style" props\n And the default value is "icon"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n';var ShareLink_stories={title:"Components/Share Link",parameters:{scenario:scenario$2}};var Default=function(){var e={copyString:"https://noah.example.com",open:false,tooltiptext:"Copied!"};return h(CopyTextView,Object.assign({},e))};var Tooltip=function(){var e={copyString:"https://noah.example.com",tooltiptext:"Some text for the tooltip",open:true};return h(CopyTextView,Object.assign({},e))};var Disabled=function(){var e={copyString:"https://noah.example.com",disabled:true,open:true,tooltiptext:"Copied!"};return h(CopyTextView,Object.assign({},e))};var Error$1=function(){var e={copyString:"https://noah.example.com",disabled:true,open:true,tooltiptext:"Copied!",error:true};return h(CopyTextView,Object.assign({},e))};var TextAlignCenter=function(){return h("sqm-share-link",{textAlign:"center"})};var TextAlignRight=function(){return h("sqm-share-link",{textAlign:"right"})};var CopyButton=function(){return h(CopyTextView,Object.assign({},{copyString:"https://noah.example.com",open:false,tooltiptext:"Copied!",isCopyIcon:false}))};var CopyButtonBelow=function(){return h(CopyTextView,Object.assign({},{copyString:"https://noah.example.com",open:false,tooltiptext:"Copied!",buttonStyle:"button-below"}))};var FullStack=function(){return h("sqm-share-link",null)};var ShareLink=Object.freeze({__proto__:null,default:ShareLink_stories,Default:Default,Tooltip:Tooltip,Disabled:Disabled,Error:Error$1,TextAlignCenter:TextAlignCenter,TextAlignRight:TextAlignRight,CopyButton:CopyButton,CopyButtonBelow:CopyButtonBelow,FullStack:FullStack});var scenario$3='@author:sam\n@owner:sam\nFeature: Big Stat\n\n Big stat is a component for displaying a statistic as a large number with a label\n\n @minutia\n Scenario: Demo hook retrieves label using stat pattern\n Given isDemo() returns true\n And the component renders with props:\n | type |\n | /referralsCount |\n Then the label is: "REFERRALS - COUNT"\n And the value is: "12345"\n\n @minutia\n Scenario: Demo hook falls back to default label on invalid path\n Given isDemo() returns true\n And the component renders with props:\n | type |\n | a bad path |\n Then the label is: "Demo Label"\n And the value is: "12345"\n\n @motivating\n Scenario: Displays error on unrecognized path\n Given isDemo() returns false\n And the component renders with props:\n | type |\n | /(doesNotExistNopeNotHere) |\n Then the label is: "BAD PROP TYPE"\n And the value is: "!!!"\n\n @motivating\n Scenario Outline: Label displays correctly\n Given the type prop is set to <type>\n When the component renders\n Then the label is <label>\n Given isDemo() returns true\n When the component renders\n Then the label is <inferredLabel>\n Examples:\n | path | label | inferredLabel |\n | rewardsAssigned | Rewards Earned | Rewards Assigned |\n | rewardsRedeemed | Rewards Paid | Rewards Redeemed |\n | rewardsAvailable | Rewards Available | Rewards Available |\n | referralsCount | Referrals - Count | Referrals Count |\n | referralsMonth | Referrals - This Month | Referrals Month |\n | referralsWeek | Referrals - This Week | Referrals Week |\n | rewardsCount | Rewards - Count | Rewards Count |\n | rewardsMonth | Rewards - This Month | Rewards Month |\n | rewardsWeek | Rewards - This Week | Rewards Week |\n | rewardBalance | Balance - Credit Earned | Reward Balance |\n | customField | Custom Fields | Custom Fields |\n | programGoals | Program Goals | Program Goals |\n\n @motivating\n Scenario: Display user\'s credit\n Given isDemo() returns false\n And the user has earned 34 COFFEE from the program\n And the component renders with props:\n | type |\n | /rewardBalance/CREDIT/COFFEE/prettyValue |\n Then the label is: "Balance - Credit Earned"\n And the value is: "34 COFFEE"\n\n @minutia\n Scenario: Memoizes most recent query\n Given isDemo() returns false\n And the component\'s type prop is set to a variable named PATH\n And PATH is "/referralsWeek"\n Then the component shows a loading state before showing the result\n When the component reloads given some external reload\n Then the component doesn\'t show a loading state\n When PATH is set to "/rewardsWeek"\n Then the component shows a loading state before showing the result\n When PATH is set to "/referralsWeek"\n Then the component shows a loading state before showing the result\n\n @motivating\n Scenario: Stat has a loading state\n Given isDemo() returns false\n And the component\'s stat type prop is valid\n When the component renders\n Then The stat value displays "..."\n And when the stat query is completed\n And the stat value displays a value\n\n @motivating\n Scenario Outline: Program Goal stat requires metricType and goalId\n Given the statType prop is <statType>\n When the component renders\n Then the label is <label>\n And the stat value is <InvalidStatValue>\n Examples:\n | statType | label | InvalidStatValue |\n | /programGoals | BAD PROP TYPE | true |\n | /programGoals/count | BAD PROP TYPE | true |\n | /programGoals/conversionCount | BAD PROP TYPE | true |\n | /programGoals/My-Goal | BAD PROP TYPE | true |\n | /programGoals/count/My-Goal | Program Goals | false |\n | /programGoals/conversionCount/My-Goal | Program Goals | false |\n\n @motivating\n Scenario Outline: rewardCountFiltered supports many formats\n Given the statType begins with "/rewardCountFiltered"\n When the component renders with <statType>\n Then the stat <mayRender> a value\n Examples:\n | statType | mayRender |\n | /rewardsCountFiltered | renders |\n | /rewardsCountFiltered/COFFEE | doesn\'t render |\n | /rewardsCountFiltered/global | renders |\n | /rewardsCountFiltered/INTEGRATION | renders |\n | /rewardsCountFiltered/INTEGRATION/global | renders |\n | /rewardsCountFiltered/PCT_DISCOUNT | renders |\n | /rewardsCountFiltered/PCT_DISCOUNT/global | renders |\n | /rewardsCountFiltered/CREDIT | renders |\n | /rewardsCountFiltered/CREDIT/COFFEE | renders |\n | /rewardsCountFiltered/CREDIT/global | renders |\n | /rewardsCountFiltered/CREDIT/COFFEE/PENDING | renders |\n | /rewardsCountFiltered/CREDIT/COFFEE/AVAILABLE | renders |\n | /rewardsCountFiltered/CREDIT/CASH%2FUSD | renders |\n | /rewardsCountFiltered/CREDIT/CASH%2FUSD/global | renders |\n | /rewardsCountFiltered/CREDIT/CASH%2FUSD/PENDING | renders |\n | /rewardsCountFiltered/CREDIT/CASH%2FUSD/PENDING/global | renders |\n\n @motivating\n Scenario Outline: Program Goals and Reward units with currencies must be encoded\n Given the statType is <statType>\n When the stat is queried\n Then the stat is filtered by <decodedFilter>\n And a value <mayBe> rendered\n Examples:\n | statType | decodedFilter | may |\n | /rewardBalance/CREDIT/COFFEE | COFFEE | is |\n | /rewardBalance/CREDIT/CENTS | CENTS | is |\n | /rewardBalance/CREDIT/COFFEE%2FUSD | COFFEE/USD | is |\n | /rewardBalance/CREDIT/COFFEE/USD | COFFEE | is |\n | /rewardBalance/CREDIT/CASH | CASH | is |\n | /rewardBalance/CREDIT/CASH/USD | CASH | is |\n | /rewardBalance/CREDIT/CASH%2FUSD | CASH/USD | is |\n | /programGoals/count/My-Goal | My-Goal | is |\n | /programGoals/count/My-Goal/referrals | | isn\'t |\n | /programGoals/count/My-Goal%2Freferrals | My-Goal/referrals | is |\n\n @motivating\n Scenario Outline: User custom fields can be queried\n Given the StatType is <statType>\n When the stat is queried\n Then the value matches that of the users <customField>\n Examples:\n | statType | customField |\n | /customFields/videosShared | videosShared |\n | /customFields/totalPurchaseCount | totalPurchaseCount |\n\n @motivating\n Scenario Outline: Some stats can use a global value instead of filtered by program\n Given the stat <statName>\n Then the global value <mayBe> available\n Examples:\n | statName | mayBe |\n | referralsCount | isn\'t |\n | referralsMonth | isn\'t |\n | referralsWeek | isn\'t |\n | rewardsCount | is |\n | rewardsCountFiltered | is |\n | integrationRewardsCountFiltered | is |\n | rewardsMonth | is |\n | rewardsWeek | is |\n | rewardsAssigned | is |\n | rewardsRedeemed | is |\n | rewardsRedeemedWeek | is |\n | rewardsRedeemedMonth | is |\n | rewardsPending | is |\n | rewardsAvailable | is |\n | rewardBalance | is |\n\n @motivating\n Scenario Outline: referralsCount stat can be filtered by Converted and Started\n Given statType prop is <statType>\n Then the stat returned has a <filter>\n Examples:\n | statType | filter |\n | /referralsCount | { programId_eq: programId } |\n | /referralsCount/converted | { programId_eq: programId, dateConverted_exists: true } |\n | /referralsCount/started | { programId_eq: programId, dateConverted_exists: false } |\n\n @motivating\n Scenario: Program context is used by default to source the programId used for queries\n Given a valid "statType"\n And its not a global stat\n And the stat is loaded in an environment for "program-a"\n And the "program-id" prop is not used\n When the stat is queried\n Then the query is filtered by "{ programId_eq: \'program-a\' }"\n And only results from "program-a" are returned\n\n @motivating\n Scenario Outline: ProgramId can be specified to overwrite the program context default\n Given a valid "statType"\n And its not a global stat\n And the "program-id" prop has <value>\n When the stat is queried\n Then the query has a <filter>\n And only results from <value> are returned\n Examples:\n | value | filter |\n | program-b | { programId_eq: "program-b" } |\n | program-c | { programId_eq: "program-c" } |\n\n\n @motivating\n Scenario: "/rewardsReedemedWeek" stat shows rewards that have been redeemed this week\n Given a user reeemed the following rewards\n | reward | dateRedeemed | programId |\n | $1.00 USD | 2023-08-18 | A |\n | $1.00 CAD | 2023-08-18 | A |\n | $1.00 AUD | 2023-08-18 | A |\n | $1.00 USD | 2023-08-10 | A |\n | $20.00 USD | 2023-08-18 | B |\n | $20.00 CAD | 2023-08-18 | B |\n | $20.00 AUD | 2023-08-18 | B |\n | $20.00 USD | 2023-08-01 | B |\n | $20.00 GBP | 2023-08-01 | B |\n | $20.00 GBP | 2023-08-20 | |\n And the current date is "2023-08-22"\n And the program of the stat is <programId>\n And the statType is <statType>\n Then the stat displays <statValue>\n | programId | statType | statValue |\n | A | /rewardsReedemedWeek/CREDIT/USD | USD1.00 |\n | A | /rewardsReedemedWeek/CREDIT/CAD | CAD1.00 |\n | A | /rewardsReedemedWeek/CREDIT/AUD | AUD1.00 |\n | B | /rewardsReedemedWeek/CREDIT/USD | USD20.00 |\n | B | /rewardsReedemedWeek/CREDIT/CAD | CAD20.00 |\n | B | /rewardsReedemedWeek/CREDIT/AUD | AUD20.00 |\n | N/A | /rewardsReedemedWeek/CREDIT/USD/global | USD21.00 |\n | N/A | /rewardsReedemedWeek/CREDIT/CAD/global | CAD21.00 |\n | N/A | /rewardsReedemedWeek/CREDIT/GBP/global | GBP20.00 |\n\n @motivating\n Scenario: "/rewardsReedemedMonth" stat shows rewards that have been redeemed this month\n Given a user reeemed the following rewards\n | reward | dateRedeemed | programId |\n | $1.00 USD | 2023-08-18 | A |\n | $1.00 CAD | 2023-08-18 | A |\n | $1.00 AUD | 2023-08-18 | A |\n | $1.00 USD | 2023-07-31 | A |\n | $20.00 USD | 2023-08-18 | B |\n | $20.00 CAD | 2023-08-18 | B |\n | $20.00 AUD | 2023-08-18 | B |\n | $20.00 USD | 2023-08-01 | B |\n | $20.00 GBP | 2023-08-01 | B |\n | $20.00 GBP | 2023-08-20 | |\n | $20.00 GBP | 2023-07-31 | |\n And the current date is "2023-08-22"\n And the program of the stat is <programId>\n And the statType is <statType>\n Then the stat displays <statValue>\n | programId | statType | statValue |\n | A | /rewardsReedemedMonth/CREDIT/USD | USD1.00 |\n | A | /rewardsReedemedMonth/CREDIT/CAD | CAD1.00 |\n | A | /rewardsReedemedMonth/CREDIT/AUD | AUD1.00 |\n | B | /rewardsReedemedMonth/CREDIT/USD | USD20.00 |\n | B | /rewardsReedemedMonth/CREDIT/CAD | CAD20.00 |\n | B | /rewardsReedemedMonth/CREDIT/AUD | AUD20.00 |\n | N/A | /rewardsReedemedMonth/CREDIT/USD/global | USD41.00 |\n | N/A | /rewardsReedemedMonth/CREDIT/CAD/global | CAD21.00 |\n | N/A | /rewardsReedemedMonth/CREDIT/GBP/global | GBP40.00 |\n\n\n @landmine\n Scenario Outline: Rewards redeemed by week and month stats only include rewards that have been fully redeemed\n Given statType prop is <statType>\n And the user has fully redeemed a $50.00 USD reward\n And the user has redeemed <amountRedeemed> of a $50.00 USD reward\n Then the stat displays <statValue>\n Examples:\n | statType | amountRedeemed | statValue |\n | /rewardsRedeemed/CREDIT/USD/global | $0.00 | $50.00 |\n | /rewardsRedeemedWeek/CREDIT/USD/global | $0.00 | $50.00 |\n | /rewardsRedeemedMonth/CREDIT/USD/global | $0.00 | $50.00 |\n | /rewardsRedeemed/CREDIT/USD/global | $25.00 | $75.00 |\n | /rewardsRedeemedWeek/CREDIT/USD/global | $25.00 | $50.00 |\n | /rewardsRedeemedMonth/CREDIT/USD/global | $25.00 | $50.00 |\n | /rewardsRedeemed/CREDIT/USD/global | $50.00 | $100.00 |\n | /rewardsRedeemedWeek/CREDIT/USD/global | $50.00 | $100.00 |\n | /rewardsRedeemedMonth/CREDIT/USD/global | $50.00 | $100.00 |\n\n @landmine\n Scenario Outline: Rewards redeemed by week and month stats can only count up to 1000 redeemed rewards during the period\n Given statType prop is <statType>\n And the user has fully redeemed 1001 $1.00 USD rewards in the past <timeframe>\n Then the stat displays <statValue>\n Examples:\n | statType | timeframe | statValue |\n | /rewardsRedeemed/CREDIT/USD/global | N/A | $1001.00 |\n | /rewardsRedeemedWeek/CREDIT/USD/global | week | $1000.00 |\n | /rewardsRedeemedMonth/CREDIT/USD/global | month | $1000.00 |\n';var BigStat_stories={title:"Components/Big Stat",parameters:{scenario:scenario$3}};var Default$1=function(){var e={value:99e4,statvalue:"9.900,00",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var LeftAlign=function(){var e={value:500,statvalue:"500",alignment:"left",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var RightAlign=function(){var e={value:500,statvalue:"500",alignment:"right",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var FlexReverse=function(){var e={value:500,statvalue:"500",flexReverse:true,loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var FlexReverseRight=function(){var e={value:500,statvalue:"500",flexReverse:true,alignment:"right",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var FlexReverseLeft=function(){var e={value:500,statvalue:"500",flexReverse:true,alignment:"left",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var NoStatValue=function(){var e={value:0,statvalue:"...",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var InvalidStatValue=function(){var e={value:0,statvalue:"!!!",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var MultipleStats=function(){return h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/referralsCount"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance"))))};var BigStat=Object.freeze({__proto__:null,default:BigStat_stories,Default:Default$1,LeftAlign:LeftAlign,RightAlign:RightAlign,FlexReverse:FlexReverse,FlexReverseRight:FlexReverseRight,FlexReverseLeft:FlexReverseLeft,NoStatValue:NoStatValue,InvalidStatValue:InvalidStatValue,MultipleStats:MultipleStats});var scenario$4='@owner:noah\n@author:noah\nFeature: Leaderboard\n\n\tThe leaderboard supports three main cases\n\t- Top Started Referrers\n\t- Top Converted Referrers\n\t- Top Point Earners\n\tTo display these different types of leaderboards it uses the backends pre-canned options.\n\tThe backend supports filtering on programId and interval, programId is sourced from program context.\n\n\tBackground: A user exists\n\t\tGiven a user\n\t\tAnd they are viewing the leaderboard\n\n\t@motivating\n\tScenario Outline: Two types of referrals leaderboards can be displayed\n\t\tGiven a leaderboard has prop "leaderboard-type" with <value>\n\t\tAnd there are started referrals on the tenant\n\t\tAnd there are started converted on the tenant\n\t\tWhen the user views the leaderboard\n\t\tThen they see the referral <referralType> leaderboard\n\t\tExamples:\n\t\t\t| value | referralType |\n\t\t\t| topStartedReferrers | started |\n\t\t\t| topConvertedReferrers | converted |\n\n\t@motivating\n\tScenario: The top point earners leaderboard can be displayed\n\t\tGiven a leaderboard has prop "leaderboard-type" with value "topPointEarners"\n\t\tAnd there are users with points\n\t\tWhen the user views the leaderboard\n\t\tThen they see the top point earners leaderboard\n\t\tAnd text values are displayed for point counts\n\n\t@minutia\n\tScenario Outline: Reward pretty value is used on the top point earners leaderboard\n\t\tGiven top point earners leaderboard\n\t\tAnd the "POINT" reward unit has a pretty value for the following locales\n\t\t\t| locale |\n\t\t\t| en |\n\t\t\t| fr |\n\t\t\t| tr |\n\t\tWhen the user views the leaderboard\n\t\tAnd they have <locale>\n\t\tThen they see the translated pretty value in the stat value column\n\n\t@motivating\n\tScenario Outline: Program Context is used by default to filter leaderboard results\n\t\tGiven a <leaderboardType> leaderboard loaded with program context for "my-program"\n\t\tWhen the user views the leaderboard\n\t\tThen they only see <results> from "my-program"\n\t\tExamples:\n\t\t\t| leaderboardType | results |\n\t\t\t| topStartedReferrers | started referrals |\n\t\t\t| topConvertedReferrers | converted referrals |\n\t\t\t| topPointEarners | points earned |\n\n\t@motivating\n\tScenario Outline: Program Id context can be overwritten with a prop\n\t\tGiven a <leaderboardType> leaderboard has prop "program-Id" with value "my-test-program"\n\t\tWhen the user views the leaderboard\n\t\tThen they only see <results> from "my-test-program"\n\t\tExamples:\n\t\t\t| leaderboardType | results |\n\t\t\t| topStartedReferrers | started referrals |\n\t\t\t| topConvertedReferrers | converted referrals |\n\t\t\t| topPointEarners | points earned |\n\n\t@motivating\n\tScenario Outline: Global leaderboards can be displayed by clearing program context\n\t\t#This is important for clients with use cases like StaffTracks global points leaderboard\n\t\t#This can also be done with a program section in a similar manner\n\t\tGiven a <leaderboardType> leaderboard has prop "program-Id" with value ""\n\t\tWhen the user views the leaderboard\n\t\tThen they see global <results>\n\t\tExamples:\n\t\t\t| leaderboardType | results |\n\t\t\t| topStartedReferrers | started referrals |\n\t\t\t| topConvertedReferrers | converted referrals |\n\t\t\t| topPointEarners | points earned |\n\n\t@motivating\n\tScenario: Leaderboard results are shown in descending order\n\t\tGiven there are leaderboard results\n\t\tWhen the user views the leaderboard\n\t\tThen they see up to the 10 top leaderboard results\n\t\tAnd leaderboard is in descending order\n\n\t@motivating\n\tScenario Outline: Leaderboard results can be filtered with a time interval\n\t\tGiven a <leaderboardType> leaderboard\n\t\tAnd it has prop "interval" with value "2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z"\n\t\tWhen the user views the leaderboard\n\t\tThen they only see <results> from within "2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z"\n\t\tExamples:\n\t\t\t| leaderboardType | results |\n\t\t\t| topStartedReferrers | started referrals |\n\t\t\t| topConvertedReferrers | converted referrals |\n\t\t\t| topPointEarners | points earned |\n\n\t@motivating\n\tScenario Outline: Leaderboard rank type can be configured\n\t\tGiven a leaderboard has prop "rank-type" with <value>\n\t\tWhen the user views the leaderboard\n\t\tThen their leaderboard rank is their <rank>\n\t\tExamples:\n\t\t\t| value | rank |\n\t\t\t| rowNumber | row number |\n\t\t\t| denseRank | dense rank |\n\t\t\t| rank | rank |\n\n\t@minutia\n\tScenario Outline: The max number of leaderboard rows displayed can be configured but defaults to 10\n\t\tGiven a leaderboard has prop "max-rows" with <value>\n\t\tAnd the leaderboard has <resultCount>\n\t\tWhen the user views the leaderboard\n\t\tThen they see <number> rows\n\t\tExamples:\n\t\t\t| value | resultCount | number |\n\t\t\t| | 10 | 10 |\n\t\t\t| 5 | 10 | 5 |\n\t\t\t| 3 | 1 | 1 |\n\t\t\t| 25 | 15 | 15 |\n\n\t@minutiae\n\t@ui\n\tScenario: Leaderboards with no results show an empty state\n\t\tGiven a leaderboard has no results\n\t\tWhen the user views the leaderboard\n\t\tThen an empty state is dislayed\n\t\tAnd they see an image of a leaderboard\n\t\tAnd below they see "View your rank in the leaderboard"\n\t\tAnd below they see "Be the first to refer a friend and reach the top of the leaderboard"\n\t\tAnd the text is center aligned\n\n\t@minutiae\n\t@ui\n\tScenario: A custom empty state can be provided\n\t\tGiven a leaderboard has no results\n\t\tWhen the user views the leaderboard\n\t\tThen the contents of the "empty" slot are displayed\n\n\t@minutiae\n\t@ui\n\tScenario: Leaderboard headings can be customized\n\t\tGiven a leaderboard\n\t\tAnd it has the following props\n\t\t\t| prop | value |\n\t\t\t| rankheading | Place |\n\t\t\t| usersheading | Customer |\n\t\t\t| statsheading | Referral Count |\n\t\t\t| show-rank | true |\n\t\tWhen the user views the leaderboard\n\t\tThen they see the following columns with headings\n\t\t\t| column | heading |\n\t\t\t| rank | Place |\n\t\t\t| user | Customer |\n\t\t\t| stat | Referral Count |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Leaderboard rank can be hidden or shown\n\t\tGiven a leaderboard\n\t\tAnd it has prop "show-rank" with <propValue>\n\t\tWhen the user views the leaderboard\n\t\tThen they <maySee> the rank column\n\t\tExamples:\n\t\t\t| propValue | maySee |\n\t\t\t| true | see |\n\t\t\t| false | don\'t see |\n\t\t\t| | don\'t see |\n\n\t@motivating\n\t@ui\n\tScenario: Users in the top 10 of the leaderboard results see their leaderboard row highlighted\n\t\tGiven a user in the top 10 of the leaderboard results\n\t\tWhen they view the leaderboard\n\t\tThen they see the row with their name highlighted with brand colour\n\n\t@motivating\n\t@ui\n\tScenario Outline: Users not in the top 10 leaderboard results can see their progress at the bottom of the leaderboard\n\t\tGiven a user <mayHave> completed actions counted by the leaderboard\n\t\tAnd they are not in the top 10 leaderboard results\n\t\tAnd the leaderboard has prop "show-user" with <value>\n\t\tWhen they view the leaderboard\n\t\tThen they <maySee> "..." under the top 10 leaderboard results\n\t\tAnd under "..." they <maySee> a row highlighted with brand colour\n\t\tAnd they <maySee> their name\n\t\tAnd they <maySee> their leaderboard value\n\t\tAnd they <maySeeRank>\n\t\tExamples:\n\t\t\t| mayHave | value | maySee | maySeeRank |\n\t\t\t| has | true | see | see their rank |\n\t\t\t| hasn\'t | true | see | don\'t see their rank |\n\t\t\t| N/A | false | don\'t see | don\'t see their rank |\n\t\t\t| hasn\'t | | see | don\'t see their rank |\n\n\t@minutiae\n\tScenario: Users without names are displayed as an "Anonymous User"\n\t\tGiven a user\n\t\tAnd they do not have a first name\n\t\tAnd they do not have a last initial\n\t\tWhen they view the leaderboard\n\t\tThen they see the user displayed as "Anonymous User"\n\n\t@minutiae\n\tScenario Outline: If a user only has a first or last name, then only that is displayed\n\t\tGiven a user\n\t\tAnd they only have a <name>\n\t\tWhen they view the leaderboard\n\t\tThen they only see their <name>\n\t\tExamples:\n\t\t\t| name |\n\t\t\t| firstName |\n\t\t\t| lastName |';var Leaderboard_stories={title:"Components/Leaderboard",parameters:{scenario:scenario$4}};var users=[{firstName:"",lastInitial:"",textValue:"82",rank:1,rowNumber:1},{firstName:"MF",lastInitial:"D",textValue:"73",rank:2,rowNumber:2},{firstName:"Freddie",lastInitial:"G",textValue:"64",rank:3,rowNumber:3},{firstName:"Benny",lastInitial:"B",textValue:"55",rank:4,rowNumber:4},{firstName:"Mos",lastInitial:"D",textValue:"46",rank:5,rowNumber:5},{firstName:"Joe",lastInitial:"S",textValue:"42",rank:6,rowNumber:6},{firstName:"Zach",lastInitial:"H",textValue:"41",rank:7,rowNumber:7},{firstName:"Sarah",lastInitial:"S",textValue:"39",rank:8,rowNumber:8},{firstName:"James",lastInitial:"",textValue:"33",rank:9,rowNumber:9},{firstName:"",lastInitial:"J",textValue:"29",rank:10,rowNumber:10}];var pointsUsers=[{firstName:"",lastInitial:"",textValue:"82 Points",rank:1,rowNumber:1},{firstName:"MF",lastInitial:"D",textValue:"73 Points",rank:2,rowNumber:2},{firstName:"Freddie",lastInitial:"G",textValue:"64 Points",rank:3,rowNumber:3},{firstName:"Benny",lastInitial:"B",textValue:"55 Points",rank:4,rowNumber:4},{firstName:"Mos",lastInitial:"D",textValue:"46 Points",rank:5,rowNumber:5},{firstName:"Joe",lastInitial:"S",textValue:"42 Points",rank:6,rowNumber:6},{firstName:"Zach",lastInitial:"H",textValue:"41 Points",rank:7,rowNumber:7},{firstName:"Sarah",lastInitial:"S",textValue:"39 Points",rank:8,rowNumber:8},{firstName:"James",lastInitial:"",textValue:"33 Points",rank:9,rowNumber:9},{firstName:"",lastInitial:"J",textValue:"29 Points",rank:10,rowNumber:10}];var defaultStyles$1={usersheading:"User",statsheading:"Referrals",rankheading:"Rank",anonymousUser:"Anonymous User"};var defaultElements$1={empty:h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"}),loadingstate:h("slot",{name:"loading"},h("table",null,__spreadArrays(Array(10)).map((function(){return h("tr",null,h("td",null,h("sl-skeleton",null)))}))))};var Empty$1=function(){var e={states:{loading:false,hasLeaders:false,styles:__assign({},defaultStyles$1)},data:{rankType:"rowNumber",leaderboard:[],rowNumber:10,viewerRank:{firstName:"Kutay",lastInitial:"C",textValue:"8",rowNumber:11,rank:23}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var Loading=function(){var e={states:{loading:true,hasLeaders:false,styles:__assign({},defaultStyles$1)},data:{rankType:"rowNumber",rowNumber:10,leaderboard:[]},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var One=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign({},defaultStyles$1)},data:{rankType:"rowNumber",rowNumber:1,leaderboard:[{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1}],viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var Five=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign({},defaultStyles$1)},data:{rankType:"rowNumber",rowNumber:5,leaderboard:[{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1},{firstName:"MF",lastInitial:"D",textValue:"73",rank:2,rowNumber:2},{firstName:"Freddie",lastInitial:"G",textValue:"64",rank:3,rowNumber:3},{firstName:"Benny",lastInitial:"B",textValue:"55",rank:4,rowNumber:4},{firstName:"Mos",lastInitial:"D",textValue:"46",rank:5,rowNumber:5}],viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var ReferralLeaderboard=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign(__assign({},defaultStyles$1),{rankheading:"Rank",usersheading:"User",statsheading:"Referrals",showRank:false})},data:{rankType:"rowNumber",leaderboard:users,rowNumber:10,viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var PointsLeaderboard=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign(__assign({},defaultStyles$1),{rankheading:"Rank",usersheading:"User",statsheading:"Points",showRank:false})},data:{rankType:"rowNumber",leaderboard:pointsUsers,rowNumber:10,viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82 Points",rank:1,rowNumber:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var TenWithRank=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign(__assign({},defaultStyles$1),{showRank:true})},data:{rankType:"rowNumber",leaderboard:users,rowNumber:10,viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var ViewerOutside=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign(__assign({},defaultStyles$1),{showRank:true})},data:{rankType:"rowNumber",leaderboard:users,rowNumber:10,viewerRank:{firstName:"Kutay",lastInitial:"C",textValue:"8",rowNumber:11,rank:23}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var ViewerAnonymous=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign(__assign({},defaultStyles$1),{showRank:true})},data:{rankType:"rowNumber",leaderboard:users,rowNumber:10,viewerRank:null},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var HideViewer=function(){var e={states:{loading:false,hasLeaders:true,rowNumber:10,styles:__assign(__assign({},defaultStyles$1),{showRank:true,hideViewer:true})},data:{rankType:"rowNumber",leaderboard:users,rowNumber:10,viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82",rowNumber:1,rank:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var Leaderboard=Object.freeze({__proto__:null,default:Leaderboard_stories,Empty:Empty$1,Loading:Loading,One:One,Five:Five,ReferralLeaderboard:ReferralLeaderboard,PointsLeaderboard:PointsLeaderboard,TenWithRank:TenWithRank,ViewerOutside:ViewerOutside,ViewerAnonymous:ViewerAnonymous,HideViewer:HideViewer});var HookStoryAddon=function(e,t){var n=e.story;var a;var r=(a=n.story.parameters)===null||a===void 0?void 0:a.hookStory;if(!r){return t}var s=Math.round(Math.random()*1e5);var i="sqm-hook-story-container-"+s;return h(i,null,h("sqm-hook-story-container",{hookStory:r}))};function createHookStory(e){var t=function(){return h("div",null)};t.parameters={hookStory:e};return t}var Router_stories={title:"Tests/Router"};var templates='\n <template path="/foo"><h1>foo</h1>\n \n <p>These elements don\'t produce a specific box by themselves. They are replaced by their pseudo-box and their child boxes. Please note that the CSS Display Level 3 spec defines how the contents value should affect "unusual elements" — elements that aren’t rendered purely by CSS box concepts such as replaced elements. See Appendix B: Effects of display: contents on Unusual Elements for more details.\n\n Due to a bug in browsers this will currently remove the element from the accessibility tree — screen readers will not look at what\'s inside. See the Accessibility concerns section below for more details.</p>\n </template>\n <template path="/bar"><h2>bar</h2>\n \n <p>Turns off the display of an element so that it has no effect on layout (the document is rendered as though the element did not exist). All descendant elements also have their display turned off.\n To have an element take up the space that it would normally take, but without actually rendering anything, use the visibility property instead.</p>\n </template>\n <template path="/baz/bang"><h3>baz/bang</h3>\n <pre>\n ▄▄▄▄▄▄▄░▄▄▄▄▄▄▄░▄▄▄▄▄▄░▄▄▄▄▄\n ░░▀███░░░░▀██░░░░██▀░░░░██░░\n ░░░▀██░░░░░▀██░░▄█░░░░░▄█░░░\n ░░░░███░░░░░▀██▄█░░░░░░█░░░░\n ░░░░░███░░░░░▀██░░░░░░█▀░░░░\n ░░░░░░███░░░░▄███░░░░█▀░░░░░\n ░░░░░░░██▄░░▄▀░███░░█▀░░░░░░\n ░░░░░░░▀██▄█▀░░░███▄▀░░░░░░░\n ░░░░░░░░▀██▀░░░░░███░░░░░░░░\n ░░░░░░░░░▀▀░░░░░░░▀░░░░░░░░░\n </pre>\n </template>\n <template path="/refer/:page"><h3>/refer/:page</h3>\n <pre>\n refer/:page\n </pre>\n </template>\n';var routes='\n <sqm-route path="/foo"><h1>foo</h1>\n \n <p>These elements don\'t produce a specific box by themselves. They are replaced by their pseudo-box and their child boxes. Please note that the CSS Display Level 3 spec defines how the contents value should affect "unusual elements" — elements that aren’t rendered purely by CSS box concepts such as replaced elements. See Appendix B: Effects of display: contents on Unusual Elements for more details.\n\n Due to a bug in browsers this will currently remove the element from the accessibility tree — screen readers will not look at what\'s inside. See the Accessibility concerns section below for more details.</p>\n </sqm-route>\n <sqm-route path="/bar"><h2>bar</h2>\n <p>Turns off the display of an element so that it has no effect on layout (the document is rendered as though the element did not exist). All descendant elements also have their display turned off.\n To have an element take up the space that it would normally take, but without actually rendering anything, use the visibility property instead.</p>\n </sqm-route>\n <sqm-route path="/baz/bang"><h3>baz/bang</h3>\n <pre>\n ▄▄▄▄▄▄▄░▄▄▄▄▄▄▄░▄▄▄▄▄▄░▄▄▄▄▄\n ░░▀███░░░░▀██░░░░██▀░░░░██░░\n ░░░▀██░░░░░▀██░░▄█░░░░░▄█░░░\n ░░░░███░░░░░▀██▄█░░░░░░█░░░░\n ░░░░░███░░░░░▀██░░░░░░█▀░░░░\n ░░░░░░███░░░░▄███░░░░█▀░░░░░\n ░░░░░░░██▄░░▄▀░███░░█▀░░░░░░\n ░░░░░░░▀██▄█▀░░░███▄▀░░░░░░░\n ░░░░░░░░▀██▀░░░░░███░░░░░░░░\n ░░░░░░░░░▀▀░░░░░░░▀░░░░░░░░░\n </pre>\n </sqm-route>\n <sqm-route path="/refer/:page"><h3>/refer/:page</h3>\n <pre>\n refer/:page\n </pre>\n </sqm-route>\n';var TemplateNavigation=createHookStory((function(){return h("div",null,h("button",{onClick:function(){return hn.push("/")}},"/"),h("button",{onClick:function(){return hn.push("/foo")}},"/foo"),h("button",{onClick:function(){return hn.push("/bar")}},"/bar"),h("button",{onClick:function(){return hn.push("/baz/bang")}},"/baz/bang"),h("button",{onClick:function(){return hn.push("/refer")}},"/refer"),h("button",{onClick:function(){return hn.push("/refer/1")}},"/refer/1"),h("button",{onClick:function(){return hn.push("/refer/2")}},"/refer/2"),h("button",{onClick:function(){return hn.back()}},"Back"),h("button",{onClick:function(){return hn.forward()}},"Forward"),h("hr",null),h("sqm-router",{innerHTML:templates}))}));var RouteNavigation=createHookStory((function(){return h("div",null,h("button",{onClick:function(){return hn.push("/")}},"/"),h("button",{onClick:function(){return hn.push("/foo")}},"/foo"),h("button",{onClick:function(){return hn.push("/bar")}},"/bar"),h("button",{onClick:function(){return hn.push("/baz/bang")}},"/baz/bang"),h("button",{onClick:function(){return hn.push("/refer")}},"/refer"),h("button",{onClick:function(){return hn.push("/refer/1")}},"/refer/1"),h("button",{onClick:function(){return hn.push("/refer/2")}},"/refer/2"),h("button",{onClick:function(){return hn.back()}},"Back"),h("button",{onClick:function(){return hn.forward()}},"Forward"),h("hr",null),h("sqm-router",{innerHTML:routes}))}));var Styling=createHookStory((function(){return h("div",null,h("button",{onClick:function(){return hn.push("/")}},"/"),h("button",{onClick:function(){return hn.push("/foo")}},"/foo"),h("hr",null),h("div",{style:{display:"flex",justifyContent:"space-around"}},h("sqm-router",{innerHTML:'<template path="/">\n \n <div>Column 1</div>\n <div>Column 2 </div>\n </template>'})))}));function useTemplate(e){var t=useState(e),n=t[0],a=t[1];var r=useState(e),s=r[0],i=r[1];function o(e){hn.push(e.target.value)}return{states:{previewTemplate:s,editedTemplate:n},callbacks:{setEditedTemplate:a,setPreviewTemplate:i,setPath:o}}}var defaultRouter='\n<sqm-router>\n <template path="/">\n <div>hello world</div>\n </template>\n</sqm-router>\n';function TemplateView(e){var t=e.states,n=e.callbacks;return[h("textarea",{style:{width:"100%",height:"300px"},onChange:function(e){return n.setEditedTemplate(e.target.value)}},t.editedTemplate),h("button",{onClick:function(){return n.setPreviewTemplate(t.editedTemplate)}},"Update Preview"),h("label",null,"Current path:",h("input",{onInput:n.setPath,value:"/"})),h("div",{innerHTML:t.previewTemplate})]}var RouterPlayground=createHookStory((function(){var e=useTemplate(defaultRouter),t=e.states,n=e.callbacks;return h(TemplateView,{states:t,callbacks:n})}));var Router=Object.freeze({__proto__:null,default:Router_stories,TemplateNavigation:TemplateNavigation,RouteNavigation:RouteNavigation,Styling:Styling,RouterPlayground:RouterPlayground});var scenario$5='@owner:noah\n@author:noah\nFeature: Leaderboard Rank\n\n The leaderboard rank components displays the current users rank on the leaderboard.\n\n @minutiae\n Scenario: Users without a rank are shown a generic message\n Given a user has no rank\n Then the component displays a generic message\n And the message is the string from the prop "unrankedText"\n\n @motivating\n Scenario: Users with a rank are shown a message containing their rank\n Given a user has a valid rank\n And the prop "rankText" is an ICU message\n Then the ICU message is parsed to include the user\'s rank\n And the parsed message is displayed to the users\n\n @motivating\n Scenario Outline: Ranks from any of the three standard leaderboards can be displayed\n Given a leaderboard rank component with <leaderboardType>\n And a user has a valid rank\n When they view the leaderboard rank component\n Then they see their rank for <leaderboardType>\n Examples:\n | leaderboardType |\n | topStartedReferrers |\n | topConvertedReferrers |\n | topPointEarners |\n\n @motivating\n Scenario Outline: Leaderboard rank can be filtered with a time interval\n Given a leaderboard rank component with <leaderboardType>\n And it has prop "interval" with value "2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z"\n When they view the leaderboard rank component\n Then they see their rank for <results> from within "2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z"\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario Outline: Program Context is used by default to filter leaderboard rank\n Given a <leaderboardType> leaderboard rank component loaded with program context for "my-program"\n When they view the leaderboard rank component\n Then they see their rank for <leaderboardType> from "my-program"\n Examples:\n | leaderboardType |\n | topStartedReferrers |\n | topConvertedReferrers |\n | topPointEarners |\n\n @motivating\n Scenario Outline: Program Id context can be overwritten with a prop\n Given a <leaderboardType> leaderboard rank component has prop "program-Id" with value "my-test-program"\n When they view the leaderboard rank component\n Then they see their rank for <leaderboardType> from "my-test-program"\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario Outline: Global leaderboards ranks can be displayed by clearing program context\n #This can also be done with a program section in a similar manner\n Given a <leaderboardType> leaderboard rank component has prop "program-Id" with value ""\n When they view the leaderboard rank component\n Then they see global <results> rank\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario: Rank calculation is controlled by the "rankType" prop\n Given the current user is User C\n And User C has <points>\n And User A has <points>\n And User B has <points>\n And the value of the "rankType" prop is <rankType>\n Then the rank of the current user is <rank>\n Examples:\n | user | points | rankType | rank |\n | User A | 5 | rowNumber | 3 |\n | User B | 10 | rowNumber | 1 |\n | User C | 10 | rowNumber | 2 |\n\n | user | points | rankType | rank |\n | User A | 10 | rank | 1 |\n | User B | 10 | rank | 1 |\n | User C | 5 | rank | 3 |\n\n | user | points | rankType | rank |\n | User A | 10 | denseRank | 1 |\n | User B | 10 | denseRank | 1 |\n | User C | 5 | denseRank | 2 |';var LeaderboardRank_stories={title:"Components/Leaderboard Rank",parameters:{scenario:scenario$5}};var First=function(){var e={data:{rank:"1st"}};return h("p",null,"Your rank is ",h(LeaderboardRankView,Object.assign({},e))," on the leaderboard")};var Second=function(){var e={data:{rank:"2nd"}};return h("p",null,"Your rank is ",h(LeaderboardRankView,Object.assign({},e))," on the leaderboard")};var Unranked=function(){var e={data:{rank:"unranked"}};return h("p",null,"You are currently ",h(LeaderboardRankView,Object.assign({},e)),", refer a friend!")};var LeaderboardRank=Object.freeze({__proto__:null,default:LeaderboardRank_stories,First:First,Second:Second,Unranked:Unranked});function setupGraphQL(){var e="worried-camera@uexwltgh.mailosaur.net";var t=e;var n="a-referral-program";window.SquatchAndroid=true;window.widgetIdent={tenantAlias:"test_as36zjtpfy7oo",appDomain:"https://staging.referralsaasquatch.com",token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6IndvcnJpZWQtY2FtZXJhQHVleHdsdGdoLm1haWxvc2F1ci5uZXQiLCJpZCI6IndvcnJpZWQtY2FtZXJhQHVleHdsdGdoLm1haWxvc2F1ci5uZXQifX0.-WGV4_bzGCFp-OTIO-h-yp0MlgtkdufT_GgI4T691OY",userId:e,accountId:t,programId:n};return{id:e,accountId:t}}function setupLoggedOut(){var e="a-referral-program";window.SquatchAndroid=true;window.widgetIdent={tenantAlias:"test_as36zjtpfy7oo",appDomain:"https://staging.referralsaasquatch.com",programId:e}}var PortalFrame_stories={title:"Components/Portal Frame"};var defaultProps={data:{footer:h("span",null,"example@example.com"),header:h("div",{slot:"header",style:{display:"flex",flexDirection:"column"}},h("span",{style:{fontSize:"var(--sl-font-size-large)",fontWeight:"bold"}},"Portal Header"),h("span",{style:{fontSize:"var(--sl-font-size-small)"}},"A description for the portal"))},callbacks:{rerender:function(){}},ref:{current:undefined}};var FrameWithMenu=function(){var e=__assign({},defaultProps);return h(PortalFrameView,Object.assign({},e),h("sqm-navigation-menu",{"menu-label":"Menu"},h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/widget"},"Dashboard"),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/editProfile"},"Edit Profile"),h("sl-menu-divider",null),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/logout"},"Logout")))};var FrameWithoutMenu=function(){var e=__assign({},defaultProps);return h(PortalFrameView,Object.assign({},e))};var FullStackFrame=function(){var e;setupGraphQL();return h("div",null,h("sqm-portal-frame",null,h("div",{slot:"header",style:{display:"flex",flexDirection:"column"}},h("span",{style:{fontSize:"var(--sl-font-size-large)",fontWeight:"bold"}},"Portal Header"),h("span",{style:{fontSize:"var(--sl-font-size-small)"}},"A description for the portal")),h("a",{slot:"footer",class:"FooterEmail",href:"mailto:referrals@servicetitan.com"},"referrals@servicetitan.com"),h("sqm-navigation-menu",{"menu-label":"Menu"},h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/widget"},"Dashboard"),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/editProfile"},"Edit Profile"),h("sl-menu-divider",null),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/logout"},"Logout")),h("h1",null,"Something")),h("p",null,"Current path:"," ",h("code",null,h("strong",null,(e=vn())===null||e===void 0?void 0:e.pathname))),h("button",{onClick:hn.back},"Go Back"))};var FullStackFrameLoggedOut=function(){var e;setupLoggedOut();return h("div",null,h("sqm-portal-frame",null,h("div",{slot:"header",style:{display:"flex",flexDirection:"column"}},h("span",{style:{fontSize:"var(--sl-font-size-large)",fontWeight:"bold"}},"Portal Header"),h("span",{style:{fontSize:"var(--sl-font-size-small)"}},"A description for the portal")),h("span",{slot:"footer"},"sample@example.com"),h("sqm-navigation-menu",{"menu-label":"Menu"},h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/widget"},"Dashboard"),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/editProfile"},"Edit Profile"),h("sl-menu-divider",null),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/logout"},"Logout")),h("h1",null,"Something")),h("p",null,"Current path:"," ",h("code",null,h("strong",null,(e=vn())===null||e===void 0?void 0:e.pathname))),h("button",{onClick:hn.back},"Go Back"))};var PortalFrame=Object.freeze({__proto__:null,default:PortalFrame_stories,FrameWithMenu:FrameWithMenu,FrameWithoutMenu:FrameWithoutMenu,FullStackFrame:FullStackFrame,FullStackFrameLoggedOut:FullStackFrameLoggedOut});var EditProfileForm_stories={title:"Components/Edit Profile Form"};var defaultProps$1={states:{loading:false,submitDisabled:false,formState:{currentRegion:"Canada",firstName:"Bill",lastName:"Bob",errors:{},error:"An error string"},user:{firstName:"Bill",lastName:"Bob",email:"billbob@example.com"},showEdit:false,text:{editprofileheader:"Edit Profile",editprofiletext:"Update your profile.",firstnametext:"Bill",lastnametext:"Bob",canceltext:"Cancel",updatetext:"Update",currentregiontext:"Canada"}},callbacks:{onSubmit:function(e){console.log(e)},resetForm:function(){console.log("reset")},onChange:function(){console.log("change")},setShowEdit:function(e){console.log(e)}}};var EditProfileFormDisabled=function(){var e=defaultProps$1;return h(EditProfileView,Object.assign({},e))};var EditProfileFormEnabled=function(){var e=__assign(__assign({},defaultProps$1),{states:__assign(__assign({},defaultProps$1.states),{showEdit:true})});return h(EditProfileView,Object.assign({},e))};var FullStackFrameWithMenu=function(){return h("sqm-edit-profile",{editprofileheader:"Edit Profile",editprofiletext:"Update your profile.",firstnametext:"Bill",lastnametext:"Bob",canceltext:"Cancel",updatetext:"Update",currentregiontext:"Current Region",showregion:true})};var EditProfile=Object.freeze({__proto__:null,default:EditProfileForm_stories,EditProfileFormDisabled:EditProfileFormDisabled,EditProfileFormEnabled:EditProfileFormEnabled,FullStackFrameWithMenu:FullStackFrameWithMenu});var UseShareLink_stories={title:"Hooks / useShareLink"};function setupGraphQL$1(){var e="zach.harrison@referralsaasquatch.com";var t=e;var n="klip-referral-program";window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoiemFjaC5oYXJyaXNvbkByZWZlcnJhbHNhYXNxdWF0Y2guY29tIiwiYWNjb3VudElkIjoiemFjaC5oYXJyaXNvbkByZWZlcnJhbHNhYXNxdWF0Y2guY29tIn19.Wi8Vd5r64g5n8VNhiY-v5cqFcLwGxPG3Wi3dVSfkFZI"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[])}var BareBonesView=createHookStory((function(){setupGraphQL$1();var e=useShareLink({programId:"klip-referral-program",tooltiplifespan:0,tooltiptext:""});return h("div",null,"Sharelink:"," ",h("code",{style:{borderStyle:"solid",borderWidth:"1px",padding:"2px"}},e.copyString))}));var RegularView=createHookStory((function(){setupGraphQL$1();return h(CopyTextView,Object.assign({},useShareLink({programId:"klip-referral-program",tooltiptext:"Copied to clipboard",tooltiplifespan:1e3})))}));var FastTooltip=createHookStory((function(){setupGraphQL$1();return h(CopyTextView,Object.assign({},useShareLink({programId:"klip-referral-program",tooltiptext:"⠀⠀⠀⠀⠀⠀⠀⠀⠀HELLO THERE!!!\n⠀⠀⠀⡯⡯⡾⠝⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢊⠘⡮⣣⠪⠢⡑⡌\n⠀⠀⠀⠟⠝⠈⠀⠀⠀⠡⠀⠠⢈⠠⢐⢠⢂⢔⣐⢄⡂⢔⠀⡁⢉⠸⢨⢑⠕⡌\n⠀⠀⡀⠁⠀⠀⠀⡀⢂⠡⠈⡔⣕⢮⣳⢯⣿⣻⣟⣯⣯⢷⣫⣆⡂⠀⠀⢐⠑⡌\n⢀⠠⠐⠈⠀⢀⢂⠢⡂⠕⡁⣝⢮⣳⢽⡽⣾⣻⣿⣯⡯⣟⣞⢾⢜⢆⠀⡀⠀⠪\n⣬⠂⠀⠀⢀⢂⢪⠨⢂⠥⣺⡪⣗⢗⣽⢽⡯⣿⣽⣷⢿⡽⡾⡽⣝⢎⠀⠀⠀⢡\n⣿⠀⠀⠀⢂⠢⢂⢥⢱⡹⣪⢞⡵⣻⡪⡯⡯⣟⡾⣿⣻⡽⣯⡻⣪⠧⠑⠀⠁⢐\n⣿⠀⠀⠀⠢⢑⠠⠑⠕⡝⡎⡗⡝⡎⣞⢽⡹⣕⢯⢻⠹⡹⢚⠝⡷⡽⡨⠀⠀⢔\n⣿⡯⠀⢈⠈⢄⠂⠂⠐⠀⠌⠠⢑⠱⡱⡱⡑⢔⠁⠀⡀⠐⠐⠐⡡⡹⣪⠀⠀⢘\n⣿⣽⠀⡀⡊⠀⠐⠨⠈⡁⠂⢈⠠⡱⡽⣷⡑⠁⠠⠑⠀⢉⢇⣤⢘⣪⢽⠀⢌⢎\n⣿⢾⠀⢌⠌⠀⡁⠢⠂⠐⡀⠀⢀⢳⢽⣽⡺⣨⢄⣑⢉⢃⢭⡲⣕⡭⣹⠠⢐⢗\n⣿⡗⠀⠢⠡⡱⡸⣔⢵⢱⢸⠈⠀⡪⣳⣳⢹⢜⡵⣱⢱⡱⣳⡹⣵⣻⢔⢅⢬⡷\n⣷⡇⡂⠡⡑⢕⢕⠕⡑⠡⢂⢊⢐⢕⡝⡮⡧⡳⣝⢴⡐⣁⠃⡫⡒⣕⢏⡮⣷⡟\n⣷⣻⣅⠑⢌⠢⠁⢐⠠⠑⡐⠐⠌⡪⠮⡫⠪⡪⡪⣺⢸⠰⠡⠠⠐⢱⠨⡪⡪⡰\n⣯⢷⣟⣇⡂⡂⡌⡀⠀⠁⡂⠅⠂⠀⡑⡄⢇⠇⢝⡨⡠⡁⢐⠠⢀⢪⡐⡜⡪⡊\n⣿⢽⡾⢹⡄⠕⡅⢇⠂⠑⣴⡬⣬⣬⣆⢮⣦⣷⣵⣷⡗⢃⢮⠱⡸⢰⢱⢸⢨⢌\n⣯⢯⣟⠸⣳⡅⠜⠔⡌⡐⠈⠻⠟⣿⢿⣿⣿⠿⡻⣃⠢⣱⡳⡱⡩⢢⠣⡃⠢⠁\n⡯⣟⣞⡇⡿⣽⡪⡘⡰⠨⢐⢀⠢⢢⢄⢤⣰⠼⡾⢕⢕⡵⣝⠎⢌⢪⠪⡘⡌⠀\n⡯⣳⠯⠚⢊⠡⡂⢂⠨⠊⠔⡑⠬⡸⣘⢬⢪⣪⡺⡼⣕⢯⢞⢕⢝⠎⢻⢼⣀⠀\n⠁⡂⠔⡁⡢⠣⢀⠢⠀⠅⠱⡐⡱⡘⡔⡕⡕⣲⡹⣎⡮⡏⡑⢜⢼⡱⢩⣗⣯⣟\n⢀⢂⢑⠀⡂⡃⠅⠊⢄⢑⠠⠑⢕⢕⢝⢮⢺⢕⢟⢮⢊⢢⢱⢄⠃⣇⣞⢞⣞⢾\n⢀⠢⡑⡀⢂⢊⠠⠁⡂⡐⠀⠅⡈⠪⠪⠪⠣⠫⠑⡁⢔⠕⣜⣜⢦⡰⡎⡯⡾⡽",tooltiplifespan:500})))}));var UseShareLink=Object.freeze({__proto__:null,default:UseShareLink_stories,BareBonesView:BareBonesView,RegularView:RegularView,FastTooltip:FastTooltip});var UseShareButton_stories={title:"Hooks / useShareButton"};function setupGraphQL$2(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[])}var BareBonesView$1=createHookStory((function(){setupGraphQL$2();var e="sam-partner-test-2";var t=[useShareButton({programId:e,medium:"facebook"}),useShareButton({programId:e,medium:"twitter"}),useShareButton({programId:e,medium:"email"}),useShareButton({programId:e,medium:"direct"}),useShareButton({programId:e,medium:"sms"})];return h("div",null,t.map((function(e){return h("div",null,h("button",{onClick:e.onClick},"Share link (",e.medium,")"))})))}));var RegularView$1=createHookStory((function(){setupGraphQL$2();var e="sam-partner-test-2";var t=["facebook","twitter","email","direct","sms"];return h("div",null,t.map((function(t){return h("div",null,h("sqm-share-button",Object.assign({},{programId:e,medium:t}),"BUTTON_TEXT"))})))}));var UseShareButton=Object.freeze({__proto__:null,default:UseShareButton_stories,BareBonesView:BareBonesView$1,RegularView:RegularView$1});var UseBigStat_stories={title:"Hooks / useBigStat"};function setupGraphQL$3(){var e="zach.harrison@referralsaasquatch.com";var t=e;var n="klip-referral-program";window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoiemFjaC5oYXJyaXNvbkByZWZlcnJhbHNhYXNxdWF0Y2guY29tIiwiYWNjb3VudElkIjoiemFjaC5oYXJyaXNvbkByZWZlcnJhbHNhYXNxdWF0Y2guY29tIn19.Wi8Vd5r64g5n8VNhiY-v5cqFcLwGxPG3Wi3dVSfkFZI"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[])}var View=function(e,t,n){setupGraphQL$3();return h("div",null,h("b",null,"Stat format:"),h("pre",null,t),h("br",null),h("b",null,"Stat selected:")," ",h("pre",{style:{color:"green"}},e),h("sqm-big-stat",{"stat-type":e},n))};var DemoView=function(){var e=useState("/someRandomThing/with/someArguments/1234"),t=e[0],n=e[1];var a=useDemoBigStat({statType:t,render:function(){},disconnectedCallback:function(){},ignored:true}),r=a.props,s=a.label;return h("div",null,h("div",null,"Stat type:"," ",h("input",{style:{width:"300px"},type:"text",value:t,onInput:function(e){return n(e.target.value)}})),h("hr",null),h("div",null,h(BigStatView,Object.assign({},r),s)))};var Demo=createHookStory(DemoView);var ReferralsCount=createHookStory((function(){return View("/referralsCount","/(referralsCount)/:status?")}));var referralsConvertedCount=createHookStory((function(){return View("/referralsCount/converted","/(referralsCount)/:status?")}));var referralsStartedCount=createHookStory((function(){return View("/referralsCount/started","/(referralsCount)/:status?")}));var ReferralsMonth=createHookStory((function(){return View("/referralsMonth","/(referralsMonth)")}));var ReferralsWeek=createHookStory((function(){return View("/referralsWeek","/(referralsWeek)")}));var RewardsCount=createHookStory((function(){return View("/rewardsCount","/(rewardsCount)/:global?")}));var GlobalRewardsCount=createHookStory((function(){return View("/rewardsCount/global","/(rewardsCount)/:global")}));var GlobalRewardsCountFiltered=createHookStory((function(){return View("/rewardsCountFiltered/global","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalRewardsCountPctDiscount=createHookStory((function(){return View("/rewardsCountFiltered/PCT_DISCOUNT/global","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalRewardsCountPctDiscountPending=createHookStory((function(){return View("/rewardsCountFiltered/PCT_DISCOUNT/PENDING/global","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var RewardsCountByUnit=createHookStory((function(){return View("/rewardsCountFiltered/CREDIT/COFFEE","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalRewardsCountByUnit=createHookStory((function(){return View("/rewardsCountFiltered/CREDIT/COFFEE/global","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalPendingRewardsCount=createHookStory((function(){return View("/rewardsCountFiltered/CREDIT/COFFEE/PENDING/global","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var RewardsAvailableCount=createHookStory((function(){return View("/rewardsCountFiltered/AVAILABLE","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalRewardsCountByIntegration=createHookStory((function(){return View("/integrationRewardsCountFiltered/AVAILABLE/global","/(integrationRewardsCountFiltered)/:format([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalRewardsCountByPendingIntegration=createHookStory((function(){return View("/integrationRewardsCountFiltered/PENDING/global","/(integrationRewardsCountFiltered)/:format([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var RewardsMonth=createHookStory((function(){return View("/rewardsMonth","/(rewardsMonth)/:global?")}));var RewardsWeek=createHookStory((function(){return View("/rewardsWeek","/(rewardsWeek)/:global?")}));var RewardsAssigned=createHookStory((function(){return View("/rewardsAssigned/CREDIT/COFFEE","/(rewardsAssigned)/:statType/:unit/:global?")}));var RewardsAssignedCashUSD=createHookStory((function(){return View("/rewardsAssigned/CREDIT/CASH%2FUSD","/(rewardsAssigned)/:statType/:unit/:global?")}));var RewardsPending=createHookStory((function(){return View("/rewardsPending/CREDIT/USD","/(rewardsPending)/:statType/:unit/:global?")}));var RewardsPendingGlobal=createHookStory((function(){return View("/rewardsPending/CREDIT/USD/global","/(rewardsPending)/:statType/:unit/:global?")}));var RewardsRedeemed=createHookStory((function(){return View("/rewardsRedeemed/CREDIT/USD","/(rewardsRedeemed)/:statType/:unit/:global?")}));var RewardsRedeemedWeek=createHookStory((function(){return View("/rewardsRedeemedWeek/CREDIT/USD","/(rewardsRedeemedWeek)/:statType/:unit/:global?")}));var RewardsRedeemedMonth=createHookStory((function(){return View("/rewardsRedeemedMonth/CREDIT/USD","/(rewardsRedeemedMonth)/:statType/:unit/:global?")}));var RewardsRedeemedGlobal=createHookStory((function(){return View("/rewardsRedeemed/CREDIT/USD/global","/(rewardsRedeemed)/:statType/:unit/:global?")}));var RewardsRedeemedWeekGlobal=createHookStory((function(){return View("/rewardsRedeemedWeek/CREDIT/USD/global","/(rewardsRedeemedWeek)/:statType/:unit/:global?")}));var RewardsRedeemedMonthGlobal=createHookStory((function(){return View("/rewardsRedeemedMonth/CREDIT/USD/global","/(rewardsRedeemedMonth)/:statType/:unit/:global?")}));var RewardsAvailable=createHookStory((function(){return View("/rewardsAvailable/CREDIT/COFFEE","/(rewardsAvailable)/:statType/:unit/:global?")}));var RewardsAvailableWithSlash=createHookStory((function(){return View("/rewardsAvailable/CREDIT/CASH%2FUSD","/(rewardsAvailable)/:statType/:unit/:global?")}));var RewardBalance=createHookStory((function(){return View("/rewardBalance/CREDIT/COFFEE/prettyValue","/(rewardBalance)/:statType/:unit/:format([prettyValue|value]*)?/:global?")}));var RewardBalanceCashUSD=createHookStory((function(){var e=encodeURIComponent("CASH/USD");return View("/rewardBalance/CREDIT/"+e+"/prettyValue","/(rewardBalance)/:statType/:unit/:format([prettyValue|value]*)?/:global?")}));var ProgramGoals=createHookStory((function(){var e=encodeURIComponent("Paid-Member-Goal/referrals");return View("/programGoals/count/"+e,"/(programGoals)/:metricType/:goalId")}));var CustomField=createHookStory((function(){return View("/customFields/thingCount","/(customFields)/:customField")}));var CustomFieldWithLabel=createHookStory((function(){return View("/customFields/thingCount","/(customFields)/:customField",h("sqm-text",null,"Thing Count"))}));var CustomFieldWithEmptyLabel=createHookStory((function(){return View("/customFields/thingCount","/(customFields)/:customField"," ")}));var CustomFieldWithEmptySpaceLabel=createHookStory((function(){return View("/customFields/thingCount","/(customFields)/:customField","\n ")}));var CustomFieldWithTextLabel=createHookStory((function(){return View("/customFields/thingCount","/(customFields)/:customField","Thing Count")}));var Traffic=createHookStory((function(){return View("/traffic","/(traffic)")}));var TrafficTwo=createHookStory((function(){return View("/userStats/traffic","/(userStat)/:statId","Traffic")}));var Referrals=createHookStory((function(){return View("/userStats/referrals","/(userStat)/:statId","Referrals")}));var Conversions=createHookStory((function(){return View("/userStats/conversions","/(userStat)/:statId","Conversions")}));var Goals=createHookStory((function(){return View("/userStats/goals","/(userStat)/:statId","Goals")}));var Rewards=createHookStory((function(){return View("/userStats/rewards","/(userStat)/:statId","Rewards")}));var WidgetLoads=createHookStory((function(){return View("/userStats/widgetLoads","/(userStat)/:statId","Widget Loads")}));var Revenue=createHookStory((function(){return View("/userStats/revenue","/(userStat)/:statId","Revenue")}));var GeneratedRevenue=createHookStory((function(){return View("/userStats/generatedRevenue","/(userStat)/:statId","Generated Revenue")}));var ReferredRevenue=createHookStory((function(){return View("/userStats/referredRevenue","/(userStat)/:statId","Referred Revenue")}));var UseBigStat=Object.freeze({__proto__:null,default:UseBigStat_stories,Demo:Demo,ReferralsCount:ReferralsCount,referralsConvertedCount:referralsConvertedCount,referralsStartedCount:referralsStartedCount,ReferralsMonth:ReferralsMonth,ReferralsWeek:ReferralsWeek,RewardsCount:RewardsCount,GlobalRewardsCount:GlobalRewardsCount,GlobalRewardsCountFiltered:GlobalRewardsCountFiltered,GlobalRewardsCountPctDiscount:GlobalRewardsCountPctDiscount,GlobalRewardsCountPctDiscountPending:GlobalRewardsCountPctDiscountPending,RewardsCountByUnit:RewardsCountByUnit,GlobalRewardsCountByUnit:GlobalRewardsCountByUnit,GlobalPendingRewardsCount:GlobalPendingRewardsCount,RewardsAvailableCount:RewardsAvailableCount,GlobalRewardsCountByIntegration:GlobalRewardsCountByIntegration,GlobalRewardsCountByPendingIntegration:GlobalRewardsCountByPendingIntegration,RewardsMonth:RewardsMonth,RewardsWeek:RewardsWeek,RewardsAssigned:RewardsAssigned,RewardsAssignedCashUSD:RewardsAssignedCashUSD,RewardsPending:RewardsPending,RewardsPendingGlobal:RewardsPendingGlobal,RewardsRedeemed:RewardsRedeemed,RewardsRedeemedWeek:RewardsRedeemedWeek,RewardsRedeemedMonth:RewardsRedeemedMonth,RewardsRedeemedGlobal:RewardsRedeemedGlobal,RewardsRedeemedWeekGlobal:RewardsRedeemedWeekGlobal,RewardsRedeemedMonthGlobal:RewardsRedeemedMonthGlobal,RewardsAvailable:RewardsAvailable,RewardsAvailableWithSlash:RewardsAvailableWithSlash,RewardBalance:RewardBalance,RewardBalanceCashUSD:RewardBalanceCashUSD,ProgramGoals:ProgramGoals,CustomField:CustomField,CustomFieldWithLabel:CustomFieldWithLabel,CustomFieldWithEmptyLabel:CustomFieldWithEmptyLabel,CustomFieldWithEmptySpaceLabel:CustomFieldWithEmptySpaceLabel,CustomFieldWithTextLabel:CustomFieldWithTextLabel,Traffic:Traffic,TrafficTwo:TrafficTwo,Referrals:Referrals,Conversions:Conversions,Goals:Goals,Rewards:Rewards,WidgetLoads:WidgetLoads,Revenue:Revenue,GeneratedRevenue:GeneratedRevenue,ReferredRevenue:ReferredRevenue});function setupGraphQL$4(){var e="worried-camera@uexwltgh.mailosaur.net";var t=e;var n="a-referral-program";window.widgetIdent={tenantAlias:"test_as36zjtpfy7oo",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6IndvcnJpZWQtY2FtZXJhQHVleHdsdGdoLm1haWxvc2F1ci5uZXQiLCJpZCI6IndvcnJpZWQtY2FtZXJhQHVleHdsdGdoLm1haWxvc2F1ci5uZXQiLCJmaXJzdE5hbWUiOiJ0ZXN0IiwibGFzdE5hbWUiOiJ0ZXN0In19.ziDWbdCwsTo1ijxl8d2__Ga-6iFOVShaJUPp2ZBMeO0"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[])}var UseEditProfile_stories={title:"Hooks / useEditProfile"};var RegularView$2=createHookStory((function(){setupGraphQL$4();return h("sqm-edit-profile",Object.assign({},{editprofileheader:"HEADER",editprofiletext:"TEXT",firstnametext:"FIRST NAME",lastnametext:"LAST NAME",canceltext:"CANCEL",updatetext:"UPDATE",currentregiontext:"CURRENT REGION TEXT"}))}));var UseEditProfile=Object.freeze({__proto__:null,default:UseEditProfile_stories,RegularView:RegularView$2});var UseLeaderboard_stories={title:"Hooks / useLeaderboard"};function setupGraphQL$5(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[])}function setupOtherGraphQL(){var e="sam+klip@saasquat.ch";var t=e;var n="klip-referral-program";var a="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbStrbGlwQHNhYXNxdWF0LmNoIiwiaWQiOiJzYW0ra2xpcEBzYWFzcXVhdC5jaCIsImVtYWlsIjoic2FtK2tsaXBAc2Fhc3F1YXQuY2giLCJsb2NhbGUiOiJlbiJ9fQ.a2nYYrSJ81FHXlCU-Sqp_-wquQizinHBhzwzULDzimg";window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:a});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}var View$1=function(e){var t=__assign({"leaderboard-type":"topConvertedReferrers",showRank:true,"rank-type":"rowNumber",usersheading:"Top Referrers",statsheading:"Completed Referrals",interval:""},e);var n=t.leaderboardType,a=t.rankType;return h("div",{style:{marginBottom:"20px"}},h("sqm-divided-layout",{direction:"row"},h("div",{style:{padding:"10px"}},h("b",null,"Leaderboard Type"),h("pre",null,n)),h("div",{style:{padding:"10px"}},h("b",null,"Rank Type"),h("pre",null,a))),h("sqm-leaderboard",Object.assign({},t),h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"})),h("hr",null))};var TopConvertedReferrers=createHookStory((function(){setupGraphQL$5();return[View$1({}),View$1({rankType:"rank"}),View$1({rankType:"denseRank"})]}));var TopStartedReferrers=createHookStory((function(){setupGraphQL$5();return[View$1({leaderboardType:"topStartedReferrers",statsheading:"New Referrals"}),View$1({leaderboardType:"topStartedReferrers",rankType:"rank",statsheading:"New Referrals"}),View$1({leaderboardType:"topStartedReferrers",rankType:"denseRank",statsheading:"New Referrals"})]}));var topPointEarners=createHookStory((function(){setupGraphQL$5();return[View$1({leaderboardType:"topPointEarners",statsheading:"Points",usersheading:"Top Earners"}),View$1({leaderboardType:"topPointEarners",rankType:"rank",statsheading:"Points",usersheading:"Top Earners"}),View$1({leaderboardType:"topPointEarners",rankType:"denseRank",statsheading:"Points",usersheading:"Top Earners"})]}));var globalLeaderboards=createHookStory((function(){setupGraphQL$5();return[View$1({leaderboardType:"topPointEarners",rankType:"rank",statsheading:"Points",usersheading:"Top Earners",programId:""}),View$1({leaderboardType:"topStartedReferrers",rankType:"rank",statsheading:"Referrals",programId:""}),View$1({leaderboardType:"topConvertedReferrers",rankType:"rank",statsheading:"Referrals",programId:""})]}));var FiveResults=createHookStory((function(){setupGraphQL$5();return[View$1({leaderboardType:"topStartedReferrers",maxRows:5,statsheading:"Referrals"})]}));var EmptyLeaderboard=createHookStory((function(){setupOtherGraphQL();return[View$1({leaderboardType:"topStartedReferrers",statsheading:"New Referrals",interval:"2021-02-11T08:00:00.000Z/2021-02-13T08:00:00.000Z"}),View$1({leaderboardType:"topStartedReferrers",rankType:"rank",statsheading:"New Referrals",interval:"2021-02-11T08:00:00.000Z/2021-02-13T08:00:00.000Z"}),View$1({leaderboardType:"topStartedReferrers",rankType:"denseRank",statsheading:"New Referrals",interval:"2021-02-11T08:00:00.000Z/2021-02-13T08:00:00.000Z"})]}));var DemoHook=createHookStory((function(){return h("sqm-leaderboard",{usersheading:"Referrer",statsheading:"Referrals","rank-type":"rank","leaderboard-type":"topStartedReferrers",rankheading:"Rank","show-rank":"true"},h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"}))}));var DemoHookEmpty=createHookStory((function(){return h("sqm-leaderboard",{usersheading:"Referrer",statsheading:"Referrals","rank-type":"rank","leaderboard-type":"topStartedReferrers",rankheading:"Rank","show-rank":"true",demoData:{data:{rankType:"rank",leaderboard:[]},states:{loading:false,hasLeaders:false,styles:{usersheading:"Top referrers",statsheading:"New customers",rankheading:"Rank",anonymousUser:"Anonymous User",showRank:true}}}},h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"}))}));var UseLeaderboard=Object.freeze({__proto__:null,default:UseLeaderboard_stories,TopConvertedReferrers:TopConvertedReferrers,TopStartedReferrers:TopStartedReferrers,topPointEarners:topPointEarners,globalLeaderboards:globalLeaderboards,FiveResults:FiveResults,EmptyLeaderboard:EmptyLeaderboard,DemoHook:DemoHook,DemoHookEmpty:DemoHookEmpty});var FormMessage_stories={title:"Components/Form Message"};var SuccessAlert=function(){return h("sqm-form-message",{type:"success"},h("div",null,"This is a success message."))};var ErrorAlert=function(){return h("sqm-form-message",{type:"error"},h("div",null,"This is an error message"))};var WarningAlert=function(){return h("sqm-form-message",{type:"warning"},h("div",null,"This is an error message"))};var InfoAlert=function(){return h("sqm-form-message",{type:"info"},h("div",null,"This is an info message"))};var FullStackSuccess=function(){return h("sqm-form-message",{type:"success",exportparts:"successalert-icon"},h("div",{class:"AlertContent"},h("div",{part:"successalert-text"},"Title"),h("div",{part:"successalert-subtext"},"Body text."),h("sl-button",{type:"default",exportparts:"base: defaultbutton-base",onClick:function(){console.log("click")}},"Primary Action"),h("sl-button",{class:"SecondaryTextButton",type:"text",onClick:function(){console.log("click")}},"Secondary Action")))};var FormMessage=Object.freeze({__proto__:null,default:FormMessage_stories,SuccessAlert:SuccessAlert,ErrorAlert:ErrorAlert,WarningAlert:WarningAlert,InfoAlert:InfoAlert,FullStackSuccess:FullStackSuccess});var EXCHANGE=dist.gql(templateObject_1||(templateObject_1=__makeTemplateObject(["\n mutation exchange($exchangeRewardInput: ExchangeRewardInput!) {\n exchangeReward(exchangeRewardInput: $exchangeRewardInput) {\n reward {\n id\n }\n }\n }\n"],["\n mutation exchange($exchangeRewardInput: ExchangeRewardInput!) {\n exchangeReward(exchangeRewardInput: $exchangeRewardInput) {\n reward {\n id\n }\n }\n }\n"])));var UseRewardExchangeList_stories={title:"Hooks / useRewardExchange"};function setupGraphQL$6(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}function useExchangeButton(){var e=setupGraphQL$6(),t=e.id,n=e.accountId;var a=useState(10),r=a[0],s=a[1];var i=useState(100),o=i[0],l=i[1];var d=ze(EXCHANGE),u=d[0],c=d[1],m=c.data,h=c.errors;return{states:{points:r,rate:o},data:{id:t,accountId:n,data:m,errors:h},callbacks:{exchange:u,setPoints:s,setRate:l}}}var DefaultView=function(e){var t=e.states,n=e.data,a=e.callbacks;return h("div",null,h("div",null,h("label",null,"Rate:"),h("input",{value:t.rate,onInput:function(e){return a.setRate(e.target.value)}})),h("input",{value:t.points,onInput:function(e){return a.setPoints(e.target.value)}}),h("button",{onClick:function(){return a.exchange(e.input)}},"Exchange"),h("details",null,h("summary",null,"response"),h("h4",null,"data"),h("div",{style:{maxWidth:"500px"}},h("pre",{style:{width:"500px",whiteSpace:"pre-wrap"}},JSON.stringify(n.data))),h("h4",null,"errors"),h("div",{style:{maxWidth:"500px"}},h("pre",{style:{maxWidth:"500px",whiteSpace:"pre-wrap"}},JSON.stringify(n.errors)))))};var RewardList=createHookStory((function(){setupGraphQL$6();return h("sqm-reward-exchange-list",{"list-type":"something"})}));var FixedGlobalReward=createHookStory((function(){var e=useExchangeButton(),t=e.states,n=e.data,a=e.callbacks;return h(DefaultView,{states:t,data:n,callbacks:a,input:{exchangeRewardInput:{userId:n.id,accountId:n.accountId,redeemCreditInput:{amount:t.points,unit:"POINT"},globalRewardKey:"gc1"}}})}));var VariableGlobalReward=createHookStory((function(){var e=useExchangeButton(),t=e.states,n=e.data,a=e.callbacks;return h(DefaultView,{states:t,data:n,callbacks:a,input:{exchangeRewardInput:{userId:n.id,accountId:n.accountId,redeemCreditInput:{amount:t.points,unit:"POINT"},globalRewardKey:"gc1",rewardInput:{valueInCents:Math.ceil(t.points*t.rate)}}}})}));var VariableCreditReward=createHookStory((function(){var e=useExchangeButton(),t=e.states,n=e.data,a=e.callbacks;return h(DefaultView,{states:t,data:n,callbacks:a,input:{exchangeRewardInput:{userId:n.id,accountId:n.accountId,redeemCreditInput:{amount:t.points,unit:"POINT"},rewardInput:{type:"CREDIT",unit:"foo",assignedCredit:Math.ceil(t.points*t.rate)}}}})}));var UseRewardExchangeList=Object.freeze({__proto__:null,default:UseRewardExchangeList_stories,RewardList:RewardList,FixedGlobalReward:FixedGlobalReward,VariableGlobalReward:VariableGlobalReward,VariableCreditReward:VariableCreditReward});var UseRewardsTable_stories={title:"Hooks / useRewardsTable"};function setupGraphQL$7(){var e="testestest";var t=e;window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com"};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}function setupGraphQLKlip(e){var t=e.token,n=e.id;var a=n;window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com"};useEffect((function(){setUserIdentity({accountId:a,id:n,jwt:t});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:n,accountId:a}}var RewardTableDemoHook=createHookStory((function(){return h("sqm-rewards-table",{"per-page":"4"},h("sqm-rewards-table-reward-column",null),h("sqm-rewards-table-source-column",null),h("sqm-rewards-table-status-column",null),h("sqm-rewards-table-date-column",null))}));var RewardsTableWithProgram=createHookStory((function(){setupGraphQL$7();setProgramId("sam-partner-test-2");return h("sqm-rewards-table",null,h("sqm-rewards-table-reward-column",null),h("sqm-rewards-table-status-column",null),h("sqm-rewards-table-source-column",null),h("sqm-rewards-table-date-column",null))}));var RewardsTableNoProgram=createHookStory((function(){setupGraphQL$7();setProgramId(undefined);return h("sqm-rewards-table",null,h("sqm-rewards-table-reward-column",null),h("sqm-rewards-table-status-column",null),h("sqm-rewards-table-source-column",null),h("sqm-rewards-table-date-column",null))}));var RewardsTableEn=createHookStory((function(){setupGraphQLKlip({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbWVuZ2xpc2giLCJpZCI6InNhbWVuZ2xpc2gifX0._6OTVF3gcipu_ibgthUNr5UHwC-2E_lhCENI5HpYvcw",id:"samenglish"});setProgramId(undefined);return h("sqm-rewards-table",{"per-page":"4"},h("sqm-rewards-table-reward-column",null),h("sqm-rewards-table-status-column",null),h("sqm-rewards-table-source-column",null),h("sqm-rewards-table-date-column",null))}));var RewardsTableTr=createHookStory((function(){setupGraphQLKlip({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbXR1cmtleSIsImlkIjoic2FtdHVya2V5In19.usSMe0RWg8W5FtwcvJayvAlxTw6vMxjTyWXaP8jI8_U",id:"samturkey"});setProgramId(undefined);return h("sqm-rewards-table",{"per-page":"4","more-label":"Daha","prev-label":"Öncesi","empty-state-text":"Henüz Referans Yok"},h("sqm-rewards-table-reward-column",{"column-title":"Ödüller","redeemed-text":"{redeemedAmount} kullanıldı","available-text":"{availableAmount} mevcut"}),h("sqm-rewards-table-source-column",{"column-title":"Kullanıcılar","anonymous-user":"Anonim Kullanıcı","deleted-user":"Silinmiş Kullanıcı","reward-exchange-text":"Ödülleri Kulannın","referral-text":"{rewardSource, select, FRIEND_SIGNUP {Referans} REFERRED {Yönlendiren} other {}}","reward-source-text":"{rewardSource, select, MANUAL {Manuel} AUTOMATED {Otomatik} other {}}"}),h("sqm-rewards-table-status-column",{"column-title":"Statut","status-text":"{status, select, AVAILABLE {Mevcut} PENDING {Bekleniyor} EXPIRED {Geçmiş} REDEEMED {Kullanılmış} CANCELED {İptal Edildi} other {Kullanılamaz} }","expiry-text":"Bitiyor "}),h("sqm-rewards-table-date-column",{"column-title":"Tarih"}))}));var RewardsTableFr=createHookStory((function(){setupGraphQLKlip({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbWZyZW5jaCIsImlkIjoic2FtZnJlbmNoIn19.cwhasHpfU5MLV4vGbCQcazb6p19iSw5pD2zyrVHgePg",id:"samfrench"});setProgramId(undefined);return h("sqm-rewards-table",{"per-page":"4","more-label":"Plus","prev-label":"Précédent","empty-state-text":"Aucune Récompenses Maintenant"},h("sqm-rewards-table-reward-column",{"column-title":"Récompenses","redeemed-text":"{redeemedAmount} rachetée","available-text":"{availableAmount} disponible"}),h("sqm-rewards-table-source-column",{"column-title":"Utilisateur","anonymous-user":"Utilisateur Anonyme","deleted-user":"Utilisateur Supprimé","reward-exchange-text":"Échange de Récompenses","referral-text":"{rewardSource, select, FRIEND_SIGNUP {Référence à} REFERRED {Référencé par} other {}}","reward-source-text":"{rewardSource, select, MANUAL {Manuel} AUTOMATED {Automatique} other {}}"}),h("sqm-rewards-table-status-column",{"column-title":"Statut","status-text":"{status, select, AVAILABLE {Disponible} PENDING {Pendant} EXPIRED {Expiré} REDEEMED {Racheté} CANCELED {Annulé} other {Indisponible} }","expiry-text":"Expire sur "}),h("sqm-rewards-table-date-column",{"column-title":"Date de Réception"}))}));var UseRewardsTable=Object.freeze({__proto__:null,default:UseRewardsTable_stories,RewardTableDemoHook:RewardTableDemoHook,RewardsTableWithProgram:RewardsTableWithProgram,RewardsTableNoProgram:RewardsTableNoProgram,RewardsTableEn:RewardsTableEn,RewardsTableTr:RewardsTableTr,RewardsTableFr:RewardsTableFr});var JWT="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbStrbGlwQHNhYXNxdWF0LmNoIiwiaWQiOiJzYW0ra2xpcEBzYWFzcXVhdC5jaCIsImVtYWlsIjoic2FtK2tsaXBAc2Fhc3F1YXQuY2giLCJsb2NhbGUiOiJlbiJ9fQ.a2nYYrSJ81FHXlCU-Sqp_-wquQizinHBhzwzULDzimg";var UseTaskCard_stories={title:"Hooks / useTaskCard"};function setupGraphQL$8(){var e="sam+klip@saasquat.ch";var t=e;var n="klip-referral-program";window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:JWT});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}var TaskCard=createHookStory((function(){setupGraphQL$8();return h("sqm-task-card",{"card-title":"Comment on 5 articles","button-text":"Start reading",goal:5,steps:true,"show-progress-bar":true,"event-key":"testEvent","open-new-tab":true})}));var TaskCardFeed=createHookStory((function(){setupGraphQL$8();return h("sqm-card-feed",null,h("sqm-task-card",{"reward-amount":"75","card-title":"Refer a Friend",description:"Invite a friend to Klip and get 75 points when they signup for a free trial or contact our us about an enterprise license.","button-text":"Start referring","button-link":"https://klip-staging.vercel.app/app/klip-rewards",goal:1,repeatable:true,"completed-text":"",demoData:"","ended-message":"","event-key":"","expiry-message":"","progress-bar-unit":"","reward-duration":"2022-01-04T08:00:00.000Z/2022-01-20T08:00:00.000Z","reward-unit":"","starts-on-message":"","stat-type":"","display-duration":"2022-01-04T08:00:00.000Z/2022-01-05T08:00:00.000Z"}),h("sqb-program-section",{"program-id":"klip-loyalty"},h("sqm-task-card",{"reward-amount":"50","card-title":"Follow Us on Twitter",description:"Earn 50 points when you follow us on Twitter!","button-text":"Follow","button-link":"https://twitter.com/",goal:1,"stat-type":"/programGoals/count/Follow-on-Social-Media","open-new-tab":"true","event-key":"socialFollow"})),h("sqm-task-card",{"reward-amount":"250",goal:500,"show-progress-bar":"true","card-title":"Spend $500 on Klip Products",description:"Earn 250 points when you spend $500 or more on Klip products.","button-text":"See plans","button-link":"https://klip-staging.vercel.app/app/plans","stat-type":"/customFields/purchaseTotal","open-new-tab":"false"}),h("sqb-program-section",{"program-id":"klip-loyalty"},h("sqm-task-card",{"reward-amount":"25",goal:1,"card-title":"Upload Your First Video",description:"Earn 25 points for exploring the Klip platform when you upload your first video.","button-text":"Upload","button-link":"https://klip-staging.vercel.app/app","stat-type":"/programGoals/count/Record-First-Video","open-new-tab":"false"})),h("sqm-task-card",{"reward-amount":"100",goal:5,repeatable:true,"show-progress-bar":"true",steps:true,"card-title":"Share 5 Videos",description:"Earn 100 points for collaborating each time you share 5 videos.","button-text":"Share","button-link":"https://klip-staging.vercel.app/app","stat-type":"/customFields/videosShared","open-new-tab":"false"}),h("sqb-program-section",{"program-id":"klip-loyalty"},h("sqm-task-card",{"reward-amount":"1","reward-unit":"Free Month",goal:1,"card-title":"Upgrade Your Plan",description:"Buy a Business or Enterprise plan and get 1 free month of Klip for being a committed customer.","button-text":"Upgrade","button-link":"https://klip-staging.vercel.app/app/plans","stat-type":"/programGoals/count/Upgrade-Plan","open-new-tab":"false"})),h("sqm-task-card",{"reward-amount":"200",goal:5,"show-progress-bar":"","card-title":"Purchase 5 Seats",description:"Earn 200 points when you expand your Klip Team by purchasing 5 or more seats.","button-text":"Purchase seats","button-link":"https://klip-staging.vercel.app/app/plans","stat-type":"/customFields/seatCount"}),h("sqm-task-card",{"reward-amount":"250",goal:1,"show-progress-bar":"","card-title":"Upload 1 Hour of Video",description:"Record and upload an hour of video and get 250 points for being a super user.","button-text":"Upload","button-link":"https://klip-staging.vercel.app/app","stat-type":"/customFields/videoHoursCount","progress-bar-unit":"","reward-unit":"Points"}),h("sqb-program-section",{"program-id":"klip-loyalty"},h("sqm-task-card",{"reward-amount":"100",goal:1,"card-title":"Complete an NPS Survey",description:"Fill out our NPS survey and get 100 points for giving us honest feedback. Be sure to use your Klip account email when completing the survey.","button-text":"Complete survey","button-link":"https://y5tqgj96plv.typeform.com/to/p6N7lHUk","stat-type":"/programGoals/count/NPS-Survey","reward-unit":"Points","open-new-tab":"true"})),h("sqb-conditional-section",{condition:"'champion' in user.segments"},h("sqb-program-section",{"program-id":"klip-loyalty"},h("sqm-task-card",{"reward-amount":"$100",goal:1,"card-title":"Complete a Case Study",description:"Write a Klip case study and earn a $100 Visa Gift Card for letting us know how Klip has helped your team succeed.","button-text":"Complete case study","button-link":"https://y5tqgj96plv.typeform.com/to/CPhkFBBW","stat-type":"/programGoals/count/Case-Study","reward-unit":"Visa Gift Card","open-new-tab":"true"}))))}));var UseTaskCard=Object.freeze({__proto__:null,default:UseTaskCard_stories,TaskCard:TaskCard,TaskCardFeed:TaskCardFeed});var NewPortal_stories={title:"New Portal"};var style={HeaderSubtitleBold:{"font-weight":500,"text-decoration":"underline"}};var sheet=createStyleSheet(style);var styleString=sheet.toString();var item1Props={states:{active:false},data:{label:"Dashboard",icon:"house",path:"/"}};var item2Props={states:{active:true},data:{label:"Activity",icon:"bar-chart",path:"/"}};var Sidebar=function(){return h(NavigationSidebarView,null,h(NavigationSidebarItemView,Object.assign({},item1Props)),h(NavigationSidebarItemView,Object.assign({},item2Props)))};var Dashboard=function(){var e={copyString:"https://ssqt.co/johnsmithrox",open:false,disabled:false,tooltiptext:"Share link copied",onClick:function(){return console.log("Share link copied")}};var t={copyString:"JOHNSMITH1",open:false,disabled:false,tooltiptext:"Share code copied",onClick:function(){return console.log("Share code copied")}};var n={medium:"twitter",loading:false,disabled:false,pill:true,type:"default",size:"medium",icon:"twitter",hideicon:false,iconslot:"prefix",onClick:function(){return"Facebook share clicked"},hide:false};var a={medium:"facebook",loading:false,disabled:false,pill:true,type:"default",size:"medium",icon:"facebook",hideicon:false,iconslot:"prefix",onClick:function(){return"Facebook share clicked"},hide:false};var r={medium:"linkedin",loading:false,disabled:false,pill:true,type:"default",size:"medium",icon:"linkedin",hideicon:false,iconslot:"prefix",onClick:function(){return"Facebook share clicked"},hide:false};return h("sqm-divided-layout",{direction:"row"},h("style",{type:"text/css"},styleString),h(Sidebar,null),h("sqm-divided-layout",{direction:"column"},h(PortalContainerView,Object.assign({},{direction:"column",padding:"xxx-large",gap:"xxx-large"}),h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("p",null,"Welcome back,")),content:h("sqm-text",null,h("h1",null,"John Smith"))})),h(StatContainerView,Object.assign({},{space:"64px"}),h(BigStatView,Object.assign({},{statvalue:"2,345",value:234500,loading:false}),"Clicks"),h(BigStatView,Object.assign({},{statvalue:"58",value:58,loading:false}),"Referrals"),h(BigStatView,Object.assign({},{statvalue:"$10,540",value:1054e3,loading:false}),"Earned"),h(BigStatView,Object.assign({},{statvalue:"$2,305",value:230500,loading:false}),"Awaiting Payout"))),h(PortalContainerView,Object.assign({},{direction:"column",padding:"xxx-large",gap:"xxx-large"}),h(PortalSectionView,Object.assign({},{labelMargin:"x-large",padding:"none",label:h("sqm-text",null,h("h2",null,"Partner and Profit")),content:h("sqm-text",null,h("p",null,"Get rewarded for referring potential customers to MyCompany. Earn commission for each successful lead you send our way"))})),h(PortalSectionView,Object.assign({},{labelMargin:"small",padding:"none",label:h("sqm-text",null,h("h3",null,"Share your referral link")),content:h(CopyTextView,Object.assign({},e))})),h(PortalSectionView,Object.assign({},{labelMargin:"small",padding:"none",label:h("sqm-text",null,h("h3",null,"Share your referral code")),content:h(CopyTextView,Object.assign({},t))})),h(PortalSectionView,Object.assign({},{labelMargin:"small",padding:"none",label:h("sqm-text",null,h("h3",null,"Share via social media")),content:h(PortalContainerView,Object.assign({},{direction:"row",padding:"large",gap:"xxx-large",minWidth:"150px"}),h(ShareButtonView,Object.assign({},n),"Tweet about us"),h(ShareButtonView,Object.assign({},a),"Share on Facebook"),h(ShareButtonView,Object.assign({},r),"Post on Linkedin"))})))))};var EditProfile$1=function(){return h("sqm-divided-layout",{direction:"row"},h("style",{type:"text/css"},styleString),h(Sidebar,null),h("sqm-divided-layout",{direction:"column"},h(PortalProfileView,Object.assign({},{states:{success:false,loading:false,submitDisabled:false,showCountry:false,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}})),h(PortalChangePasswordView,Object.assign({},{states:{open:true,error:"",loading:false,success:false,content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(){return console.log("open")},submit:function(){return console.log("submit")}}}))))};var Commissions=function(){return h("sqm-divided-layout",{direction:"row"},h("style",{type:"text/css"},styleString),h(Sidebar,null),h("sqm-divided-layout",{direction:"column"},h(PortalContainerView,Object.assign({},{direction:"column",padding:"xxx-large",gap:"xxx-large"}),h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("h2",null,"Commissions")),content:h("sqm-text",null,h("p",null,"for the"," ",h("span",{class:sheet.classes.HeaderSubtitleBold},"Partner Program #1")," ","program"))})),h(StatContainerView,Object.assign({},{space:"64px"}),h(BigStatView,Object.assign({},{statvalue:"$ 1,000",value:1e5,loading:false}),"Total Earned"),h(BigStatView,Object.assign({},{statvalue:"$ 800",value:8e4,loading:false}),"Available"),h(BigStatView,Object.assign({},{statvalue:"$ 180",value:18e3,loading:false}),"Pending"),h(BigStatView,Object.assign({},{statvalue:"$ 20",value:2e3,loading:false}),"Redeemed")))))};var Activity=function(){return h("sqm-divided-layout",{direction:"row"},h("style",{type:"text/css"},styleString),h(Sidebar,null),h("sqm-divided-layout",{direction:"column"},h(PortalContainerView,Object.assign({},{direction:"column",padding:"xxx-large",gap:"xxx-large"}),h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("h2",null,"Activity")),content:h("sqm-text",null,h("p",null,"for the"," ",h("span",{class:sheet.classes.HeaderSubtitleBold},"Partner Program #1")," ","program"))})),h(PortalSectionView,Object.assign({},{labelMargin:"x-large",padding:"none",label:h("sqm-text",null,h("h3",null,"Referral Activity")),content:h(StatContainerView,Object.assign({},{space:"64px"}),h(BigStatView,Object.assign({},{statvalue:"1,000",value:1e5,loading:false}),"Total Referrals"),h(BigStatView,Object.assign({},{statvalue:"800",value:800,loading:false}),"Converted"),h(BigStatView,Object.assign({},{statvalue:"180",value:180,loading:false}),"Pending"),h(BigStatView,Object.assign({},{statvalue:"20",value:20,loading:false}),"Disqualified"))}))),h(PortalSectionView,Object.assign({},{labelMargin:"x-large",padding:"xxx-large",label:h("sqm-text",null,h("h3",null,"Traffic Generated")),content:h(StatContainerView,Object.assign({},{space:"64px"}),h(BigStatView,Object.assign({},{statvalue:"1,000",value:1e3,loading:false}),"Clicks"),h(BigStatView,Object.assign({},{statvalue:"800",value:800,loading:false}),"From share link"),h(BigStatView,Object.assign({},{statvalue:"180",value:180,loading:false}),"From share mediums"))}))))};var NewPortal=Object.freeze({__proto__:null,default:NewPortal_stories,Dashboard:Dashboard,EditProfile:EditProfile$1,Commissions:Commissions,Activity:Activity});var referralWidget='<sqm-brand brand-color="#4225c4" brand-font="Nunito Sans">\n <sqm-portal-container\n direction="column"\n padding="small"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n background-color="#ffffff"\n >\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-hero-image\n image-url="https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png"\n header="MyCompany Rewards"\n description="Refer a friend and earn up to $1200 in rewards"\n layout="columns"\n image-pos="right"\n background-color="#F9F9F9"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n max-width="770px"\n center\n display="grid"\n >\n <sqm-stat-container space="xxx-large" display="flex">\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/integrationRewardsCountFiltered/AVAILABLE/global"\n >\n <p>Giftcards</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqm-portal-container\n gap="large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="xxx-small"\n padding="none"\n >\n <h3 slot="label">Get rewarded when your friend uses our product</h3>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment="start">\n <sqm-portal-container\n gap="large"\n slot="left"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon="circle">\n <sqm-timeline-entry\n reward="$50"\n unit="visa giftcard"\n desc="Your friend purchases a Business plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$200"\n unit="visa giftcard"\n desc="Our sales team qualifies your friend as a good fit for our Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$1000"\n unit="visa giftcard"\n desc="Your friend purchases an Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n slot="right"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>>Choose how you want to share</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text="Copied to Clipboard"\n tooltip-lifespan="1000"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap="x-small"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-share-button\n medium="email"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium="linkedin"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium="twitter"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n padding="none"\n text-align="center"\n label-margin="xx-small"\n >\n <h3 slot="label">Referral History</h3>\n </sqm-titled-section>\n <sqm-referral-table\n per-page="4"\n hidden-columns="2"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n ></sqm-empty>\n </sqm-referral-table>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email="support@example.com"\n terms-link="https:\\/\\/example.com"\n faq-link="https:\\/\\/example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n';var monoWidget='<sqm-brand brand-color="#4225c4" brand-font="Nunito Sans">\n <sqm-portal-container\n direction="column"\n padding="small"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n background-color="#ffffff"\n >\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-hero-image\n image-url="https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png"\n header="MyCompany Rewards"\n description="Refer friends and complete tasks to earn rewards"\n layout="columns"\n image-pos="right"\n background-color="#F9F9F9"\n image-mobile-pos="top"\n image-percentage="50"\n padding-image="none"\n padding-text="xxxx-large"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n max-width="770px"\n center\n display="grid"\n >\n <sqm-stat-container space="xxx-large" display="flex">\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/integrationRewardsCountFiltered/AVAILABLE/global"\n >\n <p>Giftcards Earned</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/POINT/value/global"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqm-portal-container\n gap="xx-large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="xxx-small"\n padding="none"\n >\n <h3 slot="label">Share $50 with friends</h3>\n <p slot="content">\n They’ll get a $50 credit towards a new account and you’ll get up to\n $1200\n </p>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment="start">\n <sqm-portal-container\n gap="large"\n slot="left"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon="circle">\n <sqm-timeline-entry\n reward="$50"\n unit="visa giftcard"\n desc="Your friend purchases a Business plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$200"\n unit="visa giftcard"\n desc="Our sales team qualifies your friend as a good fit for our Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$1000"\n unit="visa giftcard"\n desc="Your friend purchases an Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n slot="right"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>Choose how you want to share:</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text="Copied to Clipboard"\n tooltip-lifespan="1000"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap="x-small"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-share-button\n medium="email"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium="linkedin"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium="twitter"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n <sqm-portal-container\n gap="xx-large"\n direction="column"\n display="grid"\n max-width="100%"\n min-width=""\n padding="none"\n >\n <sqm-titled-section text-align="center" label-margin="xxx-small">\n <h3 slot="label">Earn more rewards</h3>\n <p slot="content">\n Get points while using our product. Use those points to redeem\n rewards like one free month of Enterprise or two plane tickets to\n anywhere in North America\n </p>\n </sqm-titled-section>\n <sqm-card-feed gap="24" width="347">\n <sqm-task-card\n reward-amount="20"\n goal="1"\n card-title="Complete a Survey"\n description="Fill out our NPS survey and get 20 points for giving us honest feedback."\n button-text="Take survey"\n reward-unit="Points"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="250"\n goal="500"\n show-progress-bar\n card-title="Spend $500"\n description="Earn 250 points when you spend $500 or more."\n button-text="See plans"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n progress-bar-unit="$"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n goal="1"\n reward-amount="50"\n card-title="Follow Us on Twitter"\n description="Earn 50 points when you follow us on Twitter!"\n button-text="Follow"\n button-link="https://twitter.com/"\n open-new-tab="true"\n event-key="socialFollow"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="1"\n reward-unit="Free Month"\n goal="1"\n card-title="Upgrade Your Plan"\n description="Receive one free month for being a committed customer when you upgrade your plan."\n button-text="Upgrade"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n open-new-tab="false"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n </sqm-card-feed>\n </sqm-portal-container>\n <sqm-tabs>\n <sqm-tab header="Referral history">\n <sqm-referral-table\n per-page="4"\n hidden-columns="2"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty>\n </sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n per-page="4"\n program-id=""\n hidden-columns="0"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-tab>\n </sqm-tabs>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email="support@example.com"\n terms-link="https:\\/\\/example.com"\n faq-link="https:\\/\\/example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n';var loyaltyWidget='<sqm-brand brand-color="#4225c4" brand-font="Nunito Sans">\n <sqm-portal-container\n direction="column"\n padding="small"\n gap="xxxx-large"\n display="grid"\n max-width="100%"\n background-color="#ffffff"\n >\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-hero-image\n image-url="https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png"\n header="MyCompany Rewards"\n description="Complete tasks to earn rewards"\n layout="overlay"\n padding-image="xxxx-large"\n padding-text="xxx-large"\n image-pos="center"\n overlay-color="#5e5669"\n overlay-opacity="0.9"\n >\n </sqm-hero-image>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n max-width="770px"\n center\n display="grid"\n >\n <sqm-program-explainer header="How it works">\n <sqm-program-explainer-step\n description="Complete tasks like uploading your first video or sharing videos with friends"\n header="Earn points for using our product"\n icon="cash-stack"\n text-color="#000000"\n >\n </sqm-program-explainer-step>\n <sqm-program-explainer-step\n description="Redeem rewards like one free month of Enterprise or two plane tickets to anywhere in North America"\n header="Redeem rewards with your points"\n icon="people"\n text-color="#000000"\n >\n </sqm-program-explainer-step>\n </sqm-program-explainer>\n <sqm-portal-container\n center\n direction="row"\n display="flex"\n justify-content="space-between"\n gap="xxx-large"\n max-width="100%"\n padding="none"\n >\n <sqm-stat-container space="xxx-large" display="flex">\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsRedeemed/CREDIT/POINTS"\n >\n <p>Points Redeemed</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/POINT/value/global"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n </sqm-portal-container>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-titled-section\n label-margin="small"\n padding="none"\n text-align="center"\n >\n <h3 slot="label">Earn points</h3>\n </sqm-titled-section>\n <sqm-card-feed gap="24" width="347">\n <sqm-task-card\n reward-amount="20"\n goal="1"\n card-title="Complete a Survey"\n description="Fill out our NPS survey and get 20 points for giving us honest feedback."\n button-text="Take survey"\n reward-unit="Points"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="250"\n goal="500"\n show-progress-bar\n card-title="Spend $500"\n description="Earn 250 points when you spend $500 or more."\n button-text="See plans"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n progress-bar-unit="$"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n goal="1"\n reward-amount="50"\n card-title="Follow Us on Twitter"\n description="Earn 50 points when you follow us on Twitter!"\n button-text="Follow"\n button-link="https://twitter.com/"\n open-new-tab="true"\n event-key="socialFollow"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="1"\n reward-unit="Free Month"\n goal="1"\n card-title="Upgrade Your Plan"\n description="Receive one free month for being a committed customer when you upgrade your plan."\n button-text="Upgrade"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n open-new-tab="false"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n </sqm-card-feed>\n <sqm-portal-container\n gap="large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n padding="none"\n text-align="center"\n label-margin="xx-small"\n >\n <h3 slot="label">Reward History</h3>\n </sqm-titled-section>\n <sqm-rewards-table\n per-page="4"\n hidden-columns="0"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-portal-container>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email="support@example.com"\n terms-link="https:\\/\\/example.com"\n faq-link="https:\\/\\/example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n';var instantAccessReferrerShareWidget='<sqm-hero\n background="https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png"\n columns="2"\n padding-size="medium"\n wrap-direction="wrap"\n secondary-background="#FFFFFF"\n min-height="200"\n ><sqm-referral-card\n vertical-alignment="start"\n slot="secondary-column"\n padding-bottom="small"\n padding-left="x-large"\n padding-right="x-large"\n padding-top="small"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="none"\n padding="none"\n slot="header"\n ><h1 slot="label">Invite your friends to unlock rewards!</h1>\n <p slot="content">\n They&#x2019;ll get a &#x24;50 credit towards a new account and\n you&#x2019;ll get a &#x24;50 in credit for each friend you refer.\n </p></sqm-titled-section\n >\n <sqm-portal-container\n gap="small"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n slot="left"\n >\n <p style="margin: 0">Choose how you want to share:</p>\n <sqm-share-link\n tooltip-text="Copied to Clipboard"\n tooltip-lifespan="1000"\n >\n </sqm-share-link>\n <sqm-share-button\n medium="email"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium="linkedin"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium="twitter"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Tweet about us\n </sqm-share-button> </sqm-portal-container\n ><sqm-portal-container\n display="flex"\n slot="footer"\n gap="small"\n justify-content="center"\n >\n <sqm-logout-current-user\n user-identification-text="{email}"\n switch-user-link="#"\n switch-user-text="not you?"\n ></sqm-logout-current-user>\n <sqm-portal-footer\n support-email="support@example.com"\n show-powered-by="true"\n padding-bottom="x-small"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n hide-support-text\n terms-text="Terms And Conditions"\n terms-link="https://example.com"\n ></sqm-portal-footer></sqm-portal-container\n ></sqm-referral-card>\n</sqm-hero>\n';var instantAccessFriendCouponWidget='<sqm-hero\n background="https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png"\n columns="2"\n padding-size="medium"\n wrap-direction="wrap"\n secondary-background="#FFFFFF"\n>\n <sqm-referral-card\n vertical-alignment="start"\n padding-bottom="small"\n padding-left="x-large"\n padding-right="x-large"\n padding-top="small"\n slot="secondary-column"\n >\n <sqm-portal-container\n gap="large"\n direction="column"\n display="flex"\n justify-content="center"\n max-width="100%"\n padding="none"\n slot="header"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="xxx-small"\n padding="none"\n >\n <h1 slot="label">You got &#x24;50 off thanks to a friend!</h1>\n <p slot="content">\n <span> Use this reward to get &#x24;50 off your next purchase. </span>\n </p>\n </sqm-titled-section>\n\n <sqm-coupon-code copy-button-style="button-outside"></sqm-coupon-code>\n </sqm-portal-container>\n\n <sqm-portal-footer\n slot="footer"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n hide-support-text\n terms-text="Terms And Conditions"\n terms-link="https://example.com"\n ></sqm-portal-footer>\n </sqm-referral-card>\n</sqm-hero>\n';var instantAccessReferrerRegistrationWidget='<sqm-hero\n background="https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png"\n columns="2"\n padding-size="medium"\n wrap-direction="wrap"\n secondary-background="#FFFFFF"\n ><sqm-instant-access-registration\n padding-bottom="small"\n padding-left="x-large"\n padding-right="x-large"\n padding-top="small"\n slot="secondary-column"\n ><sqm-titled-section\n text-align="center"\n label-margin="small"\n padding="none"\n slot="top"\n ><div slot="label"><h1>Invite your friends to unlock rewards!</h1></div>\n\n <p slot="content">\n They&#x2019;ll get a &#x24;50 credit towards a new account and\n you&#x2019;ll get a &#x24;50 in credit for each friend you refer.\n </p> </sqm-titled-section\n ><sqm-portal-footer\n slot="bottom"\n support-email="support@example.com"\n show-powered-by="true"\n padding-bottom="x-small"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n hide-support-text\n terms-text="Terms And Conditions"\n terms-link="https://example.com"\n ></sqm-portal-footer\n ></sqm-instant-access-registration>\n</sqm-hero>\n';var instantAccessFriendRegistrationWidget='<sqm-hero\n background="https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png"\n columns="2"\n padding-size="medium"\n wrap-direction="wrap"\n secondary-background="#FFFFFF"\n ><sqm-referred-registration\n slot="secondary-column"\n register-label="Get $50 off"\n padding-bottom="small"\n padding-left="x-large"\n padding-right="x-large"\n padding-top="small"\n ><sqm-titled-section\n text-align="center"\n label-margin="small"\n padding="none"\n slot="top"\n ><h1 slot="label">You got &#x24;50 off thanks to a friend!</h1>\n <p slot="content">\n <span>Use this reward to get &#x24;50 off your next purchase.</span>\n </p>\n </sqm-titled-section>\n <div slot="bottom">\n <p style="text-align: center">*Valid on purchases of &#x24;75 or more</p>\n <sqm-portal-footer\n slot="footer"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n hide-support-text\n terms-text="Terms And Conditions"\n terms-link="https://example.com"\n ></sqm-portal-footer>\n </div> </sqm-referred-registration\n></sqm-hero>\n';var paypalReferralWidget='<sqm-brand brand-color="#4225c4" brand-font="Nunito Sans">\n <sqm-portal-container\n direction="column"\n padding="small"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n background-color="#ffffff"\n >\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-hero-image\n image-url="https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png"\n header="MyCompany Rewards"\n description="Refer a friend and earn up to $1200 in rewards"\n layout="columns"\n image-pos="right"\n background-color="#F9F9F9"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n max-width="770px"\n center\n display="grid"\n >\n <sqm-stat-container space="xxx-large" display="flex">\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/integrationRewardsCountFiltered/AVAILABLE/global"\n >\n <p>Giftcards</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqp-account-details\n schedule-header-text="Schedule"\n integration-alert-text="Looks like this feature is turned off at the moment. Come back later to see if it’s enabled. "\n integration-alert-header="PayPal payouts are currently disabled"\n details-header-text="Payout details"\n pay-pal-account-header-text="PayPal account"\n connect-pay-pal-description-text="Connect your PayPal account to automatically receive payments/cash rewards."\n connect-pay-pal-account-button-text="Connect account"\n w-9-tax-label="Awaiting W-9 tax form"\n upcoming-payment-label="Upcoming"\n recent-payment-label="Recent payment"\n other-currencies-label="other currencies"\n next-payout-label="Next payout"\n next-payment-label="Next payment"\n header-text="PayPal account"\n edit-text="Edit"\n account-label="Account"\n success-message="Success!"\n submit-pay-pal-account-button-text="Connect account"\n pay-pal-email-label-help-text="Enter the email used for your PayPal account."\n pay-pal-email-label="PayPal email"\n modal-connect-pay-pal-account-header="Connect PayPal account"\n disconnect-account-header-text="Disconnect account"\n disconnect-account-description-text="You will not be able to receive payments if you disconnect your PayPal account."\n ></sqp-account-details>\n <sqm-portal-container\n gap="large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="xxx-small"\n padding="none"\n >\n <h3 slot="label">Get rewarded when your friend uses our product</h3>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment="start">\n <sqm-portal-container\n gap="large"\n slot="left"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon="circle">\n <sqm-timeline-entry\n reward="$50"\n unit="visa giftcard"\n desc="Your friend purchases a Business plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$200"\n unit="visa giftcard"\n desc="Our sales team qualifies your friend as a good fit for our Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$1000"\n unit="visa giftcard"\n desc="Your friend purchases an Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n slot="right"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>>Choose how you want to share</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text="Copied to Clipboard"\n tooltip-lifespan="1000"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap="x-small"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-share-button\n medium="email"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium="linkedin"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium="twitter"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n padding="none"\n text-align="center"\n label-margin="xx-small"\n >\n <h3 slot="label">Referral History</h3>\n </sqm-titled-section>\n <sqm-referral-table\n per-page="4"\n hidden-columns="2"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqp-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-blocked-text="Payout blocked on {date}."\n reward-on-hold-text="Payout on hold and in review since {date}."\n reward-paid-out-text="Paid out on {date}."\n reward-payout-failed-text="This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on {date}."\n reward-payout-in-progress-text="Payout processing started on {date}."\n reward-received-text="Reward received on"\n reward-refunded-text="Payout refunded on {date}."\n reward-returned-text="The email you provided does not link to an existing PayPal account. Payout expired on {date}."\n reward-reversed-text="Payout reversed on {date}."\n reward-unclaimed-text="The email you provided does not link to an existing PayPal account. Payout expires on {date}."\n status-long-text="{status, select, INPROGRESS {In Progress} TRANSFERRED {Transferred} AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} REDEEMED {Redeemed on} PENDING {Available on} EXPIRED {Reward expired on} SUCCESS {Paid out on} FAILED {This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on} PAYPAL_PENDING {Payout process started on} UNCLAIMED {The email you provided does not link to an existing PayPal account. Payout expires on} ONHOLD {Payout on hold and in review since} REFUNDED {Payout refunded on} RETURNED {Payout returned on} REVERSED {Payout reversed on} BLOCKED {Payout blocked on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} EXPIRED {Expired} REDEEMED {Redeemed} PENDING {Pending} SUCCESS {Paid Out} FAILED {Failed} PAYPAL_PENDING {In progress} UNCLAIMED {Unclaimed} ONHOLD {In progress} REFUNDED {Refunded} RETURNED {Returned} REVERSED {Reversed} BLOCKED {Blocked} other {Not available} }"\n ></sqp-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n ></sqm-empty>\n </sqm-referral-table>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email="support@example.com"\n terms-link="https:\\/\\/example.com"\n faq-link="https:\\/\\/example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n';var paypalMonoWidget='<sqm-brand brand-color="#4225c4" brand-font="Nunito Sans">\n <sqm-portal-container\n direction="column"\n padding="small"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n background-color="#ffffff"\n >\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-hero-image\n image-url="https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png"\n header="MyCompany Rewards"\n description="Refer friends and complete tasks to earn rewards"\n layout="columns"\n image-pos="right"\n background-color="#F9F9F9"\n image-mobile-pos="top"\n image-percentage="50"\n padding-image="none"\n padding-text="xxxx-large"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n max-width="770px"\n center\n display="grid"\n >\n <sqm-stat-container space="xxx-large" display="flex">\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/integrationRewardsCountFiltered/AVAILABLE/global"\n >\n <p>Giftcards Earned</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/POINT/value/global"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqp-account-details\n schedule-header-text="Schedule"\n integration-alert-text="Looks like this feature is turned off at the moment. Come back later to see if it’s enabled. "\n integration-alert-header="PayPal payouts are currently disabled"\n details-header-text="Payout details"\n pay-pal-account-header-text="PayPal account"\n connect-pay-pal-description-text="Connect your PayPal account to automatically receive payments/cash rewards."\n connect-pay-pal-account-button-text="Connect account"\n w-9-tax-label="Awaiting W-9 tax form"\n upcoming-payment-label="Upcoming"\n recent-payment-label="Recent payment"\n other-currencies-label="other currencies"\n next-payout-label="Next payout"\n next-payment-label="Next payment"\n header-text="PayPal account"\n edit-text="Edit"\n account-label="Account"\n success-message="Success!"\n submit-pay-pal-account-button-text="Connect account"\n pay-pal-email-label-help-text="Enter the email used for your PayPal account."\n pay-pal-email-label="PayPal email"\n modal-connect-pay-pal-account-header="Connect PayPal account"\n disconnect-account-header-text="Disconnect account"\n disconnect-account-description-text="You will not be able to receive payments if you disconnect your PayPal account."\n ></sqp-account-details>\n <sqm-portal-container\n gap="xx-large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="xxx-small"\n padding="none"\n >\n <h3 slot="label">Share $50 with friends</h3>\n <p slot="content">\n They’ll get a $50 credit towards a new account and you’ll get up to\n $1200\n </p>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment="start">\n <sqm-portal-container\n gap="large"\n slot="left"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon="circle">\n <sqm-timeline-entry\n reward="$50"\n unit="visa giftcard"\n desc="Your friend purchases a Business plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$200"\n unit="visa giftcard"\n desc="Our sales team qualifies your friend as a good fit for our Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$1000"\n unit="visa giftcard"\n desc="Your friend purchases an Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n slot="right"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>Choose how you want to share:</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text="Copied to Clipboard"\n tooltip-lifespan="1000"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap="x-small"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-share-button\n medium="email"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium="linkedin"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium="twitter"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n <sqm-portal-container\n gap="xx-large"\n direction="column"\n display="grid"\n max-width="100%"\n min-width=""\n padding="none"\n >\n <sqm-titled-section text-align="center" label-margin="xxx-small">\n <h3 slot="label">Earn more rewards</h3>\n <p slot="content">\n Get points while using our product. Use those points to redeem\n rewards like one free month of Enterprise or two plane tickets to\n anywhere in North America\n </p>\n </sqm-titled-section>\n <sqm-card-feed gap="24" width="347">\n <sqm-task-card\n reward-amount="20"\n goal="1"\n card-title="Complete a Survey"\n description="Fill out our NPS survey and get 20 points for giving us honest feedback."\n button-text="Take survey"\n reward-unit="Points"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="250"\n goal="500"\n show-progress-bar\n card-title="Spend $500"\n description="Earn 250 points when you spend $500 or more."\n button-text="See plans"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n progress-bar-unit="$"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n goal="1"\n reward-amount="50"\n card-title="Follow Us on Twitter"\n description="Earn 50 points when you follow us on Twitter!"\n button-text="Follow"\n button-link="https://twitter.com/"\n open-new-tab="true"\n event-key="socialFollow"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="1"\n reward-unit="Free Month"\n goal="1"\n card-title="Upgrade Your Plan"\n description="Receive one free month for being a committed customer when you upgrade your plan."\n button-text="Upgrade"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n open-new-tab="false"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n </sqm-card-feed>\n </sqm-portal-container>\n <sqm-tabs>\n <sqm-tab header="Referral history">\n <sqm-referral-table\n per-page="4"\n hidden-columns="2"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqp-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-blocked-text="Payout blocked on {date}."\n reward-on-hold-text="Payout on hold and in review since {date}."\n reward-paid-out-text="Paid out on {date}."\n reward-payout-failed-text="This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on {date}."\n reward-payout-in-progress-text="Payout processing started on {date}."\n reward-received-text="Reward received on"\n reward-refunded-text="Payout refunded on {date}."\n reward-returned-text="The email you provided does not link to an existing PayPal account. Payout expired on {date}."\n reward-reversed-text="Payout reversed on {date}."\n reward-unclaimed-text="The email you provided does not link to an existing PayPal account. Payout expires on {date}."\n status-long-text="{status, select, INPROGRESS {In Progress} TRANSFERRED {Transferred} AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} REDEEMED {Redeemed on} PENDING {Available on} EXPIRED {Reward expired on} SUCCESS {Paid out on} FAILED {This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on} PAYPAL_PENDING {Payout process started on} UNCLAIMED {The email you provided does not link to an existing PayPal account. Payout expires on} ONHOLD {Payout on hold and in review since} REFUNDED {Payout refunded on} RETURNED {Payout returned on} REVERSED {Payout reversed on} BLOCKED {Payout blocked on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} EXPIRED {Expired} REDEEMED {Redeemed} PENDING {Pending} SUCCESS {Paid Out} FAILED {Failed} PAYPAL_PENDING {In progress} UNCLAIMED {Unclaimed} ONHOLD {In progress} REFUNDED {Refunded} RETURNED {Returned} REVERSED {Reversed} BLOCKED {Blocked} other {Not available} }"\n ></sqp-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty>\n </sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n per-page="4"\n program-id=""\n hidden-columns="0"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqp-status-column\n column-title="Status"\n expiry-text="Expires on "\n pending-scheduled="Until"\n pending-unhandled="Fulfillment error"\n pending-us-tax="W-9 required"\n reward-blocked-text="Payout blocked on"\n reward-on-hold-text="Payout on hold and in review since"\n reward-paid-out-text="Paid out on"\n reward-payout-failed-text="This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on"\n reward-payout-in-progress-text="Payout processing started on"\n reward-refunded-text="Payout refunded on"\n reward-returned-text="The email you provided does not link to an existing PayPal account. Payout expired on"\n reward-reversed-text="Payout reversed on"\n reward-unclaimed-text="The email you provided does not link to an existing PayPal account. Payout expires on"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} EXPIRED {Expired} REDEEMED {Redeemed} PENDING {Pending} SUCCESS {Paid Out} FAILED {Failed} PAYPAL_PENDING {In progress} UNCLAIMED {Unclaimed} ONHOLD {In progress} REFUNDED {Refunded} RETURNED {Returned} REVERSED {Reversed} BLOCKED {Blocked} other {Not available} }"\n ></sqp-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-tab>\n </sqm-tabs>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n';function Buttons(e){var t=e.callbacks,n=e.states,a=e.template;return h("div",null,h("button",{onClick:function(){return t.setPreviewTemplate(n.editedTemplate)}},"Update Preview"),h("button",{style:{marginLeft:"10px"},onClick:function(){return t.setPreviewTemplate(a)}},"Preview Dashboard"))}function DefaultTemplateView(e){var t=e.states,n=e.callbacks;return h("div",{style:{height:"50vh"}},h("textarea",{style:{width:"100%",height:"300px"},onChange:function(e){return n.setEditedTemplate(e.target.value)}},t.editedTemplate),h(Buttons,{states:t,callbacks:n,template:e.template}),h("h2",null,"Navigation"),h("div",{style:{display:"grid",gridTemplateColumns:"repeat(9, 80px)",gridGap:"10px"}},h("button",{onClick:function(){return hn.push("/")}},"Dashboard"),e.leadSubmit&&h("button",{onClick:function(){return hn.push("/refer")}},"Submit a Referral"),h("button",{onClick:function(){return hn.push("/activity")}},"Activity"),h("button",{onClick:function(){return hn.push("/editProfile")}},"Edit Profile"),h("button",{onClick:function(){return hn.push("/login")}},"Login"),h("button",{onClick:function(){return hn.push("/register")}},"Register"),h("button",{onClick:function(){return hn.push("/emailVerification")}},"Email Verification"),h("button",{onClick:function(){return hn.push("/verifyEmail")}},"Verify Email"),h("button",{onClick:function(){return hn.push("/forgotPassword")}},"Forgot Password"),h("button",{onClick:function(){return hn.push("/resetPassword")}},"Reset Password")),h("br",null),h("div",{innerHTML:t.previewTemplate}))}var marked=createCommonjsModule((function(e,t){(function(t,n){e.exports=n()})(commonjsGlobal,(function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||false;a.configurable=true;if("value"in a)a.writable=true;Object.defineProperty(e,a.key,a)}}function t(t,n,a){if(n)e(t.prototype,n);if(a)e(t,a);return t}function n(e,t){if(!e)return;if(typeof e==="string")return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor)n=e.constructor.name;if(n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}function a(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function r(e,t){var a=typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(a)return(a=a.call(e)).next.bind(a);if(Array.isArray(e)||(a=n(e))||t&&e&&typeof e.length==="number"){if(a)e=a;var r=0;return function(){if(r>=e.length)return{done:true};return{done:false,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s={exports:{}};function i(){return{baseUrl:null,breaks:false,extensions:null,gfm:true,headerIds:true,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:true,pedantic:false,renderer:null,sanitize:false,sanitizer:null,silent:false,smartLists:false,smartypants:false,tokenizer:null,walkTokens:null,xhtml:false}}function o(e){s.exports.defaults=e}s.exports={defaults:i(),getDefaults:i,changeDefaults:o};var l=/[&<>"']/;var d=/[&<>"']/g;var u=/[<>"']|&(?!#?\w+;)/;var c=/[<>"']|&(?!#?\w+;)/g;var m={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};var h=function e(t){return m[t]};function p(e,t){if(t){if(l.test(e)){return e.replace(d,h)}}else{if(u.test(e)){return e.replace(c,h)}}return e}var g=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function f(e){return e.replace(g,(function(e,t){t=t.toLowerCase();if(t==="colon")return":";if(t.charAt(0)==="#"){return t.charAt(1)==="x"?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1))}return""}))}var b=/(^|[^\[])\^/g;function w(e,t){e=e.source||e;t=t||"";var n={replace:function t(a,r){r=r.source||r;r=r.replace(b,"$1");e=e.replace(a,r);return n},getRegex:function n(){return new RegExp(e,t)}};return n}var v=/[^\w:]/g;var x=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function y(e,t,n){if(e){var a;try{a=decodeURIComponent(f(n)).replace(v,"").toLowerCase()}catch(e){return null}if(a.indexOf("javascript:")===0||a.indexOf("vbscript:")===0||a.indexOf("data:")===0){return null}}if(t&&!x.test(n)){n=T(t,n)}try{n=encodeURI(n).replace(/%25/g,"%")}catch(e){return null}return n}var C={};var E=/^[^:]+:\/*[^/]*$/;var k=/^([^:]+:)[\s\S]*$/;var A=/^([^:]+:\/*[^/]*)[\s\S]*$/;function T(e,t){if(!C[" "+e]){if(E.test(e)){C[" "+e]=e+"/"}else{C[" "+e]=_(e,"/",true)}}e=C[" "+e];var n=e.indexOf(":")===-1;if(t.substring(0,2)==="//"){if(n){return t}return e.replace(k,"$1")+t}else if(t.charAt(0)==="/"){if(n){return t}return e.replace(A,"$1")+t}else{return e+t}}var q={exec:function e(){}};function R(e){var t=1,n,a;for(;t<arguments.length;t++){n=arguments[t];for(a in n){if(Object.prototype.hasOwnProperty.call(n,a)){e[a]=n[a]}}}return e}function D(e,t){var n=e.replace(/\|/g,(function(e,t,n){var a=false,r=t;while(--r>=0&&n[r]==="\\"){a=!a}if(a){return"|"}else{return" |"}})),a=n.split(/ \|/);var r=0;if(!a[0].trim()){a.shift()}if(!a[a.length-1].trim()){a.pop()}if(a.length>t){a.splice(t)}else{while(a.length<t){a.push("")}}for(;r<a.length;r++){a[r]=a[r].trim().replace(/\\\|/g,"|")}return a}function _(e,t,n){var a=e.length;if(a===0){return""}var r=0;while(r<a){var s=e.charAt(a-r-1);if(s===t&&!n){r++}else if(s!==t&&n){r++}else{break}}return e.substr(0,a-r)}function S(e,t){if(e.indexOf(t[1])===-1){return-1}var n=e.length;var a=0,r=0;for(;r<n;r++){if(e[r]==="\\"){r++}else if(e[r]===t[0]){a++}else if(e[r]===t[1]){a--;if(a<0){return r}}}return-1}function P(e){if(e&&e.sanitize&&!e.silent){console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}}function I(e,t){if(t<1){return""}var n="";while(t>1){if(t&1){n+=e}t>>=1;e+=e}return n+e}var F={escape:p,unescape:f,edit:w,cleanUrl:y,resolveUrl:T,noopTest:q,merge:R,splitCells:D,rtrim:_,findClosingBracket:S,checkSanitizeDeprecation:P,repeatString:I};var L=s.exports.defaults;var N=F.rtrim,B=F.splitCells,O=F.escape,V=F.findClosingBracket;function G(e,t,n,a){var r=t.href;var s=t.title?O(t.title):null;var i=e[1].replace(/\\([\[\]])/g,"$1");if(e[0].charAt(0)!=="!"){a.state.inLink=true;var o={type:"link",raw:n,href:r,title:s,text:i,tokens:a.inlineTokens(i,[])};a.state.inLink=false;return o}else{return{type:"image",raw:n,href:r,title:s,text:O(i)}}}function $(e,t){var n=e.match(/^(\s+)(?:```)/);if(n===null){return t}var a=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);if(t===null){return e}var n=t[0];if(n.length>=a.length){return e.slice(a.length)}return e})).join("\n")}var M=function(){function e(e){this.options=e||L}var t=e.prototype;t.space=function e(t){var n=this.rules.block.newline.exec(t);if(n){if(n[0].length>1){return{type:"space",raw:n[0]}}return{raw:"\n"}}};t.code=function e(t){var n=this.rules.block.code.exec(t);if(n){var a=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:!this.options.pedantic?N(a,"\n"):a}}};t.fences=function e(t){var n=this.rules.block.fences.exec(t);if(n){var a=n[0];var r=$(a,n[3]||"");return{type:"code",raw:a,lang:n[2]?n[2].trim():n[2],text:r}}};t.heading=function e(t){var n=this.rules.block.heading.exec(t);if(n){var a=n[2].trim();if(/#$/.test(a)){var r=N(a,"#");if(this.options.pedantic){a=r.trim()}else if(!r||/ $/.test(r)){a=r.trim()}}var s={type:"heading",raw:n[0],depth:n[1].length,text:a,tokens:[]};this.lexer.inline(s.text,s.tokens);return s}};t.hr=function e(t){var n=this.rules.block.hr.exec(t);if(n){return{type:"hr",raw:n[0]}}};t.blockquote=function e(t){var n=this.rules.block.blockquote.exec(t);if(n){var a=n[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:n[0],tokens:this.lexer.blockTokens(a,[]),text:a}}};t.list=function e(t){var n=this.rules.block.list.exec(t);if(n){var a,r,s,i,o,l,d,u,c,m;var h=n[1].trim();var p=h.length>1;var e={type:"list",raw:"",ordered:p,start:p?+h.slice(0,-1):"",loose:false,items:[]};h=p?"\\d{1,9}\\"+h.slice(-1):"\\"+h;if(this.options.pedantic){h=p?h:"[*+-]"}var g=new RegExp("^( {0,3}"+h+")((?: [^\\n]*| *)(?:\\n[^\\n]*)*(?:\\n|$))");while(t){if(this.rules.block.hr.test(t)){break}if(!(n=g.exec(t))){break}c=n[2].split("\n");if(this.options.pedantic){i=2;m=c[0].trimLeft()}else{i=n[2].search(/[^ ]/);i=n[1].length+(i>4?1:i);m=c[0].slice(i-n[1].length)}l=false;a=n[0];if(!c[0]&&/^ *$/.test(c[1])){a=n[1]+c.slice(0,2).join("\n")+"\n";e.loose=true;c=[]}var f=new RegExp("^ {0,"+Math.min(3,i-1)+"}(?:[*+-]|\\d{1,9}[.)])");for(o=1;o<c.length;o++){u=c[o];if(this.options.pedantic){u=u.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")}if(f.test(u)){a=n[1]+c.slice(0,o).join("\n")+"\n";break}if(!l){if(!u.trim()){l=true}if(u.search(/[^ ]/)>=i){m+="\n"+u.slice(i)}else{m+="\n"+u}continue}if(u.search(/[^ ]/)>=i||!u.trim()){m+="\n"+u.slice(i);continue}else{a=n[1]+c.slice(0,o).join("\n")+"\n";break}}if(!e.loose){if(d){e.loose=true}else if(/\n *\n *$/.test(a)){d=true}}if(this.options.gfm){r=/^\[[ xX]\] /.exec(m);if(r){s=r[0]!=="[ ] ";m=m.replace(/^\[[ xX]\] +/,"")}}e.items.push({type:"list_item",raw:a,task:!!r,checked:s,loose:false,text:m});e.raw+=a;t=t.slice(a.length)}e.items[e.items.length-1].raw=a.trimRight();e.items[e.items.length-1].text=m.trimRight();e.raw=e.raw.trimRight();var b=e.items.length;for(o=0;o<b;o++){this.lexer.state.top=false;e.items[o].tokens=this.lexer.blockTokens(e.items[o].text,[]);if(e.items[o].tokens.some((function(e){return e.type==="space"}))){e.loose=true;e.items[o].loose=true}}return e}};t.html=function e(t){var n=this.rules.block.html.exec(t);if(n){var a={type:"html",raw:n[0],pre:!this.options.sanitizer&&(n[1]==="pre"||n[1]==="script"||n[1]==="style"),text:n[0]};if(this.options.sanitize){a.type="paragraph";a.text=this.options.sanitizer?this.options.sanitizer(n[0]):O(n[0]);a.tokens=[];this.lexer.inline(a.text,a.tokens)}return a}};t.def=function e(t){var n=this.rules.block.def.exec(t);if(n){if(n[3])n[3]=n[3].substring(1,n[3].length-1);var a=n[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:a,raw:n[0],href:n[2],title:n[3]}}};t.table=function e(t){var n=this.rules.block.table.exec(t);if(n){var a={type:"table",header:B(n[1]).map((function(e){return{text:e}})),align:n[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:n[3]?n[3].replace(/\n$/,"").split("\n"):[]};if(a.header.length===a.align.length){a.raw=n[0];var r=a.align.length;var s,i,o,l;for(s=0;s<r;s++){if(/^ *-+: *$/.test(a.align[s])){a.align[s]="right"}else if(/^ *:-+: *$/.test(a.align[s])){a.align[s]="center"}else if(/^ *:-+ *$/.test(a.align[s])){a.align[s]="left"}else{a.align[s]=null}}r=a.rows.length;for(s=0;s<r;s++){a.rows[s]=B(a.rows[s],a.header.length).map((function(e){return{text:e}}))}r=a.header.length;for(i=0;i<r;i++){a.header[i].tokens=[];this.lexer.inlineTokens(a.header[i].text,a.header[i].tokens)}r=a.rows.length;for(i=0;i<r;i++){l=a.rows[i];for(o=0;o<l.length;o++){l[o].tokens=[];this.lexer.inlineTokens(l[o].text,l[o].tokens)}}return a}}};t.lheading=function e(t){var n=this.rules.block.lheading.exec(t);if(n){var a={type:"heading",raw:n[0],depth:n[2].charAt(0)==="="?1:2,text:n[1],tokens:[]};this.lexer.inline(a.text,a.tokens);return a}};t.paragraph=function e(t){var n=this.rules.block.paragraph.exec(t);if(n){var a={type:"paragraph",raw:n[0],text:n[1].charAt(n[1].length-1)==="\n"?n[1].slice(0,-1):n[1],tokens:[]};this.lexer.inline(a.text,a.tokens);return a}};t.text=function e(t){var n=this.rules.block.text.exec(t);if(n){var a={type:"text",raw:n[0],text:n[0],tokens:[]};this.lexer.inline(a.text,a.tokens);return a}};t.escape=function e(t){var n=this.rules.inline.escape.exec(t);if(n){return{type:"escape",raw:n[0],text:O(n[1])}}};t.tag=function e(t){var n=this.rules.inline.tag.exec(t);if(n){if(!this.lexer.state.inLink&&/^<a /i.test(n[0])){this.lexer.state.inLink=true}else if(this.lexer.state.inLink&&/^<\/a>/i.test(n[0])){this.lexer.state.inLink=false}if(!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])){this.lexer.state.inRawBlock=true}else if(this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])){this.lexer.state.inRawBlock=false}return{type:this.options.sanitize?"text":"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):O(n[0]):n[0]}}};t.link=function e(t){var n=this.rules.inline.link.exec(t);if(n){var a=n[2].trim();if(!this.options.pedantic&&/^</.test(a)){if(!/>$/.test(a)){return}var r=N(a.slice(0,-1),"\\");if((a.length-r.length)%2===0){return}}else{var s=V(n[2],"()");if(s>-1){var i=n[0].indexOf("!")===0?5:4;var o=i+n[1].length+s;n[2]=n[2].substring(0,s);n[0]=n[0].substring(0,o).trim();n[3]=""}}var l=n[2];var d="";if(this.options.pedantic){var e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(l);if(e){l=e[1];d=e[3]}}else{d=n[3]?n[3].slice(1,-1):""}l=l.trim();if(/^</.test(l)){if(this.options.pedantic&&!/>$/.test(a)){l=l.slice(1)}else{l=l.slice(1,-1)}}return G(n,{href:l?l.replace(this.rules.inline._escapes,"$1"):l,title:d?d.replace(this.rules.inline._escapes,"$1"):d},n[0],this.lexer)}};t.reflink=function e(t,n){var a;if((a=this.rules.inline.reflink.exec(t))||(a=this.rules.inline.nolink.exec(t))){var r=(a[2]||a[1]).replace(/\s+/g," ");r=n[r.toLowerCase()];if(!r||!r.href){var s=a[0].charAt(0);return{type:"text",raw:s,text:s}}return G(a,r,a[0],this.lexer)}};t.emStrong=function e(t,n,a){if(a===void 0){a=""}var r=this.rules.inline.emStrong.lDelim.exec(t);if(!r)return;if(r[3]&&a.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))return;var s=r[1]||r[2]||"";if(!s||s&&(a===""||this.rules.inline.punctuation.exec(a))){var i=r[0].length-1;var o,l,d=i,u=0;var c=r[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;c.lastIndex=0;n=n.slice(-1*t.length+i);while((r=c.exec(n))!=null){o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6];if(!o)continue;l=o.length;if(r[3]||r[4]){d+=l;continue}else if(r[5]||r[6]){if(i%3&&!((i+l)%3)){u+=l;continue}}d-=l;if(d>0)continue;l=Math.min(l,l+d+u);if(Math.min(i,l)%2){var m=t.slice(1,i+r.index+l);return{type:"em",raw:t.slice(0,i+r.index+l+1),text:m,tokens:this.lexer.inlineTokens(m,[])}}var h=t.slice(2,i+r.index+l-1);return{type:"strong",raw:t.slice(0,i+r.index+l+1),text:h,tokens:this.lexer.inlineTokens(h,[])}}}};t.codespan=function e(t){var n=this.rules.inline.code.exec(t);if(n){var a=n[2].replace(/\n/g," ");var r=/[^ ]/.test(a);var s=/^ /.test(a)&&/ $/.test(a);if(r&&s){a=a.substring(1,a.length-1)}a=O(a,true);return{type:"codespan",raw:n[0],text:a}}};t.br=function e(t){var n=this.rules.inline.br.exec(t);if(n){return{type:"br",raw:n[0]}}};t.del=function e(t){var n=this.rules.inline.del.exec(t);if(n){return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2],[])}}};t.autolink=function e(t,n){var a=this.rules.inline.autolink.exec(t);if(a){var r,s;if(a[2]==="@"){r=O(this.options.mangle?n(a[1]):a[1]);s="mailto:"+r}else{r=O(a[1]);s=r}return{type:"link",raw:a[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}};t.url=function e(t,n){var a;if(a=this.rules.inline.url.exec(t)){var r,s;if(a[2]==="@"){r=O(this.options.mangle?n(a[0]):a[0]);s="mailto:"+r}else{var i;do{i=a[0];a[0]=this.rules.inline._backpedal.exec(a[0])[0]}while(i!==a[0]);r=O(a[0]);if(a[1]==="www."){s="http://"+r}else{s=r}}return{type:"link",raw:a[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}};t.inlineText=function e(t,n){var a=this.rules.inline.text.exec(t);if(a){var r;if(this.lexer.state.inRawBlock){r=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(a[0]):O(a[0]):a[0]}else{r=O(this.options.smartypants?n(a[0]):a[0])}return{type:"text",raw:a[0],text:r}}};return e}();var W=F.noopTest,U=F.edit,j=F.merge;var H={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:"+"<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)"+"|comment[^\\n]*(\\n+|$)"+"|<\\?[\\s\\S]*?(?:\\?>\\n*|$)"+"|<![A-Z][\\s\\S]*?(?:>\\n*|$)"+"|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)"+"|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)"+"|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)"+"|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)"+")",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:W,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/};H._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/;H._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;H.def=U(H.def).replace("label",H._label).replace("title",H._title).getRegex();H.bullet=/(?:[*+-]|\d{1,9}[.)])/;H.listItemStart=U(/^( *)(bull) */).replace("bull",H.bullet).getRegex();H.list=U(H.list).replace(/bull/g,H.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+H.def.source+")").getRegex();H._tag="address|article|aside|base|basefont|blockquote|body|caption"+"|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption"+"|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe"+"|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option"+"|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr"+"|track|ul";H._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/;H.html=U(H.html,"i").replace("comment",H._comment).replace("tag",H._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();H.paragraph=U(H._paragraph).replace("hr",H.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",H._tag).getRegex();H.blockquote=U(H.blockquote).replace("paragraph",H.paragraph).getRegex();H.normal=j({},H);H.gfm=j({},H.normal,{table:"^ *([^\\n ].*\\|.*)\\n"+" {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?"+"(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});H.gfm.table=U(H.gfm.table).replace("hr",H.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",H._tag).getRegex();H.pedantic=j({},H.normal,{html:U("^ *(?:comment *(?:\\n|\\s*$)"+"|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)"+"|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",H._comment).replace(/tag/g,"(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub"+"|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)"+"\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:W,paragraph:U(H.normal._paragraph).replace("hr",H.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",H.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var z={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:W,tag:"^comment"+"|^</[a-zA-Z][\\w:-]*\\s*>"+"|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>"+"|^<\\?[\\s\\S]*?\\?>"+"|^<![a-zA-Z]+\\s[\\s\\S]*?>"+"|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:W,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};z._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~";z.punctuation=U(z.punctuation).replace(/punctuation/g,z._punctuation).getRegex();z.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;z.escapedEmSt=/\\\*|\\_/g;z._comment=U(H._comment).replace("(?:--\x3e|$)","--\x3e").getRegex();z.emStrong.lDelim=U(z.emStrong.lDelim).replace(/punct/g,z._punctuation).getRegex();z.emStrong.rDelimAst=U(z.emStrong.rDelimAst,"g").replace(/punct/g,z._punctuation).getRegex();z.emStrong.rDelimUnd=U(z.emStrong.rDelimUnd,"g").replace(/punct/g,z._punctuation).getRegex();z._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;z._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;z._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;z.autolink=U(z.autolink).replace("scheme",z._scheme).replace("email",z._email).getRegex();z._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;z.tag=U(z.tag).replace("comment",z._comment).replace("attribute",z._attribute).getRegex();z._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;z._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;z._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;z.link=U(z.link).replace("label",z._label).replace("href",z._href).replace("title",z._title).getRegex();z.reflink=U(z.reflink).replace("label",z._label).getRegex();z.reflinkSearch=U(z.reflinkSearch,"g").replace("reflink",z.reflink).replace("nolink",z.nolink).getRegex();z.normal=j({},z);z.pedantic=j({},z.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:U(/^!?\[(label)\]\((.*?)\)/).replace("label",z._label).getRegex(),reflink:U(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",z._label).getRegex()});z.gfm=j({},z.normal,{escape:U(z.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/});z.gfm.url=U(z.gfm.url,"i").replace("email",z.gfm._extended_email).getRegex();z.breaks=j({},z.gfm,{br:U(z.br).replace("{2,}","*").getRegex(),text:U(z.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var Y={block:H,inline:z};var K=M;var J=s.exports.defaults;var X=Y.block,Q=Y.inline;var Z=F.repeatString;function ee(e){return e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function te(e){var t="",n,a;var r=e.length;for(n=0;n<r;n++){a=e.charCodeAt(n);if(Math.random()>.5){a="x"+a.toString(16)}t+="&#"+a+";"}return t}var ne=function(){function e(e){this.tokens=[];this.tokens.links=Object.create(null);this.options=e||J;this.options.tokenizer=this.options.tokenizer||new K;this.tokenizer=this.options.tokenizer;this.tokenizer.options=this.options;this.tokenizer.lexer=this;this.inlineQueue=[];this.state={inLink:false,inRawBlock:false,top:true};var t={block:X.normal,inline:Q.normal};if(this.options.pedantic){t.block=X.pedantic;t.inline=Q.pedantic}else if(this.options.gfm){t.block=X.gfm;if(this.options.breaks){t.inline=Q.breaks}else{t.inline=Q.gfm}}this.tokenizer.rules=t}e.lex=function t(n,a){var r=new e(a);return r.lex(n)};e.lexInline=function t(n,a){var r=new e(a);return r.inlineTokens(n)};var n=e.prototype;n.lex=function e(t){t=t.replace(/\r\n|\r/g,"\n").replace(/\t/g," ");this.blockTokens(t,this.tokens);var n;while(n=this.inlineQueue.shift()){this.inlineTokens(n.src,n.tokens)}return this.tokens};n.blockTokens=function e(t,n){var a=this;if(n===void 0){n=[]}if(this.options.pedantic){t=t.replace(/^ +$/gm,"")}var r,s,i,o;while(t){if(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((function(e){if(r=e.call({lexer:a},t,n)){t=t.substring(r.raw.length);n.push(r);return true}return false}))){continue}if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length);if(r.type){n.push(r)}continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length);s=n[n.length-1];if(s&&(s.type==="paragraph"||s.type==="text")){s.raw+="\n"+r.raw;s.text+="\n"+r.text;this.inlineQueue[this.inlineQueue.length-1].src=s.text}else{n.push(r)}continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length);s=n[n.length-1];if(s&&(s.type==="paragraph"||s.type==="text")){s.raw+="\n"+r.raw;s.text+="\n"+r.raw;this.inlineQueue[this.inlineQueue.length-1].src=s.text}else if(!this.tokens.links[r.tag]){this.tokens.links[r.tag]={href:r.href,title:r.title}}continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length);n.push(r);continue}i=t;if(this.options.extensions&&this.options.extensions.startBlock){(function(){var e=Infinity;var n=t.slice(1);var r=void 0;a.options.extensions.startBlock.forEach((function(t){r=t.call({lexer:this},n);if(typeof r==="number"&&r>=0){e=Math.min(e,r)}}));if(e<Infinity&&e>=0){i=t.substring(0,e+1)}})()}if(this.state.top&&(r=this.tokenizer.paragraph(i))){s=n[n.length-1];if(o&&s.type==="paragraph"){s.raw+="\n"+r.raw;s.text+="\n"+r.text;this.inlineQueue.pop();this.inlineQueue[this.inlineQueue.length-1].src=s.text}else{n.push(r)}o=i.length!==t.length;t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length);s=n[n.length-1];if(s&&s.type==="text"){s.raw+="\n"+r.raw;s.text+="\n"+r.text;this.inlineQueue.pop();this.inlineQueue[this.inlineQueue.length-1].src=s.text}else{n.push(r)}continue}if(t){var l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else{throw new Error(l)}}}this.state.top=true;return n};n.inline=function e(t,n){this.inlineQueue.push({src:t,tokens:n})};n.inlineTokens=function e(t,n){var a=this;if(n===void 0){n=[]}var r,s,i;var o=t;var l;var d,u;if(this.tokens.links){var c=Object.keys(this.tokens.links);if(c.length>0){while((l=this.tokenizer.rules.inline.reflinkSearch.exec(o))!=null){if(c.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))){o=o.slice(0,l.index)+"["+Z("a",l[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex)}}}}while((l=this.tokenizer.rules.inline.blockSkip.exec(o))!=null){o=o.slice(0,l.index)+"["+Z("a",l[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.blockSkip.lastIndex)}while((l=this.tokenizer.rules.inline.escapedEmSt.exec(o))!=null){o=o.slice(0,l.index)+"++"+o.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex)}while(t){if(!d){u=""}d=false;if(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(e){if(r=e.call({lexer:a},t,n)){t=t.substring(r.raw.length);n.push(r);return true}return false}))){continue}if(r=this.tokenizer.escape(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.tag(t)){t=t.substring(r.raw.length);s=n[n.length-1];if(s&&r.type==="text"&&s.type==="text"){s.raw+=r.raw;s.text+=r.text}else{n.push(r)}continue}if(r=this.tokenizer.link(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(r.raw.length);s=n[n.length-1];if(s&&r.type==="text"&&s.type==="text"){s.raw+=r.raw;s.text+=r.text}else{n.push(r)}continue}if(r=this.tokenizer.emStrong(t,o,u)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.codespan(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.br(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.del(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.autolink(t,te)){t=t.substring(r.raw.length);n.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(t,te))){t=t.substring(r.raw.length);n.push(r);continue}i=t;if(this.options.extensions&&this.options.extensions.startInline){(function(){var e=Infinity;var n=t.slice(1);var r=void 0;a.options.extensions.startInline.forEach((function(t){r=t.call({lexer:this},n);if(typeof r==="number"&&r>=0){e=Math.min(e,r)}}));if(e<Infinity&&e>=0){i=t.substring(0,e+1)}})()}if(r=this.tokenizer.inlineText(i,ee)){t=t.substring(r.raw.length);if(r.raw.slice(-1)!=="_"){u=r.raw.slice(-1)}d=true;s=n[n.length-1];if(s&&s.type==="text"){s.raw+=r.raw;s.text+=r.text}else{n.push(r)}continue}if(t){var m="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(m);break}else{throw new Error(m)}}}return n};t(e,null,[{key:"rules",get:function e(){return{block:X,inline:Q}}}]);return e}();var ae=s.exports.defaults;var re=F.cleanUrl,se=F.escape;var ie=function(){function e(e){this.options=e||ae}var t=e.prototype;t.code=function e(t,n,a){var r=(n||"").match(/\S*/)[0];if(this.options.highlight){var s=this.options.highlight(t,r);if(s!=null&&s!==t){a=true;t=s}}t=t.replace(/\n$/,"")+"\n";if(!r){return"<pre><code>"+(a?t:se(t,true))+"</code></pre>\n"}return'<pre><code class="'+this.options.langPrefix+se(r,true)+'">'+(a?t:se(t,true))+"</code></pre>\n"};t.blockquote=function e(t){return"<blockquote>\n"+t+"</blockquote>\n"};t.html=function e(t){return t};t.heading=function e(t,n,a,r){if(this.options.headerIds){return"<h"+n+' id="'+this.options.headerPrefix+r.slug(a)+'">'+t+"</h"+n+">\n"}return"<h"+n+">"+t+"</h"+n+">\n"};t.hr=function e(){return this.options.xhtml?"<hr/>\n":"<hr>\n"};t.list=function e(t,n,a){var r=n?"ol":"ul",s=n&&a!==1?' start="'+a+'"':"";return"<"+r+s+">\n"+t+"</"+r+">\n"};t.listitem=function e(t){return"<li>"+t+"</li>\n"};t.checkbox=function e(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "};t.paragraph=function e(t){return"<p>"+t+"</p>\n"};t.table=function e(t,n){if(n)n="<tbody>"+n+"</tbody>";return"<table>\n"+"<thead>\n"+t+"</thead>\n"+n+"</table>\n"};t.tablerow=function e(t){return"<tr>\n"+t+"</tr>\n"};t.tablecell=function e(t,n){var a=n.header?"th":"td";var r=n.align?"<"+a+' align="'+n.align+'">':"<"+a+">";return r+t+"</"+a+">\n"};t.strong=function e(t){return"<strong>"+t+"</strong>"};t.em=function e(t){return"<em>"+t+"</em>"};t.codespan=function e(t){return"<code>"+t+"</code>"};t.br=function e(){return this.options.xhtml?"<br/>":"<br>"};t.del=function e(t){return"<del>"+t+"</del>"};t.link=function e(t,n,a){t=re(this.options.sanitize,this.options.baseUrl,t);if(t===null){return a}var r='<a href="'+se(t)+'"';if(n){r+=' title="'+n+'"'}r+=">"+a+"</a>";return r};t.image=function e(t,n,a){t=re(this.options.sanitize,this.options.baseUrl,t);if(t===null){return a}var r='<img src="'+t+'" alt="'+a+'"';if(n){r+=' title="'+n+'"'}r+=this.options.xhtml?"/>":">";return r};t.text=function e(t){return t};return e}();var oe=function(){function e(){}var t=e.prototype;t.strong=function e(t){return t};t.em=function e(t){return t};t.codespan=function e(t){return t};t.del=function e(t){return t};t.html=function e(t){return t};t.text=function e(t){return t};t.link=function e(t,n,a){return""+a};t.image=function e(t,n,a){return""+a};t.br=function e(){return""};return e}();var le=function(){function e(){this.seen={}}var t=e.prototype;t.serialize=function e(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")};t.getNextSafeSlug=function e(t,n){var a=t;var r=0;if(this.seen.hasOwnProperty(a)){r=this.seen[t];do{r++;a=t+"-"+r}while(this.seen.hasOwnProperty(a))}if(!n){this.seen[t]=r;this.seen[a]=0}return a};t.slug=function e(t,n){if(n===void 0){n={}}var e=this.serialize(t);return this.getNextSafeSlug(e,n.dryrun)};return e}();var de=ie;var ue=oe;var ce=le;var me=s.exports.defaults;var he=F.unescape;var pe=function(){function e(e){this.options=e||me;this.options.renderer=this.options.renderer||new de;this.renderer=this.options.renderer;this.renderer.options=this.options;this.textRenderer=new ue;this.slugger=new ce}e.parse=function t(n,a){var r=new e(a);return r.parse(n)};e.parseInline=function t(n,a){var r=new e(a);return r.parseInline(n)};var t=e.prototype;t.parse=function e(t,n){if(n===void 0){n=true}var a="",r,s,i,o,l,d,u,c,m,h,p,g,f,b,w,v,x,y,C;var E=t.length;for(r=0;r<E;r++){h=t[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[h.type]){C=this.options.extensions.renderers[h.type].call({parser:this},h);if(C!==false||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(h.type)){a+=C||"";continue}}switch(h.type){case"space":{continue}case"hr":{a+=this.renderer.hr();continue}case"heading":{a+=this.renderer.heading(this.parseInline(h.tokens),h.depth,he(this.parseInline(h.tokens,this.textRenderer)),this.slugger);continue}case"code":{a+=this.renderer.code(h.text,h.lang,h.escaped);continue}case"table":{c="";u="";o=h.header.length;for(s=0;s<o;s++){u+=this.renderer.tablecell(this.parseInline(h.header[s].tokens),{header:true,align:h.align[s]})}c+=this.renderer.tablerow(u);m="";o=h.rows.length;for(s=0;s<o;s++){d=h.rows[s];u="";l=d.length;for(i=0;i<l;i++){u+=this.renderer.tablecell(this.parseInline(d[i].tokens),{header:false,align:h.align[i]})}m+=this.renderer.tablerow(u)}a+=this.renderer.table(c,m);continue}case"blockquote":{m=this.parse(h.tokens);a+=this.renderer.blockquote(m);continue}case"list":{p=h.ordered;g=h.start;f=h.loose;o=h.items.length;m="";for(s=0;s<o;s++){w=h.items[s];v=w.checked;x=w.task;b="";if(w.task){y=this.renderer.checkbox(v);if(f){if(w.tokens.length>0&&w.tokens[0].type==="paragraph"){w.tokens[0].text=y+" "+w.tokens[0].text;if(w.tokens[0].tokens&&w.tokens[0].tokens.length>0&&w.tokens[0].tokens[0].type==="text"){w.tokens[0].tokens[0].text=y+" "+w.tokens[0].tokens[0].text}}else{w.tokens.unshift({type:"text",text:y})}}else{b+=y}}b+=this.parse(w.tokens,f);m+=this.renderer.listitem(b,x,v)}a+=this.renderer.list(m,p,g);continue}case"html":{a+=this.renderer.html(h.text);continue}case"paragraph":{a+=this.renderer.paragraph(this.parseInline(h.tokens));continue}case"text":{m=h.tokens?this.parseInline(h.tokens):h.text;while(r+1<E&&t[r+1].type==="text"){h=t[++r];m+="\n"+(h.tokens?this.parseInline(h.tokens):h.text)}a+=n?this.renderer.paragraph(m):m;continue}default:{var k='Token with "'+h.type+'" type was not found.';if(this.options.silent){console.error(k);return}else{throw new Error(k)}}}}return a};t.parseInline=function e(t,n){n=n||this.renderer;var a="",r,s,i;var o=t.length;for(r=0;r<o;r++){s=t[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[s.type]){i=this.options.extensions.renderers[s.type].call({parser:this},s);if(i!==false||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){a+=i||"";continue}}switch(s.type){case"escape":{a+=n.text(s.text);break}case"html":{a+=n.html(s.text);break}case"link":{a+=n.link(s.href,s.title,this.parseInline(s.tokens,n));break}case"image":{a+=n.image(s.href,s.title,s.text);break}case"strong":{a+=n.strong(this.parseInline(s.tokens,n));break}case"em":{a+=n.em(this.parseInline(s.tokens,n));break}case"codespan":{a+=n.codespan(s.text);break}case"br":{a+=n.br();break}case"del":{a+=n.del(this.parseInline(s.tokens,n));break}case"text":{a+=n.text(s.text);break}default:{var l='Token with "'+s.type+'" type was not found.';if(this.options.silent){console.error(l);return}else{throw new Error(l)}}}}return a};return e}();var ge=ne;var fe=pe;var be=M;var we=ie;var ve=oe;var xe=le;var ye=F.merge,Ce=F.checkSanitizeDeprecation,Ee=F.escape;var ke=s.exports.getDefaults,Ae=s.exports.changeDefaults,Te=s.exports.defaults;function qe(e,t,n){if(typeof e==="undefined"||e===null){throw new Error("marked(): input parameter is undefined or null")}if(typeof e!=="string"){throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected")}if(typeof t==="function"){n=t;t=null}t=ye({},qe.defaults,t||{});Ce(t);if(n){var a=t.highlight;var r;try{r=ge.lex(e,t)}catch(e){return n(e)}var s=function e(s){var i;if(!s){try{if(t.walkTokens){qe.walkTokens(r,t.walkTokens)}i=fe.parse(r,t)}catch(e){s=e}}t.highlight=a;return s?n(s):n(null,i)};if(!a||a.length<3){return s()}delete t.highlight;if(!r.length)return s();var i=0;qe.walkTokens(r,(function(e){if(e.type==="code"){i++;setTimeout((function(){a(e.text,e.lang,(function(t,n){if(t){return s(t)}if(n!=null&&n!==e.text){e.text=n;e.escaped=true}i--;if(i===0){s()}}))}),0)}}));if(i===0){s()}return}try{var o=ge.lex(e,t);if(t.walkTokens){qe.walkTokens(o,t.walkTokens)}return fe.parse(o,t)}catch(e){e.message+="\nPlease report this to https://github.com/markedjs/marked.";if(t.silent){return"<p>An error occurred:</p><pre>"+Ee(e.message+"",true)+"</pre>"}throw e}}qe.options=qe.setOptions=function(e){ye(qe.defaults,e);Ae(qe.defaults);return qe};qe.getDefaults=ke;qe.defaults=Te;qe.use=function(){var e=this;for(var t=arguments.length,n=new Array(t),a=0;a<t;a++){n[a]=arguments[a]}var r=ye.apply(void 0,[{}].concat(n));var s=qe.defaults.extensions||{renderers:{},childTokens:{}};var i;n.forEach((function(t){if(t.extensions){i=true;t.extensions.forEach((function(e){if(!e.name){throw new Error("extension name required")}if(e.renderer){var t=s.renderers?s.renderers[e.name]:null;if(t){s.renderers[e.name]=function(){for(var n=arguments.length,a=new Array(n),r=0;r<n;r++){a[r]=arguments[r]}var s=e.renderer.apply(this,a);if(s===false){s=t.apply(this,a)}return s}}else{s.renderers[e.name]=e.renderer}}if(e.tokenizer){if(!e.level||e.level!=="block"&&e.level!=="inline"){throw new Error("extension level must be 'block' or 'inline'")}if(s[e.level]){s[e.level].unshift(e.tokenizer)}else{s[e.level]=[e.tokenizer]}if(e.start){if(e.level==="block"){if(s.startBlock){s.startBlock.push(e.start)}else{s.startBlock=[e.start]}}else if(e.level==="inline"){if(s.startInline){s.startInline.push(e.start)}else{s.startInline=[e.start]}}}}if(e.childTokens){s.childTokens[e.name]=e.childTokens}}))}if(t.renderer){(function(){var e=qe.defaults.renderer||new we;var n=function n(a){var r=e[a];e[a]=function(){for(var n=arguments.length,s=new Array(n),i=0;i<n;i++){s[i]=arguments[i]}var o=t.renderer[a].apply(e,s);if(o===false){o=r.apply(e,s)}return o}};for(var a in t.renderer){n(a)}r.renderer=e})()}if(t.tokenizer){(function(){var e=qe.defaults.tokenizer||new be;var n=function n(a){var r=e[a];e[a]=function(){for(var n=arguments.length,s=new Array(n),i=0;i<n;i++){s[i]=arguments[i]}var o=t.tokenizer[a].apply(e,s);if(o===false){o=r.apply(e,s)}return o}};for(var a in t.tokenizer){n(a)}r.tokenizer=e})()}if(t.walkTokens){var n=qe.defaults.walkTokens;r.walkTokens=function(a){t.walkTokens.call(e,a);if(n){n(a)}}}if(i){r.extensions=s}qe.setOptions(r)}))};qe.walkTokens=function(e,t){var n=function e(){var n=s.value;t(n);switch(n.type){case"table":{for(var a=r(n.header),i;!(i=a()).done;){var o=i.value;qe.walkTokens(o.tokens,t)}for(var l=r(n.rows),d;!(d=l()).done;){var u=d.value;for(var c=r(u),m;!(m=c()).done;){var h=m.value;qe.walkTokens(h.tokens,t)}}break}case"list":{qe.walkTokens(n.items,t);break}default:{if(qe.defaults.extensions&&qe.defaults.extensions.childTokens&&qe.defaults.extensions.childTokens[n.type]){qe.defaults.extensions.childTokens[n.type].forEach((function(e){qe.walkTokens(n[e],t)}))}else if(n.tokens){qe.walkTokens(n.tokens,t)}}}};for(var a=r(e),s;!(s=a()).done;){n()}};qe.parseInline=function(e,t){if(typeof e==="undefined"||e===null){throw new Error("marked.parseInline(): input parameter is undefined or null")}if(typeof e!=="string"){throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected")}t=ye({},qe.defaults,t||{});Ce(t);try{var n=ge.lexInline(e,t);if(t.walkTokens){qe.walkTokens(n,t.walkTokens)}return fe.parseInline(n,t)}catch(e){e.message+="\nPlease report this to https://github.com/markedjs/marked.";if(t.silent){return"<p>An error occurred:</p><pre>"+Ee(e.message+"",true)+"</pre>"}throw e}};qe.Parser=fe;qe.parser=fe.parse;qe.Renderer=we;qe.TextRenderer=ve;qe.Lexer=ge;qe.lexer=ge.lex;qe.Tokenizer=be;qe.Slugger=xe;qe.parse=qe;var Re=qe;return Re}))}));function TemplateView$1(e){var t=e.states,n=e.callbacks,a=e.readme;return[h("textarea",{style:{width:"100%",height:"300px"},onChange:function(e){return n.setEditedTemplate(e.target.value)}},t.editedTemplate),h("button",{onClick:function(){return n.setPreviewTemplate(t.editedTemplate)}},"Update Preview"),a?h("details",null,h("summary",null,"Props readme"),h("div",{innerHTML:marked(a)})):"",h("div",{innerHTML:t.previewTemplate})]}var Widget_stories={title:"Templates / Widgets"};function useTemplate$1(e){var t=useState(e),n=t[0],a=t[1];var r=useState(e),s=r[0],i=r[1];return{states:{previewTemplate:s,editedTemplate:n},callbacks:{setEditedTemplate:a,setPreviewTemplate:i}}}var ReferralWidget=createHookStory((function(){var e=useTemplate$1(referralWidget),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:referralWidget})}));var MonoWidget=createHookStory((function(){var e=useTemplate$1(monoWidget),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:monoWidget})}));var Loyalty=createHookStory((function(){var e=useTemplate$1(loyaltyWidget),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:loyaltyWidget})}));var InstantAccessReferrerShareWidget=createHookStory((function(){var e=useTemplate$1(instantAccessReferrerShareWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var PaypalMonoWidget=createHookStory((function(){var e=useTemplate$1(paypalMonoWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var PaypalReferralWidget=createHookStory((function(){var e=useTemplate$1(paypalReferralWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var InstantAccessFriendCouponWidget=createHookStory((function(){var e=useTemplate$1(instantAccessFriendCouponWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var InstantAccessReferrerRegistrationWidget=createHookStory((function(){var e=useTemplate$1(instantAccessReferrerRegistrationWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var InstantAccessFriendRegistrationWidget=createHookStory((function(){var e=useTemplate$1(instantAccessFriendRegistrationWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var Widget=Object.freeze({__proto__:null,default:Widget_stories,ReferralWidget:ReferralWidget,MonoWidget:MonoWidget,Loyalty:Loyalty,InstantAccessReferrerShareWidget:InstantAccessReferrerShareWidget,PaypalMonoWidget:PaypalMonoWidget,PaypalReferralWidget:PaypalReferralWidget,InstantAccessFriendCouponWidget:InstantAccessFriendCouponWidget,InstantAccessReferrerRegistrationWidget:InstantAccessReferrerRegistrationWidget,InstantAccessFriendRegistrationWidget:InstantAccessFriendRegistrationWidget});var SidebarItem_stories={title:"Components/Sidebar Item"};var InactiveItem=function(){var e={states:{active:false},data:{label:"Dashboard",icon:"house",path:"/"}};return h(NavigationSidebarItemView,Object.assign({},e))};var ActiveItem=function(){var e={states:{active:true},data:{label:"Dashboard",icon:"house",path:"/"}};return h(NavigationSidebarItemView,Object.assign({},e))};var SidebarItem=Object.freeze({__proto__:null,default:SidebarItem_stories,InactiveItem:InactiveItem,ActiveItem:ActiveItem});var NavigationSidebar_stories={title:"Components/Navigation Sidebar"};var DefaultNavigationSidebar=function(){var e={states:{active:false},data:{label:"Dashboard",icon:"house",path:"/"}};var t={states:{active:true},data:{label:"Activity",icon:"bar-chart",path:"/"}};return h(NavigationSidebarView,null,h(NavigationSidebarItemView,Object.assign({},e)),h(NavigationSidebarItemView,Object.assign({},t)))};var NavigationSidebar=Object.freeze({__proto__:null,default:NavigationSidebar_stories,DefaultNavigationSidebar:DefaultNavigationSidebar});var PortalLogin_stories={title:"Components/Portal Login"};var defaultProps$2={states:{error:"",loading:false,forgotPasswordPath:"/forgotPassword",registerPath:"/register"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{pageLabel:"Sign in to your account"}};var errorProps={states:{error:"Something went wrong. Please try again.",loading:false,forgotPasswordPath:"/forgotPassword",registerPath:"/register"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{pageLabel:"Sign in to your account"}};var loadingProps={states:{error:"",loading:true,forgotPasswordPath:"/forgotPassword",registerPath:"/register"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{pageLabel:"Sign in to your account"}};var Default$2=function(){return h(PortalLoginView,Object.assign({},defaultProps$2))};var LoginWithError=function(){return h(PortalLoginView,Object.assign({},errorProps))};var LoginLoading=function(){return h(PortalLoginView,Object.assign({},loadingProps))};var PortalLogin=Object.freeze({__proto__:null,default:PortalLogin_stories,Default:Default$2,LoginWithError:LoginWithError,LoginLoading:LoginLoading});var PortalRegister_stories={title:"Components/Portal Register"};var defaultProps$3={states:{registrationFormState:{},error:"",loading:false,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address"}};var errorProps$1={states:{error:"Something went wrong. Please try again.",registrationFormState:{},loading:false,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address"}};var loadingProps$1={states:{registrationFormState:{},error:"",loading:true,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address"}};var slottedProps={states:{registrationFormState:{},error:"",loading:false,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address",formData:h("div",null,h("sl-input",{style:{marginBottom:"var(--sl-spacing-x-large)"},exportparts:"label: input-label",label:"Slotted Input",required:true}),h("sl-input",{exportparts:"label: input-label",label:"Slotted Input 2",required:true}))}};var Default$3=function(){return h(PortalRegisterView,Object.assign({},defaultProps$3))};var RegisterWithError=function(){return h(PortalRegisterView,Object.assign({},errorProps$1))};var RegisterLoading=function(){return h(PortalRegisterView,Object.assign({},loadingProps$1))};var FieldsHidden=function(){return h("sqm-portal-register",{demoData:{states:{registrationFormState:{},error:"",loading:true,confirmPassword:true,hideInputs:true,loginPath:"/login"}}})};var SlottedInputs=function(){return h(PortalRegisterView,Object.assign({},slottedProps))};var TermsAndConditions=function(){return h(PortalRegisterView,Object.assign({},defaultProps$3,{content:__assign(__assign({},defaultProps$3.content),{terms:h("p",null,"By signing up you agree to the"," ",h("a",{href:"https://example.com",target:"_blank"},"Terms and Conditions"))})}))};var PortalRegister=Object.freeze({__proto__:null,default:PortalRegister_stories,Default:Default$3,RegisterWithError:RegisterWithError,RegisterLoading:RegisterLoading,FieldsHidden:FieldsHidden,SlottedInputs:SlottedInputs,TermsAndConditions:TermsAndConditions});var scenario$6='@author:derek\n@owner:ian\nFeature: Forgot Password\n\n @motivating\n Scenario: Users can request to reset their password\n Given a user enters their email address\n And that email address is linked to a previously created account\n When they click "Reset Password"\n Then the button enters a loading state\n When the password reset email is sent\n Then a confirmation banner is shown stating a password reset email was sent\n\n @motivating\n Scenario: Users are notified if sending their password reset email fails\n Given a user enters their email address\n And that email address is linked to a previously created account\n When they click "Reset Password"\n Then the button enters a loading state\n When the password reset email fails to send\n Then the user does not receive a password reset email\n And an error banner is shown stating that they should try again\n\n @motivating\n @landmine\n Scenario: If the input email is not associated to an account a success banner is shown but an email is not be sent\n Given the user entered an email address that is not associated to an accoun\n When they click "Reset Password"\n Then the button enters a loading state\n But no email is sent\n And a success banner is shown stating a password reset email was sent if the given email was associated to an account\n\n @motivating\n Scenario: Users can resend password reset email\n Given a user had previously requested to reset their password\n When they enter their email address\n And that email address is linked to a previously created account\n And they click "Reset Password"\n Then the user receives a second password reset email\n And a success banner is shown stating that their email was sent\n\n @motivating\n Scenario Outline: The email link can be configured to redirect users to a specific base path but defaults to "/resetPassword"\n Given a user viewing the password reset component\n And the component <mayHave> "redirect-path" with <value>\n When they request a password reset email\n And they click the link in the email\n Then they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn\'t have | N/A | /resetPassword |\n | has | /resetMyPassword | /resetMyPassword |\n\n @minutia\n Scenario Outline: Navigation back to the login page can be customized but defaults to "/login"\n Given a user viewing the password reset component\n And the component <mayHave> "login-path" with <value>\n Then they see a "Sign In" text button\n When they click "Sign In"\n Then they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn\'t have | N/A | /login |\n | has | /signin | /signin |';var PortalForgotPassword_stories={title:"Components/Portal Forgot Password",parameters:{scenario:scenario$6}};var defaultProps$4={states:{error:"",loading:false,success:false,loginPath:"/login"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{secondaryButton:"Cancel",messageSlot:"Enter your email below to receive a password reset link."}};var errorProps$2={states:{error:"Something went wrong. Please try again.",loading:false,success:false,loginPath:"/login"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{secondaryButton:"Cancel",messageSlot:"Enter your email below to receive a password reset link."}};var loadingProps$2={states:{error:"",loading:true,success:false,loginPath:"/login"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{secondaryButton:"Cancel",messageSlot:"Enter your email below to receive a password reset link."}};var successProps={states:{error:"",loading:false,success:true,loginPath:"/login"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{secondaryButton:"Cancel",messageSlot:"Enter your email below to receive a password reset link."}};var Default$4=function(){return h(PortalForgotPasswordView,Object.assign({},defaultProps$4))};var ForgotPasswordWithError=function(){return h(PortalForgotPasswordView,Object.assign({},errorProps$2))};var ForgotPasswordLoading=function(){return h(PortalForgotPasswordView,Object.assign({},loadingProps$2))};var ForgotPasswordSuccess=function(){return h(PortalForgotPasswordView,Object.assign({},successProps))};var PortalForgotPassword=Object.freeze({__proto__:null,default:PortalForgotPassword_stories,Default:Default$4,ForgotPasswordWithError:ForgotPasswordWithError,ForgotPasswordLoading:ForgotPasswordLoading,ForgotPasswordSuccess:ForgotPasswordSuccess});var scenario$7='@author:derek\n@owner:ian\nFeature: Email Verification\n\n @minutia\n Scenario: User\'s redirected from registration can re-send their verification email\n Given a user has registered\n And they have been sent a verification email\n When they are redirected to the email verification page\n Then a message is displayed\n And it reflects that a email has been sent to their email\n But they can still re-send the email\n When they click to "Resend-Email"\n Then they receive a verification email\n\n @motivating\n Scenario: Users are notified if sending the email verification message fails\n Given a user viewing the email verification component\n And they have an email stored in session data from registration\n When they click to "Resend-Email"\n Then the text link is disabled\n When an error occurs trying to send the verification email\n Then the user does not receive a verification email\n And an error banner is shown stating that they should try again\n\n @motivating\n Scenario: Users are notified if sending the email verification message succeeds\n Given a user viewing the email verification component\n And they have an email stored in session data from registration\n When they click to "Resend-Email"\n Then the text link is disabled\n When the email verification message sends\n Then the user receives a verification email\n And a success banner is shown stating that their email was resent\n\n @motivating\n Scenario Outline: The email link can be configured to redirect users to a specific base path but defaults to "/verifyEmail"\n Given a user viewing the email verification component\n And they have an email stored in session data from registration\n And the component <mayHave> "redirect-path" with <value>\n When they resend their verification email\n And they click the link in the email\n Then they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn\'t have | N/A | /verifyEmail |\n | has | /verifyMyEmail | /verifyMyEmail |\n\n @motivating\n Scenario Outline: Verification status is refetched on refresh\n Given a user viewing the email verification component\n And the component <mayHave> "redirect-path" with <value>\n And they verified their account on another device\n And the local storage verification state is outdated\n When they refresh the page the component is on\n Then their verification status is re-queried\n And the local storage managed identity state is updated\n And they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn\'t have | N/A | /verifyEmail |\n | has | /verifyMyEmail | /verifyMyEmail |\n\n @motivating\n Scenario Outline: Verification status is refetched every 10 seconds\n Given a user viewing the email verification component\n And the component <mayHave> "redirect-path" with <value>\n Then they see text "Checking verification status in 10" above the re-send verification text link\n And the time counts down from 10 to 0\n When the counter hits 0\n Then their verification status is re-queried\n And the text displays a spinner where the "in {seconds}" text was\n When they verify their account on another device\n And the count down hits 0 again from 10\n Then their verification status is re-queried\n And the local storage managed identity state is updated\n And they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn\'t have | N/A | /verifyEmail |\n | has | /verifyMyEmail | /verifyMyEmail |\n\n @minutia\n Scenario Outline: Verification refetch text is customizable\n Given the email verication has prop "verification-status-message" with <verificationPropValue>\n And has prop "verification-loading-message" with <loadingPropValue>\n And a user viewing the component\n When it is counting down\n Then they see <verificationTextValue>\n When it is refetching their verification status\n Examples:\n | verificationPropValue | verificationTextValue | loadingPropValue | loadingTextValue |\n | N/A | Checking verification status in {countdown} | N/A | Checking verification status |\n | {countdown} seconds till verification refresh | {countdown} seconds till verification refresh | Checking verification | Checking verification |\n\n\n @minutia\n Scenario: 10 second countdown pauses when minimizing or moving between tabs\n Given a user viewing the email verification component\n Then they see text "Checking verification status in 10" above the re-send verification text link\n And the time counts down from 10 to 7\n And the user changes to a different tab\n When the user goes back to the verification tab\n Then the countdown will still be 7\n When the counter hits 0\n Then their verification status is re-queried\n';var PortalEmailVerification_stories={title:"Components/Portal Email Verification",parameters:{scenario:scenario$7}};var defaultCallbacks={submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}};var defaultContent={email:"email@example.com",verifyMessage:"A verification email was sent to {email}. Please verify your email to continue to the portal.",emailVerificationHeader:"Verify your email",resendEmailButtonText:"Re-send Email",verificationStatusMessage:"Checking verification status in {countdown}",verificationLoadingMessage:"Checking verification status"};var defaultStates={error:"",loading:false,success:false,isVerified:false,loadingVerification:false,countdown:10};var defaultProps$5={states:defaultStates,callbacks:defaultCallbacks,content:defaultContent};var errorProps$3={states:__assign(__assign({},defaultStates),{error:"Something went wrong. Please try again."}),callbacks:defaultCallbacks,content:defaultContent};var loadingProps$3={states:__assign(__assign({},defaultStates),{loading:true}),callbacks:defaultCallbacks,content:defaultContent};var successProps$1={states:__assign(__assign({},defaultStates),{success:true,isVerified:true}),callbacks:defaultCallbacks,content:defaultContent};var loadingVerificationProps={states:__assign(__assign({},defaultStates),{loadingVerification:true}),callbacks:defaultCallbacks,content:defaultContent};var Default$5=function(){return h(PortalEmailVerificationView,Object.assign({},defaultProps$5))};var EmailVerificationWithError=function(){return h(PortalEmailVerificationView,Object.assign({},errorProps$3))};var EmailVerificationLoading=function(){return h(PortalEmailVerificationView,Object.assign({},loadingProps$3))};var EmailVerificationCheckingVerification=function(){return h(PortalEmailVerificationView,Object.assign({},loadingVerificationProps))};var EmailVerificationSuccess=function(){return h(PortalEmailVerificationView,Object.assign({},successProps$1))};var PortalEmailVerification=Object.freeze({__proto__:null,default:PortalEmailVerification_stories,Default:Default$5,EmailVerificationWithError:EmailVerificationWithError,EmailVerificationLoading:EmailVerificationLoading,EmailVerificationCheckingVerification:EmailVerificationCheckingVerification,EmailVerificationSuccess:EmailVerificationSuccess});var scenario$8='@author:derek\n@owner:ian\nFeature: Reset Password\n\n Background: A user in on the password reset page\n Given a user who has been redirected to the password reset page\n\n @motivating\n Scenario: Users can reset their password\n Given a user has a valid oob code as a url query parameter\n When they enter their password twice\n And they click "Update"\n Then their password is updated\n And a banner with a success message is displayed\n And they can log in with their new password\n\n @motivating\n Scenario Outline: Users cannot reset their password with an invalid or missing oob code\n Given a user has a <oobCode> as a url query parameter\n And the component <mayHave> "failed-page" with <value>\n Then they see an error message saying that their password reset code is invalid/expired\n When they click "Continue"\n Then they are redirected to <redirectPath>\n Examples:\n | oobCode | mayHave | value | redirectPath |\n | invalid oob code | doesn\'t have | N/A | / |\n | non existant oob code | doesn\'t have | N/A | / |\n | invalid oob code | has | /login | /login |\n | non existant oob code | has | /login | /login |\n\n @motivating\n Scenario: Users must enter the same password twice to successfully reset their password\n Given a user has been redirected to the password reset page\n And they have a valid oob code as a url query parameter\n When they enter two different passwords into the password reset form\n And they click "Update"\n Then their password is not be reset\n And an error banner stating the input passwords must match appears\n And their password is not be reset\n When they enter the same password twice\n And they click "Update"\n Then a banner appears with a success message\n And they can log in with their new password\n\n @motivating\n Scenario: Users are notified if resetting their password fails\n Given a user has a valid oob code as a url query parameter\n When they enter their password twice\n And they click "Update"\n But the password reset fails\n Then the user\'s password does not reset\n And an error banner is shown\n\n @motivating\n Scenario: Users are redirected to "/" by default\n Given the component does not have prop "nextPage"\n And the users url does not contain a "nextPage" query parameter\n And a user has entered their password twice\n When they click "Update"\n Then their password is updated\n And they are redirected to "/"\n\n @motivating\n Scenario: Custom redirection can be configured\n Given the component has prop "nextPage" with value "/activity"\n And the users url does not contain a "nextPage" query parameter\n And a user has entered their password twice\n When they click "Update"\n Then their password is updated\n And they are redirected to "/activity"\n\n @motivating\n Scenario Outline: Users are redirected to the value of the nextPage url parameter as if it were a relative path\n Given the component is loaded at <currentUrl>\n When they click "Update"\n Then their password is updated\n And they are redirected to <url>\n Examples:\n | currentUrl | url |\n | https://www.example.com?nextPage=./activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=/activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=www.google.com | https://www.example.com/www.google.com |\n | https://www.example.com?nextPage=//foo.com | https://www.example.com/ |\n | https://www.example.com?nextPage=https://malicious.example.com | https://www.example.com/ |\n | http://www.example.com/nest/page?oob=123&other&nextPage=activity#heading-1 | http://www.example.com/activity |\n | https://www.example.com?nextPage=activity?foo=bar | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar#hash | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar%23hash | https://www.example.com/activity?foo=bar#hash |\n | https://www.example.com:1337?nextPage=activity | https://www.example.com:1337/activity |\n | http://1.1.1.1:1111?nextPage=activity | http://1.1.1.1:1111/activity |\n\n @landmine\n Scenario Outline: Username and password are not persisted on redirects\n Given the component is loaded at <currentUrl>\n When they click "Update"\n Then their password is updated\n And they are redirected to <url>\n Examples:\n | currentUrl | url |\n | https://user:pass@www.example.com:444?nextPage=activity | https://www.example.com:444/activity |';var PortalResetPassword_stories={title:"Components/Portal Reset Password",parameters:{scenario:scenario$8}};var defaultProps$6={states:{error:"",loading:false,reset:false,confirmPassword:true,oobCodeValidating:false,oobCodeValid:true,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var defaultPropsNoConfirm={states:{error:"",loading:false,reset:false,confirmPassword:false,oobCodeValidating:false,oobCodeValid:true,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var errorProps$4={states:{error:"Something went wrong. Please try again.",loading:false,reset:false,confirmPassword:true,oobCodeValidating:false,oobCodeValid:true,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var loadingProps$4={states:{error:"",loading:true,reset:false,confirmPassword:true,oobCodeValidating:false,oobCodeValid:true,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var successProps$2={states:{error:"",loading:false,reset:true,confirmPassword:true,oobCodeValidating:false,oobCodeValid:true,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var validatingCodeProps={states:{error:"",loading:false,reset:false,confirmPassword:true,oobCodeValidating:false,oobCodeValid:false,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var Default$6=function(){return h(PortalResetPasswordView,Object.assign({},defaultProps$6))};var DefaultWithoutConfirmField=function(){return h(PortalResetPasswordView,Object.assign({},defaultPropsNoConfirm))};var ResetPasswordWithError=function(){return h(PortalResetPasswordView,Object.assign({},errorProps$4))};var ResetPasswordLoading=function(){return h(PortalResetPasswordView,Object.assign({},loadingProps$4))};var ResetPasswordSuccess=function(){return h(PortalResetPasswordView,Object.assign({},successProps$2))};var CodeValidating=function(){return h(PortalResetPasswordView,Object.assign({},validatingCodeProps))};var PortalResetPassword=Object.freeze({__proto__:null,default:PortalResetPassword_stories,Default:Default$6,DefaultWithoutConfirmField:DefaultWithoutConfirmField,ResetPasswordWithError:ResetPasswordWithError,ResetPasswordLoading:ResetPasswordLoading,ResetPasswordSuccess:ResetPasswordSuccess,CodeValidating:CodeValidating});var scenario$9='@author:derek\n@owner:ian\nFeature: Verify Email\n\n Background: A user is on the email verification page\n Given a user who has been redirected to the email verification page\n\n @motivating\n Scenario: Verifying your email takes you to the portal login page\n Given a user has a valid oob code as a url query parameter\n When they click "Verify Email"\n Then the button enters a loading state\n When their email is validated\n Then a button that says "Continue" appears\n When they click "Continue"\n Then they are redirected to login\n\n @motivating\n Scenario: Users are automatically redirected if they dont click "Continue"\n Given a user has a valid oob code as a url query parameter\n When they click "Verify Email"\n Then the button enters a loading state\n When their email is validated\n Then a button that says "Continue" appears\n When they wait 5 seconds\n Then they are redirected to login\n\n @motivating\n Scenario: Users are notified if verifying their email has failed\n Given a user has a valid oob code as a url query parameter\n When they click "Verify Email"\n Then the button enters a loading state\n When their email fails to be validated\n Then an banner is shown stating that an error occured\n\n @motivating\n Scenario Outline: Users cannot verify their email with an invalid or missing oob code\n Given a user has a <oobCode> as a url query parameter\n And the component <mayHave> "failed-page" with <value>\n Then they see an error message saying that their verification code is invalid/expired\n When they click "Continue"\n Then they are redirected to <redirectPath>\n Examples:\n | oobCode | mayHave | value | redirectPath |\n | invalid oob code | doesn\'t have | N/A | / |\n | non existant oob code | doesn\'t have | N/A | / |\n | invalid oob code | has | /login | /login |\n | non existant oob code | has | /login | /login |\n\n @motivating\n Scenario: Users are redirected to "/" by default\n Given the component does not have prop "nextPage"\n And the users url does not contain a "nextPage" query parameter\n And a user has verified their email\n When they click "Continue"\n Then they are redirected to "/"\n\n @motivating\n Scenario: Custom redirection can be configured\n Given the component has prop "nextPage" with value "/activity"\n And the users url does not contain a "nextPage" query parameter\n And a user has verified their email\n When they click "Continue"\n Then they are redirected to "/activity"\n\n @motivating\n Scenario Outline: Users are redirected to the value of the nextPage url parameter if it exists\n Given the component <mayHave> prop "nextPage" with <nextPageValue>\n And the users url contains a "nextPage" query paramater with <nextPageParamValue>\n And the user has verified their email\n When they click "Continue"\n Then they are redirected to <nextPageParamValue>\n Examples:\n | mayHave | nextPageValue | nextPageParamValue |\n | has | /dashboard | /activity |\n | does not have | N/A | /activity |\n\n @motivating\n Scenario Outline: Users are redirected to the value of the nextPage url parameter as if it were a relative path\n Given the component is loaded at <currentUrl>\n And the user has verified their email\n When they click "Continue"\n And they are redirected to <url>\n Examples:\n | currentUrl | url |\n | https://www.example.com?nextPage=./activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=/activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=www.google.com | https://www.example.com/www.google.com |\n | https://www.example.com?nextPage=//foo.com | https://www.example.com/ |\n | https://www.example.com?nextPage=https://malicious.example.com | https://www.example.com/ |\n | http://www.example.com/nest/page?oob=123&other&nextPage=activity#heading-1 | http://www.example.com/activity |\n | https://www.example.com?nextPage=activity?foo=bar | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar#hash | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar%23hash | https://www.example.com/activity?foo=bar#hash |\n | https://www.example.com:1337?nextPage=activity | https://www.example.com:1337/activity |\n | http://1.1.1.1:1111?nextPage=activity | http://1.1.1.1:1111/activity |\n\n @landmine\n Scenario Outline: Username and password are not persisted on redirects\n Given the component is loaded at <currentUrl>\n And the user has verified their email\n When they click "Continue"\n And they are redirected to <url>\n Examples:\n | currentUrl | url |\n | https://user:pass@www.example.com:444?nextPage=activity | https://www.example.com:444/activity |';var PortalVerifyEmail_stories={title:"Components/Portal Verify Email",parameters:{scenario:scenario$9}};var errorProps$5={states:{error:"Something went wrong. Please try again.",loading:false,verified:false},data:{oobCode:"abc123"},callbacks:{gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var verifiedProps={states:{error:"",loading:false,verified:true},data:{oobCode:"abc123"},callbacks:{gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var EmailVerificationWithError$1=function(){return h(PortalVerifyEmailView,Object.assign({},errorProps$5))};var EmailVerificationSuccess$1=function(){return h(PortalVerifyEmailView,Object.assign({},verifiedProps))};var PortalVerifyEmail=Object.freeze({__proto__:null,default:PortalVerifyEmail_stories,EmailVerificationWithError:EmailVerificationWithError$1,EmailVerificationSuccess:EmailVerificationSuccess$1});var AssetCard_stories={title:"Components/Asset Card"};var Default$7=function(){var e={text:{titleText:"Marketing Banner"},imgUrl:"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png",callbacks:{}};return h(AssetCardView,Object.assign({},e))};var CardWithLongText=function(){var e={text:{titleText:"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quam, sunt dolores? Dolore temporibus autem officia blanditiis minus in voluptatem molestiae!"},imgUrl:"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png",callbacks:{}};return h(AssetCardView,Object.assign({},e))};var CardWithNoImg=function(){var e={text:{titleText:"Marketing Banner"},imgUrl:"",callbacks:{}};return h(AssetCardView,Object.assign({},e))};var AssetCard=Object.freeze({__proto__:null,default:AssetCard_stories,Default:Default$7,CardWithLongText:CardWithLongText,CardWithNoImg:CardWithNoImg});var DividedLayout_stories={title:"Components/Divided Layout"};var item1Props$1={states:{active:false},data:{label:"Dashboard",icon:"house",path:"/"}};var item2Props$1={states:{active:true},data:{label:"Activity",icon:"bar-chart",path:"/"}};var Sidebar$1=function(){return h(NavigationSidebarView,null,h(NavigationSidebarItemView,Object.assign({},item1Props$1)),h(NavigationSidebarItemView,Object.assign({},item2Props$1)))};var Row=function(){return h("sqm-divided-layout",{direction:"row"},h(Sidebar$1,null),h("div",{style:{padding:"48px"}},h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("p",null,"Welcome back,")),content:h("sqm-text",null,h("h1",null,"Joe Smith"))}))))};var Column=function(){return h("sqm-divided-layout",{direction:"column"},h(Sidebar$1,null),h("div",{style:{padding:"48px"}},h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("p",null,"Welcome back,")),content:h("sqm-text",null,h("h1",null,"Joe Smith"))}))))};var ColumnCustomDivider=function(){return h("sqm-divided-layout",{direction:"column",dividerStyle:"1px solid red"},h(Sidebar$1,null),h("div",{style:{padding:"48px"}},h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("p",null,"Welcome back,")),content:h("sqm-text",null,h("h1",null,"Joe Smith"))}))))};var DividedLayout=Object.freeze({__proto__:null,default:DividedLayout_stories,Row:Row,Column:Column,ColumnCustomDivider:ColumnCustomDivider});var scenario$a='Feature: Change Password\n\n @motivating\n Scenario: Users can change their password\n Given a user has registered for the portal\n And they have a password\n When they navigate to the edit profile page\n And click "Change your password..."\n Then a popup will appear\n When they enter their new password\n And confirm it\n And click "Change Password"\n Then they will see a success banner stating that the change was successful\n When they logout\n And try to login\n Then they will not be able to login with their old password\n But they will be able to login with their new password\n\n @motivating\n Scenario: Users must confirm their password change\n Given a user has registered for the portal\n When they navigate to the edit profile page\n And click "Change your password..."\n Then a popup will appear\n When they enter their new password\n But they enter a different password to confirm\n And click "Change Password"\n Then they will see an error banner stating that the passwords didnt match\n When they logout\n And try to login\n Then they will be able to login with their existing password\n\n @motivating\n Scenario: Users must enter a new password and confirm it to change their password\n Given a user has registered for the portal\n When they navigate to the edit profile page\n And click "Change your password..."\n Then a popup will appear\n When they click "Change password"\n Then a validation error will appear for the new password field\n And their password will not be changed\n When they enter a new password\n And they click "Change password"\n Then a validation error will appear for the confirm new password field\n And their password will not be changed\n\n @motivating\n Scenario: An error banner will be displayed if the password change fails\n Given a user has registered for the portal\n When they navigate to the edit profile page\n And click "Change your password..."\n When they enter their new password\n And confirm it\n And click "Change Password"\n But the change fails\n Then they will see an error banner stating that the change failed\n When they logout\n And try to login\n Then they will be able to login with their existing password';var ChangePassword_stories={title:"Components/Change Password",parameters:{scenario:scenario$a}};var defaultProps$7={states:{open:false,loading:false,success:false,error:"",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var openProps={states:{open:true,loading:false,success:false,error:"",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var errorProps$6={states:{open:true,loading:false,success:false,error:"Network error. Please try again.",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var passwordErrorProps={states:{open:true,loading:false,success:false,error:"Passwords do not match.",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var loadingProps$5={states:{open:true,loading:true,success:false,error:"",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var successProps$3={states:{open:true,loading:false,success:true,error:"",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var Default$8=function(){return h(PortalChangePasswordView,Object.assign({},defaultProps$7))};var Open=function(){return h(PortalChangePasswordView,Object.assign({},openProps))};var Error$2=function(){return h(PortalChangePasswordView,Object.assign({},errorProps$6))};var PaswordError=function(){return h(PortalChangePasswordView,Object.assign({},passwordErrorProps))};var Loading$1=function(){return h(PortalChangePasswordView,Object.assign({},loadingProps$5))};var Success=function(){return h(PortalChangePasswordView,Object.assign({},successProps$3))};var ChangePassword=Object.freeze({__proto__:null,default:ChangePassword_stories,Default:Default$8,Open:Open,Error:Error$2,PaswordError:PaswordError,Loading:Loading$1,Success:Success});var PortalProfile_stories={title:"Components/Portal Profile"};var defaultProps$8={states:{success:false,loading:false,submitDisabled:false,showCountry:true,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var noCountry={states:{success:false,loading:false,submitDisabled:false,showCountry:false,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var loadingProps$6={states:{success:false,loading:true,submitDisabled:false,showCountry:true,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var disabledProps={states:{success:false,loading:false,submitDisabled:true,showCountry:true,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var errorProps$7={states:{success:false,loading:false,submitDisabled:false,showCountry:true,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:"Something went wrong. Please try again."}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var successProps$4={states:{success:true,loading:false,submitDisabled:false,showCountry:true,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var Default$9=function(){return h(PortalProfileView,Object.assign({},defaultProps$8))};var DefaultNoCountry=function(){return h(PortalProfileView,Object.assign({},noCountry))};var Loading$2=function(){return h(PortalProfileView,Object.assign({},loadingProps$6))};var Disabled$1=function(){return h(PortalProfileView,Object.assign({},disabledProps))};var Error$3=function(){return h(PortalProfileView,Object.assign({},errorProps$7))};var Success$1=function(){return h(PortalProfileView,Object.assign({},successProps$4))};var PortalProfile=Object.freeze({__proto__:null,default:PortalProfile_stories,Default:Default$9,DefaultNoCountry:DefaultNoCountry,Loading:Loading$2,Disabled:Disabled$1,Error:Error$3,Success:Success$1});var column='@author:noah\n@owner:noah\nFeature: Referral Table User Column\n\n Shows the same custom content for each referral\n\n Background:\n Given the column in included in the referral table\n\n @motivating\n Scenario: The title of the date column is configurable\n Given the "column-title" prop is set to "My column title"\n Then the date column is shown with "My column title"\n\n @motivating\n Scenario: The same custom content is shown for each referral\n Given there is at least one referral\n Then for each referral custom content is shown\n And the custom content is provided as slot content';var date='@author:noah\n@owner:noah\nFeature: Referral Table Date Column\n\n Shows the date of each referral\n\n Background:\n Given the date column is included in the referral table\n\n @motivating\n @ui\n Scenario Outline: The title of the date column is configurable\n Given the "column-title" prop is set to <value>\n Then the date column is shown with <columTitle>\n Examples:\n | value | columnTitle |\n | | Date Converted |\n | My column title | My column title |\n\n @motivating\n Scenario Outline: A configurable date associated with the referral is shown for each referral\n Given the "date-shown" prop is set to <dateType>\n And referrals exist\n Then for each referral the <referralDate> is shown in the table\n And the date is localized to the users locale\n Examples:\n | dateType | referralDate |\n | dateReferralStarted | date referral started |\n | dateReferralPaid | date referral paid |\n | dateReferralEnded | date referral ended |\n | dateModerated | date moderated |\n | dateUserModified | date user modified |\n | dateConverted | date converted |\n | dateModified | date modified |\n | | date converted |';var reward='@author:noah\n@owner:noah\nFeature: Referral Table Reward Column\n\n Shows the reward associated with each referral\n\n Background:\n Given the status column is included in the referral table\n And at least one referral exists\n\n @motivating\n @ui\n Scenario Outline: The referral reward and it\'s status are shown for each referral\n Then for each referral reward there exists a reward cell\n And the reward type and value is displayed in the cell\n And the status of each reward is displayed as a pill in the cell\n And rewards of <status> have a <pillColour> pill with the text <statusText>\n Examples:\n | status | pillColour | statusText |\n | Available | green | Available |\n | Pending | orange | Pending |\n | Cancelled | red | Cancelled |\n | Expired | red | Expired |\n | Redeemed | blue | Redeemed |\n | Pending Review | orange | Pending Review |\n | Denied | red | Denied |\n\n @motivating\n Scenario: The pending period of a referral reward is shown if it exists\n Given a reward that is pending\n And the reward has a set pending period\n Then the status pill of the reward will instead have the text "Pending for <relativeTime>"\n And all dates are localized to the users locale\n Examples:\n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: The expiry date of a reward is shown if it exists\n Given a reward that is available\n And the reward has a set expiry date\n Then an additional grey pill will appear next to the status pill with the text "Expiring in <relativeTime>"\n And all dates are localized to the users locale\n Examples:\n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: Each reward can be expanded to show additional details about the reward\n When a reward cell is clicked\n Then it expands to show the following additional information (if it\'s available):\n | Date the reward was received |\n | Date the reward was cancelled |\n | Date the reward expires |\n | Date the reward is pending until |\n | Coupon code |\n And all dates are localized to a users locale';var status='@author:noah\n@owner:noah\nFeature: Referral Table Status Column\n\n Shows the status of each referral\n\n Background:\n Given the status column is included in the referral table\n\n @motivating\n @ui\n Scenario: The title of the date column is configurable\n Given the "column-title" prop is set to "My column title"\n Then the date column is shown with "My column title"\n\n @motivating\n Scenario: The status column\'s fraudStatus maps to the fraud status of the referral\n Given at least one referral\n Then the referral cell fraud status is set to `moderationStatus` of the referral\n\n @motivating\n Scenario Outline: The status column displays the status of each referral\n Given referrals exist\n Then the status of each referral is displayed\n And the status <status> is displayed as text from <statusTextProp> in a <pillColour> pill\n\n Examples:\n | status | statusTextProp | pillColour |\n | In Progress | inProgressStatusText | Orange |\n | Converted | convertedStatusText | Green |\n | Pending | pendingReviewStatusText | Orange |\n | Denied | deniedStatusText | Red |\n';var user='@author:noah\n@owner:noah\nFeature: Referral Table User Column\n\n Shows the user of each referral\n\n Background:\n Given the user column is included in the referral table\n\n @motivating\n @ui\n Scenario: The title of the date column is configurable\n Given the "column-title" prop is set to "My column title"\n Then the date column is shown with "My column title"\n\n @motivating\n Scenario: The first and last name of the other user in the referral is displayed for each referral\n Given at least one referral exists\n Then for each referral where the other user\'s name is available their first and last name is displayed\n\n @motivating\n Scenario: Deleted users are displayed with a fallback name\n Given a referral exists where the other user was deleted\n Then in place of the name the text from the prop "deleted-user" is used\n\n @motivating\n Scenario: Anonymous users are displayed with a fallback name\n Given a referral exists where the other user was anonymous\n Then in place of the name the text from the prop "anonymous-user" is used';var scenario$b=column+date+reward+status+user;var ReferralTableRewardsCell_stories={title:"Components/Referral Table Rewards Cell",parameters:{scenario:scenario$b}};var baseReward={id:"123",type:"CREDIT",value:19,unit:"POINT",name:"test",dateGiven:1627427794891,dateScheduledFor:getDays(),dateExpires:getMonths(),dateCancelled:134400,dateRedeemed:0,fuelTankCode:"ABC",fuelTankType:"Code",currency:"null",prettyValue:"19 Points",statuses:["AVAILABLE"],globalRewardKey:"Key",rewardRedemptionTransactions:{data:[{exchangedRewards:{data:[{prettyValue:"19 Points",type:"CREDIT",fuelTankCode:"ABC",globalRewardKey:"Key"}]}}]}};var nullExpiresIn={dateExpires:null};var nullScheduledFor={dateScheduledFor:null};var nullFuelTank={fuelTankCode:null};var discountReward={type:"PCT_DISCOUNT"};var creditReward={type:"CREDIT"};var fuelTankReward={type:"FUELTANK"};var integrationReward={type:"INTEGRATION"};var pendingReward={statuses:["AVAILABLE","PENDING"]};var cancelledReward={statuses:["PENDING","CANCELLED"],dateCancelled:16268508e5};var expiredReward={statuses:["EXPIRED","AVAILABLE"],dateExpires:16268508e5};var deniedReward={statuses:["DENIED"]};var pendingReviewReward={statuses:["PENDING_REVIEW"]};var redeemedReward={statuses:["AVAILABLE","EXPIRED","REDEEMED"]};var availableReward={statuses:["AVAILABLE"]};var zeroRewards=[];var oneReward=[__assign(__assign({},baseReward),availableReward)];var twoRewards=[__assign(__assign(__assign({},baseReward),discountReward),pendingReward),__assign(__assign({},baseReward),creditReward)];var threeRewards=[__assign(__assign(__assign({},baseReward),fuelTankReward),nullExpiresIn),__assign(__assign(__assign({},baseReward),fuelTankReward),expiredReward),__assign(__assign(__assign({},baseReward),pendingReward),nullFuelTank)];var fiveRewards=[__assign(__assign({},baseReward),fuelTankReward),__assign(__assign({},baseReward),integrationReward),__assign(__assign({},baseReward),pendingReward),__assign(__assign(__assign(__assign({},baseReward),cancelledReward),nullExpiresIn),nullFuelTank),__assign(__assign(__assign({},baseReward),expiredReward),nullFuelTank)];var eightRewards=[__assign(__assign(__assign({},baseReward),redeemedReward),nullFuelTank),__assign(__assign(__assign({},baseReward),availableReward),nullExpiresIn),__assign(__assign({},baseReward),pendingReward),__assign(__assign({},baseReward),cancelledReward),__assign(__assign({},baseReward),expiredReward),__assign(__assign(__assign(__assign({},baseReward),pendingReward),nullExpiresIn),nullScheduledFor),__assign(__assign({},baseReward),cancelledReward),__assign(__assign({},baseReward),expiredReward)];var tenRewards=[__assign(__assign({},baseReward),integrationReward),__assign(__assign({},baseReward),redeemedReward),__assign(__assign({},baseReward),availableReward),__assign(__assign(__assign({},baseReward),cancelledReward),nullExpiresIn),__assign(__assign({},baseReward),expiredReward),__assign(__assign({},baseReward),pendingReward),__assign(__assign({},baseReward),discountReward),__assign(__assign({},baseReward),fuelTankReward),__assign(__assign(__assign({},baseReward),cancelledReward),nullExpiresIn),__assign(__assign({},baseReward),creditReward)];function getSeconds(){return luxon.DateTime.now().toMillis()+1e4}function getMinutes(){return luxon.DateTime.now().toMillis()+4e5}function getHours(){return luxon.DateTime.now().toMillis()+9e6}function getDays(){return luxon.DateTime.now().toMillis()+6e8}function getMonths(){return luxon.DateTime.now().toMillis()+1e10}function getYears(){return luxon.DateTime.now().toMillis()+2e11}var statusText="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} PENDING_REVIEW {Pending} DENIED {Denied} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }";var statusLongText="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} PENDING_REVIEW {Pending since} DENIED {Denied on} EXPIRED {Reward expired on} REDEEMED {Redeemed} other {Not available} }";var PendingNoUnpend=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),nullScheduledFor)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var PendingNoUnpendNoDetails=function(){return h("sqm-referral-table-rewards-cell",{hideDetails:true,rewards:[__assign(__assign(__assign({},baseReward),pendingReward),nullScheduledFor)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var NarrowColumnWithWideText=function(){return h("div",{style:{width:"250px"}},h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getDays()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),pendingReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"Pending for 300,000,000 months and some change",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getYears()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}))};var PendingWithUnpend=function(){return[h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getSeconds()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getMinutes()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getHours()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getDays()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getMonths()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getYears()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})]};var AvailableNoExpiry=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),nullExpiresIn)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var AvailableWithExpiry=function(){return[h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getSeconds()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getMinutes()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getHours()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getDays()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getMonths()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getYears()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})]};var Redeemed=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),redeemedReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var Cancelled=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),cancelledReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var Expired=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),expiredReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var Denied=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),deniedReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var PendingReview=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),pendingReviewReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var EmptyCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:zeroRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var oneRewardCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:oneReward,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var twoRewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:twoRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var threeRewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:threeRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var fiveRewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:fiveRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var eightRewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:eightRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var tenRewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:tenRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var ReferralTableRewardsCell=Object.freeze({__proto__:null,default:ReferralTableRewardsCell_stories,PendingNoUnpend:PendingNoUnpend,PendingNoUnpendNoDetails:PendingNoUnpendNoDetails,NarrowColumnWithWideText:NarrowColumnWithWideText,PendingWithUnpend:PendingWithUnpend,AvailableNoExpiry:AvailableNoExpiry,AvailableWithExpiry:AvailableWithExpiry,Redeemed:Redeemed,Cancelled:Cancelled,Expired:Expired,Denied:Denied,PendingReview:PendingReview,EmptyCell:EmptyCell,oneRewardCell:oneRewardCell,twoRewardsCell:twoRewardsCell,threeRewardsCell:threeRewardsCell,fiveRewardsCell:fiveRewardsCell,eightRewardsCell:eightRewardsCell,tenRewardsCell:tenRewardsCell});var scenario$c=column+date+reward+status+user;var ReferralTableCell_stories={title:"Components/Referral Table Cell",parameters:{scenario:scenario$c}};var TableCell=function(){return h("sqm-referral-table-cell",{innerTemplate:"Table Cell Text"})};var TableUserCell=function(){return h("sqm-referral-table-user-cell",{name:"Table User Cell Text"})};var EmptyCell$1=function(){return h("sqm-sqm-referral-table-cell",null,"-")};var Converted=function(){return h("sqm-referral-table-status-cell",{"status-text":"Converted","fraud-status":"APPROVED",converted:true})};var InProgress=function(){return h("sqm-referral-table-status-cell",{"status-text":"In Progress",converted:false})};var PendingReview$1=function(){return h("sqm-referral-table-status-cell",{"status-text":"Pending","fraud-status":"PENDING_REVIEW",converted:false})};var Pending=function(){return h("sqm-referral-table-status-cell",{"status-text":"Pending",converted:false})};var Denied$1=function(){return h("sqm-referral-table-status-cell",{"status-text":"Denied","fraud-status":"DENIED",converted:false})};var DateCell=function(){return h("sqm-referral-table-date-cell",{date:9e11})};var rewardsData={id:"123",type:"CREDIT",value:19,unit:"POINT",name:"test",dateGiven:1627427794891,dateScheduledFor:16281468e5,dateExpires:16290108e5,dateCancelled:134400,dateRedeemed:0,fuelTankCode:"ABC",fuelTankType:"Code",currency:"null",prettyValue:"19 Points",statuses:["AVAILABLE"],globalRewardKey:"Key",rewardRedemptionTransactions:{data:[{exchangedRewards:{data:[{prettyValue:"19 Points",type:"CREDIT",fuelTankCode:"ABC",globalRewardKey:"Key"}]}}]}};var rewards=[rewardsData];var RewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:rewards,statusText:"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }",statusLongText:"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} REDEEMED {Redeemed} other {Not available} }",fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}"})};var ReferralTableCell=Object.freeze({__proto__:null,default:ReferralTableCell_stories,TableCell:TableCell,TableUserCell:TableUserCell,EmptyCell:EmptyCell$1,Converted:Converted,InProgress:InProgress,PendingReview:PendingReview$1,Pending:Pending,Denied:Denied$1,DateCell:DateCell,RewardsCell:RewardsCell});var scenario$d='@owner:sam\n@author:sam\nFeature: Referral Table\n\n The Referral table component shows users a list of their referrals. The referral table it\'s self can be customized\n with a collection of columns.\n\n @motivating\n @ui\n Scenario: The empty state is shown if there are no referrals\n Given a user with no referrals\n When they view the referral table\n Then no referrals are displayed\n And they see an image with a user icon\n And "View your referral details" in bold\n And "Track the status of your referrals and rewards earned by referring friends" below the bolded text\n And the pagination buttons are disabled\n\n @motivating\n @ui\n Scenario: The empty state image and text are customizable\n Given the referral table has \'sqm-empty\' as a child with the following props\n | prop | value |\n | empty-state-imgage | https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png |\n | empty-state-header | View your referral history |\n | empty-state-text | See your previous referrals and what you earned! |\n And a user with no referrals\n When they view the referral table\n Then they see no referrals\n And they see the SaaSquatch logo\n And "View your referral history" in bold\n And "See your previous referrals and what you earned!" below the bolded text\n\n @minutia\n @ui\n Scenario: A custom empty state can be provided\n Given a user with no referrals\n And a custom empty state has been supplied in the "empty" slot\n When they view the referral table\n Then they see the custom empty state\n\n @motivating\n @ui\n Scenario: The loading state is shown while referrals are loading\n Given the table is loading\n Then the loading state is shown in the table\n And a custom loading state can be supplied in the "loading" slot\n And the pagination buttons are disabled\n\n @motivating\n @ui\n Scenario Outline: The table becomes paginated when the number of referrals exceeds the per page limit\n Given the user has <number of referrals>\n And the table is configured to show <page limit> referrals per page\n Then the table will have <number of pages> page(s)\n And pagination buttons will allow users to navigate between pages\n And the pagination button to go to the next page is disabled on the last page of referrals\n And the pagination button to go to the previous page is disabled on the first page of referrals\n Examples:\n | number of referrals | page limit | number of pages |\n | 0 | 4 | 1 |\n | 1 | 4 | 1 |\n | 3 | 4 | 1 |\n | 5 | 4 | 2 |\n | 42 | 4 | 11 |\n\n @motivating\n @ui\n Scenario: The table converts to a card view on tablet and mobile window sizes\n Given a user with referrals\n When they view the table\n And their window size is smaller than "799px"\n Then referrals are displayed as cards\n And they are in two columns\n When their window size is smaller than "599px"\n Then the referrals are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario: Table and Mobile beakpoints can be configured\n Given the referral table has been configured with the following props\n | prop | value |\n | smBreakpoint | 599 |\n | mdBreakpoint | 799 |\n And a user with referrals\n When they view the table\n And their window size is smaller than "799px"\n Then referrals are displayed as cards\n And they are in two columns\n When their window size is smaller than "599px"\n Then the referrals are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario Outline: By default the first column heading is hidden in mobile, but others can be hidden\n Given a referral table with 4 columns\n And prop "hidden-columns" with <hideColumnValue>\n And a user with referrals\n When they view the referral table\n And their window size is below the tablet breakpoint\n Then referral cards are displayed\n And the titles of <columnsArehidden> within the card\n Examples:\n | hideColumnValue | columnsArehidden |\n | | the first column |\n | 0,1,2 | the first, second and third columns |\n | 3 | the fourth column |\n\n @motivating\n Scenario: The use who referred the current user can be shown in the table\n Given the table is configured with <showReferrer> set to true\n And the current user was referrered by <referrer>\n Then the first table row on the first page of the table is for <referrer>\n\n @motivating\n Scenario: Only referrals which occured in the program specific by program-id are shown\n Given the table is configured with "program-id"\n Then only referrals from the program with "program-id" are shown\n\n @motivating\n Scenario: Classic program shows only classic referrals\n Given the "program-id" of the table is set to "classic"\n Then only classic referrals are shown in the table\n\n @minutia\n @ui\n Scenario: Column heading can be hidden\n Given the table is configured with "hide-labels" set to "true"\n Then the table is displayed without column headings';var ReferralTable_stories={title:"Components/Referral Table",parameters:{scenario:scenario$d}};var loadingElement=h("div",{slot:"loading",style:{display:"contents"}},h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))));var emptyElement=h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_referral2.png","empty-state-header":"View your referral details","empty-state-text":"Track the status of your referrals and rewards earned by referring friends"});var baseReward$1={id:"123",type:"CREDIT",value:19,unit:"POINT",name:"test",dateGiven:1627427794891,dateScheduledFor:16281468e5,dateExpires:16290108e5,dateCancelled:134400,dateRedeemed:0,fuelTankCode:"ABC",fuelTankType:"Code",currency:"null",prettyValue:"19 Points",statuses:["AVAILABLE"],globalRewardKey:"Key",rewardRedemptionTransactions:{data:[{exchangedRewards:{data:[{prettyValue:"19 Points",type:"CREDIT",fuelTankCode:"ABC",globalRewardKey:"Key"}]}}]}};var pendingReward$1={statuses:["AVAILABLE","PENDING"]};var cancelledReward$1={statuses:["PENDING","CANCELLED"],dateCancelled:16268508e5};var expiredReward$1={statuses:["EXPIRED","AVAILABLE"],dateExpires:16268508e5};var availableReward$1={statuses:["AVAILABLE"]};var nullExpiresIn$1={dateExpires:null};var simpleUserTableProps={states:{hasPrev:false,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Customer","Status","Date converted","Rewards"],rows:[[h("sqm-referral-table-user-cell",{name:"Joe Smith"}),h(Pending,null),h(DateCell,null),h(PendingNoUnpend,null)],[h("sqm-referral-table-user-cell",{name:"Bob Williams"}),h(InProgress,null),h(DateCell,null),h(AvailableNoExpiry,null)],[h("sqm-referral-table-user-cell",{name:"Sarah Joseph"}),h(Converted,null),h(DateCell,null),h(Redeemed,null)],[h("sqm-referral-table-user-cell",{name:"Tom Smith"}),h(PendingReview$1,null),h(DateCell,null),h(PendingReview,null)],[h("sqm-referral-table-user-cell",{name:"Tom Smith"}),h(Denied$1,null),h(DateCell,null),h(Denied,null)]]}};var singleTableProps={states:{hasPrev:false,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Customer","Status","Date converted","Rewards"],rows:[[h("sqm-referral-table-user-cell",{name:"Bob Williams"}),h("sqm-referral-table-user-cell",{name:"bwill@gmail.com"}),h("sqm-referral-table-user-cell",{name:"09/05/1999"}),h(AvailableNoExpiry,null)]]}};var hideLabelProps={data:{textOverrides:{showLabels:false,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599}};var customButtonProps={states:{hasPrev:true,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"CUSTOM PREVIOUS TEXT",moreLabel:"CUSTOM NEXT TEXT"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599}};var longCellTextTableProps={states:{hasPrev:false,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Name","Email","DOB","City","State/Province","Country","Referrals","Reward Earnings","Status"],rows:[[h("sqm-referral-table-user-cell",{name:"Bartholomew Christopher-Johnston Wallace"}),h("sqm-referral-table-user-cell",{name:"jsmith@gmail.com"}),h("sqm-referral-table-date-cell",{date:-220896e5}),h("sqm-referral-table-user-cell",{name:"Vancouver"}),h("sqm-referral-table-cell",{innerTemplate:"British Columbia"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"14,000,000"}),h("sqm-referral-table-user-cell",{name:"$800,000,000,000"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true})],[h("sqm-referral-table-user-cell",{name:"Bob Williams"}),h("sqm-referral-table-user-cell",{name:"bwill@gmail.com"}),h("sqm-referral-table-date-cell",{date:8e11}),h("sqm-referral-table-user-cell",{name:"Los Angeles"}),h("sqm-referral-table-cell",{innerTemplate:"California"}),h("sqm-referral-table-user-cell",{name:"US"}),h("sqm-referral-table-user-cell",{name:"1"}),h("sqm-referral-table-user-cell",{name:"$5"}),h("sqm-referral-table-status-cell",{statusText:"In progress",converted:false}),,],[h("sqm-referral-table-user-cell",{name:"Sarah Joseph"}),h("sqm-referral-table-user-cell",{name:"sjoseph@gmail.com"}),h("sqm-referral-table-date-cell",{date:444703707e3}),h("sqm-referral-table-user-cell",{name:"Toronto"}),h("sqm-referral-table-cell",{innerTemplate:"Ontario"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"10"}),h("sqm-referral-table-user-cell",{name:"$71"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true}),,]]}};var longColumnTextTableProps={states:{hasPrev:false,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Lorem ipsum dolor sit amet consectetur adipisicing elit.","Email","DOB","City","State/Province","Country","Referrals","Rewarddddddddddd Earningsssssssssssss","Status"],rows:[[h("sqm-referral-table-user-cell",{name:"Joe Smith"}),h("sqm-referral-table-user-cell",{name:"jsmith@gmail.com"}),h("sqm-referral-table-date-cell",{date:-2128547493e3}),h("sqm-referral-table-user-cell",{name:"Vancouver"}),h("sqm-referral-table-cell",{innerTemplate:"British Columbia"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"14"}),h("sqm-referral-table-user-cell",{name:"$88"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true})],[h("sqm-referral-table-user-cell",{name:"Bob Williams"}),h("sqm-referral-table-user-cell",{name:"bwill@gmail.com"}),h("sqm-referral-table-date-cell",{date:8e11}),h("sqm-referral-table-user-cell",{name:"Los Angeles"}),h("sqm-referral-table-cell",{innerTemplate:"California"}),h("sqm-referral-table-user-cell",{name:"US"}),h("sqm-referral-table-user-cell",{name:"1"}),h("sqm-referral-table-user-cell",{name:"$5"}),h("sqm-referral-table-status-cell",{statusText:"In progress",converted:false}),,],[h("sqm-referral-table-user-cell",{name:"Sarah Joseph"}),h("sqm-referral-table-user-cell",{name:"sjoseph@gmail.com"}),h("sqm-referral-table-date-cell",{date:444703707e3}),h("sqm-referral-table-user-cell",{name:"Toronto"}),h("sqm-referral-table-cell",{innerTemplate:"Ontario"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"10"}),h("sqm-referral-table-user-cell",{name:"$71"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true}),,]]}};var fullUserTableProps=function(e){if(e===void 0){e=false}return{states:{hasPrev:false,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:e?"0,1,2,3,4,5,6,7,8":"-1",mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Name","Email","DOB","City","State/Province","Country","Referrals","Reward Earnings","Status"],rows:[[h("sqm-referral-table-user-cell",{name:"Joe Smith"}),h("sqm-referral-table-user-cell",{name:"jsmith@gmail.com"}),h("sqm-referral-table-date-cell",{date:-2128547493e3}),h("sqm-referral-table-user-cell",{name:"Vancouver"}),h("sqm-referral-table-cell",{innerTemplate:"British Columbia"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"14"}),h("sqm-referral-table-user-cell",{name:"$88"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true})],[h("sqm-referral-table-user-cell",{name:"Bob Williams"}),h("sqm-referral-table-user-cell",{name:"bwill@gmail.com"}),h("sqm-referral-table-date-cell",{date:8e11}),h("sqm-referral-table-user-cell",{name:"Los Angeles"}),h("sqm-referral-table-cell",{innerTemplate:"California"}),h("sqm-referral-table-user-cell",{name:"US"}),h("sqm-referral-table-user-cell",{name:"1"}),h("sqm-referral-table-user-cell",{name:"$5"}),h("sqm-referral-table-status-cell",{statusText:"In progress",converted:false}),,],[h("sqm-referral-table-user-cell",{name:"Sarah Joseph"}),h("sqm-referral-table-user-cell",{name:"sjoseph@gmail.com"}),h("sqm-referral-table-date-cell",{date:444703707e3}),h("sqm-referral-table-user-cell",{name:"Toronto"}),h("sqm-referral-table-cell",{innerTemplate:"Ontario"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"10"}),h("sqm-referral-table-user-cell",{name:"$71"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true}),,]]}}};var SimpleUserTable=function(){return h(GenericTableView,Object.assign({},simpleUserTableProps))};var SingleEntry=function(){return h(GenericTableView,Object.assign({},singleTableProps))};var HiddenLabelsTable=function(){return h(GenericTableView,Object.assign({},__assign(__assign({},simpleUserTableProps),hideLabelProps)))};var CustomButtonTextTable=function(){return h(GenericTableView,Object.assign({},__assign(__assign({},simpleUserTableProps),customButtonProps)))};var FullUserTable=function(){return h(GenericTableView,Object.assign({},fullUserTableProps()))};var LongCellTextTable=function(){return h(GenericTableView,Object.assign({},longCellTextTableProps))};var LongColumnTextTable=function(){return h(GenericTableView,Object.assign({},longColumnTextTableProps))};var EmptyTable=function(){return h("sqm-referral-table",{demoData:{states:{hasPrev:false,hasNext:false,show:"empty",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},elements:{emptyElement:emptyElement,loadingElement:loadingElement,columns:["Name","Email","DOB"],rows:[]}}})};var LoadingTable=function(){return h("sqm-referral-table",{demoData:{states:{hasPrev:false,hasNext:false,show:"loading",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},elements:{emptyElement:emptyElement,loadingElement:loadingElement,columns:["Name","Email","DOB"],rows:[]}}})};var FullRewardsTable=function(){return h("sqm-referral-table",{demoData:{states:{hasPrev:false,hasNext:false,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"1",mdBreakpoint:799,smBreakpoint:599},elements:{emptyElement:emptyElement,loadingElement:loadingElement,columns:["User","Rewards","Status","Date Started","Date Converted"],rows:[[h("sqm-referral-table-user-cell",{name:"Joe Smith"}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward$1),availableReward$1),__assign(__assign({},baseReward$1),pendingReward$1),__assign(__assign({},baseReward$1),cancelledReward$1)],statusText:"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }",statusLongText:"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} REDEEMED {Redeemed} other {Not available} }",fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true}),h("sqm-referral-table-date-cell",{date:16267644e5}),h("sqm-referral-table-date-cell",{date:1627427794891})],[h("sqm-referral-table-user-cell",{name:"Sarah Williams"}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward$1),expiredReward$1)],statusText:"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }",statusLongText:"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} REDEEMED {Redeemed} other {Not available} }",fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}"}),h("sqm-referral-table-status-cell",{statusText:"Incomplete",converted:false}),h("sqm-referral-table-date-cell",{date:16267644e5}),h("sqm-referral-table-date-cell",{date:null})],[h("sqm-referral-table-user-cell",{name:"Marvin Smith"}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward$1),nullExpiresIn$1),__assign(__assign({},baseReward$1),pendingReward$1)],statusText:"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }",statusLongText:"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} REDEEMED {Redeemed} other {Not available} }",fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true}),h("sqm-referral-table-date-cell",{date:16267644e5}),h("sqm-referral-table-date-cell",{date:1627427794891})]]}}})};var ColumnsMobileHidden=function(){return h(GenericTableView,Object.assign({},fullUserTableProps(true)))};var ReferralTable=Object.freeze({__proto__:null,default:ReferralTable_stories,SimpleUserTable:SimpleUserTable,SingleEntry:SingleEntry,HiddenLabelsTable:HiddenLabelsTable,CustomButtonTextTable:CustomButtonTextTable,FullUserTable:FullUserTable,LongCellTextTable:LongCellTextTable,LongColumnTextTable:LongColumnTextTable,EmptyTable:EmptyTable,LoadingTable:LoadingTable,FullRewardsTable:FullRewardsTable,ColumnsMobileHidden:ColumnsMobileHidden});var UserName_stories={title:"Tests/User Name"};var DemoData=function(){return h("sqm-user-name",{demoData:{loading:false,loadingText:"...",username:"Test Testerson"}})};var Username=function(){return h("sqm-user-name",null)};var UserName=Object.freeze({__proto__:null,default:UserName_stories,DemoData:DemoData,Username:Username});var PasswordField_stories={title:"Components/Portal Password Field"};var Start=function(){return h("sqm-password-field",{demoData:{initValue:"",states:{enableValidation:true,registrationFormState:{validationErrors:{}},content:{fieldLabel:"Password"}}}})};var EmptyError=function(){return h("sqm-password-field",{demoData:{initValue:"",states:{enableValidation:true,registrationFormState:{validationErrors:{password:"Cannot be empty"}},content:{fieldLabel:"Password"}}}})};var ValidationError=function(){return h("sqm-password-field",{demoData:{initValue:"asdf",states:{enableValidation:true,registrationFormState:{validationErrors:{password:"Incomplete"}},content:{fieldLabel:"Password"}}}})};var PasswordField=Object.freeze({__proto__:null,default:PasswordField_stories,Start:Start,EmptyError:EmptyError,ValidationError:ValidationError});function MatrixStory(e){var t=e.matrix,n=e.props,a=e.Component;var r=Object.keys(t).map((function(e){var n=t[e];return n.map((function(t){var n;return n={},n[e]=t,n}))}));var s=cartesian.apply(void 0,r);var i=s.map((function(e){return e.reduce((function(e,t){return __assign(__assign({},e),t)}),{})}));return i.map((function(e){var t=__assign(__assign({},n),e);return h("div",null,h(PropsTable,{values:t}),h("hr",null)," ",h("br",null),h(a,Object.assign({},t)),h("br",null))}))}function PropsTable(e){var t=e.values;return h("table",null,h("tbody",null,Object.keys(t).map((function(e){return h("tr",null,h("th",null,e),h("td",null,JSON.stringify(t[e])))}))))}function cartesian(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}var n=[],a=e.length-1;function r(t,s){for(var i=0,o=e[s].length;i<o;i++){var l=t.slice(0);l.push(e[s][i]);if(s==a)n.push(l);else r(l,s+1)}}r([],0);return n}var scenarioTaskCard='@author:derek\n@owner:kutay\nFeature: Task Card\n\n\t@motivating\n\t@ui\n\tScenario: A header, body title and a CTA button are always displayed\n\t\tGiven the Task Card is configured with the following props\n\t\t\t| prop | value |\n\t\t\t| rewardAmount | "40" |\n\t\t\t| rewardUnit | "Points" |\n\t\t\t| cardTitle | Complete a survey |\n\t\t\t| buttonText | Take Survey |\n\t\tWhen a user views the Task Card\n\t\tThen they see "40 Points" as the heading\n\t\tAnd the "40" is bolded\n\t\tAnd they see "Complete a survey" bolded in the body\n\t\tAnd a details icon in the top right hand corner\n\t\tAnd a button with text "Take Survey" in the bottom right hand corner\n\t\tWhen they click the button\n\t\tThen they are redirected to "example.com" in a new window\n\n\t@motivating\n\t@ui\n\tScenario Outline: A Task Card description can be included but is not required\n\t\tGiven a Task Card\n\t\tAnd it has <descriptionPropValue>\n\t\tWhen a user views the Task card\n\t\tThen they <maySee> a chevron icon in the top right\n\t\tWhen they attempt to click the chevron\n\t\tThen they <maySee> the card description\n\t\tExamples:\n\t\t\t| descriptionPropValue | maySee |\n\t\t\t| This is my task card description | see |\n\t\t\t| | don\'t see |\n\n\t@motivating\n\tScenario Outline: CTA links can open in a new tab or the same tab\n\t\tGiven a Task Card\n\t\tAnd it has <openNewTabPropValue>\n\t\tWhen a user views the Task card\n\t\tAnd they click on the CTA\n\t\tThen they are redirected to the CTA link in <tab>\n\t\tExamples:\n\t\t\t| openNewTabPropValue | tab |\n\t\t\t| true | a new tab |\n\t\t\t| false | the same tab |\n\t\t\t| N/A | the same tab |\n\n\t@minutia\n\t@ui\n\tScenario: A loading state is displayed while the Task Card is loading\n\t\tGiven a Task Card component\n\t\tWhen a user views the Task Card\n\t\tThen a loading state is displayed\n\t\tWhen the Task Card has loaded\n\t\tThen the loading state disapears\n\n\t@motivating\n\t@ui\n\tScenario Outline: The Progress Bar can be shown or hidden but is hidden by default\n\t\tGiven a Task Card\n\t\tAnd it has <showProgressBarPropValue>\n\t\tWhen a user views the Task Card\n\t\tThen the progress bar <mayBe> displayed\n\t\tExamples:\n\t\t\t| showProgressBarPropValue | mayBe |\n\t\t\t| true | is |\n\t\t\t| false | isn\'t |\n\t\t\t| N/A | isn\'t |\n\n\t@motivating\n\tScenario: Clicking the CTA Button can trigger an event to be sent and refresh the widget\n\t\tGiven a Task card\n\t\tAnd it is configured to send an "test" event\n\t\tWhen a user views the Task card\n\t\tAnd clicks on the CTA\n\t\tThen a "test" event is sent to SSQT on the users behalf\n\t\tAnd the contents of the widget the card is dislayed within are refreshed\n\n\t@motivating\n\t@ui\n\tScenario Outline: Tasks can be repeatable or one-time only but are one-time only by default\n\t\tGiven a Task Card\n\t\tAnd it has <repeatablePropValue>\n\t\tAnd a user who has already completed the task\n\t\tWhen they view the Task Card\n\t\tThen they see a brand colour checkmark icon beside the card heading\n\t\tAnd the card <mayBe> brand colour\n\t\tAnd the CTA button <mayBe> disabled\n\t\tAnd the CTA button <mayBe> grey\n\t\tExamples:\n\t\t\t| repeatablePropValue | mayBe |\n\t\t\t| true | isn\'t |\n\t\t\t| false | is |\n\t\t\t| N/A | is |\n\n\t@motivating\n\tScenario Outline: Display duration hides or shows a task\n\t\tGiven a Task Card\n\t\tAnd it has a "display-duration" interval\n\t\tWhen a user views the Card on <day>\n\t\tThen card <mayBeHidden>\n\t\tExamples:\n\t\t\t| day | mayBeHidden |\n\t\t\t| a day before the interval | is hidden |\n\t\t\t| a day during the interval | is not hidden |\n\t\t\t| a day after the interval | is hidden |\n\n\t@motivating\n\tScenario: Task Expiries can be configured and disable the CTA after the expiry\n\t\tGiven a Task Card\n\t\tAnd it has an "reward-duration" interval\n\t\tWhen a user views the card on <day>\n\t\tThen the card <mayBeDisabled>\n\t\tAnd it <mayHaveAlert>\n\t\tAnd it <mayHaveExpiryText> on the bottom left hand side of the card\n\t\tExamples:\n\t\t\t| day | mayBeDisabled | mayHaveAlert | mayHaveExpiryText |\n\t\t\t| a day before the expiry interval | is disabled | has alert stating the month, date, year and time the task starts | doesn\'t have expiry text |\n\t\t\t| a day during the expiry interval | isn\'t disabled | doesn\'t have an alert | has the month, date, year and time the task expires |\n\t\t\t| a day after the expiry interval | is disabled | has alert stating the month, date, year and time the task expired | doesn\'t have expiry text |\n\n\t@motivating\n\tScenario Outline: Task Card dates support localization\n\t\tGiven a Task Card\n\t\tAnd it\'s configured with a expiry duration interval\n\t\tWhen a user with <locale> views the task card <atTime>\n\t\tThen they <seeDate> translated for <locale>\n\t\tExamples:\n\t\t\t| atTime | locale | seeDate |\n\t\t\t| before the interval | en | Task Start Date |\n\t\t\t| during the interval | en | Task End Date |\n\t\t\t| after the interval | en | Task Ended Date |\n\t\t\t| before the interval | fr | Task Start Date |\n\t\t\t| during the interval | fr | Task End Date |\n\t\t\t| after the interval | fr | Task Ended Date |\n\n\t@motivating\n\t@ui\n\tScenario Outline: A task completion count is displayed for repeatable tasks\n\t\tGiven a Task Card\n\t\tAnd it is configured for a repeatable task\n\t\tAnd has it has <goalValue>\n\t\tAnd a user with <userGoalProgress>\n\t\tWhen the user views the task card\n\t\tThen they see a repeat icon\n\t\tAnd the <text> in the bottom left hand corner\n\t\tAnd the <text> is brand colour\n\t\tExamples:\n\t\t\t| goalValue | userGoalProgress | text |\n\t\t\t| 2 | 0 | Completed 0 times |\n\t\t\t| 2 | 1 | Completed 0 times |\n\t\t\t| 2 | 2 | Completed 1 times |\n\t\t\t| 2 | 4 | Completed 2 times |\n\n\t@motivating\n\tScenario Outline: The source of a user\'s progress can be a custom field or a program goal\n\t\tGiven a Task Card\n\t\tAnd it is configured <progressSourcePath>\n\t\tWhen a user views the Task card\n\t\tThen the value at <progressSourcePath> is used to benchmark their progress against the "Goal Completion Count"\n\t\tExamples:\n\t\t\t| progressSourcePath |\n\t\t\t| /customFields/activityCount |\n\t\t\t| /customFields/purchaseTotal |\n\t\t\t| /programGoals/count%2FComment-on-Article |\n\t\t\t| /programGoals/count/Referral-Started%2Freferrals |\n\n\t@motivating\n\tScenario Outline: The users completion of a goal is calculated by the Goal Completion Number\n\t\tGiven a Task Card\n\t\tAnd it is configured for <goalValue>\n\t\tAnd a user who has <progressValue>\n\t\tWhen they view the Task Card\n\t\tThen they are shown to have <progressValue> towards <goalValue>\n\t\tWhen their progress grows larger than <goalValue>\n\t\tThen the task is marked as completed\n\t\tExamples:\n\t\t\t| goalValue | progressValue |\n\t\t\t| 1 | 0 |\n\t\t\t| 10 | 9 |\n\t\t\t| 5 | 2 |\n\n\t@motivating\n\tScenario: The Goal Completion Number defaults to 1\n\t\tGiven a Task Card without a configured "goal" value\n\t\tAnd a user who has <progressValue>\n\t\tWhen they view the Task Card\n\t\tThen it <mayBe> marked as completed\n\t\tExamples:\n\t\t\t| progressValue | mayBe |\n\t\t\t| 0 | isn\'t |\n\t\t\t| 1 | is |\n\t\t\t| 2 | is |\n\n\t@motivating\n\tScenario: CTA Button can be hidden on the task card\n\t\tGiven a Task Card\n\t\tAnd it has default prop values set\n\t\tAnd "hideButton" is true\n\t\tThen the task card is shown\n\t\tAnd the button is hidden\n';var scenarioProgressBar='@author:kutay\n@owner:kutay\nFeature: The progress bar can be shown as a continuous line with progress and end goal. \n\n\t@motivating\n\t@ui\n\tScenario Outline: The progress bar displays a continuous bar with the goal represented by a present\n\t\tGiven a Task Card component\n\t\tAnd the users progress is <progress>\n\t\tAnd the task goal is "500"\n\t\tAnd the task is not repeatable\n\t\tThen I have <progressBar>\n\t\tAnd the <progressBar> shows <progress> with <unit> on the right\n\t\tAnd the circle on the progress bar is brand colour\n\t\tAnd the line behind the circle is brand colour\n\t\tAnd the line infront of the circle is grey\n\t\tAnd the gift icon has <color>\n\t\tAnd the gift icon shows "500" with <unit> below\n\t\tExamples:\n\t\t\t| progress | progressBar | unit | color |\n\t\t\t| 0 | ●――――――――――――――――――🎁 | $ | no |\n\t\t\t| 100 | ―――●―――――――――――――――🎁 | $ | no |\n\t\t\t| 500 | ―――――――――――――――――――🎁 | $ | yes |\n\t\t\t| 650 | ―――――――――――――――――――🎁 | $ | yes |\n\t\t\t| 1200 | ―――――――――――――――――――🎁 | $ | yes |\n\n\t@motivating\n\t@ui\n\tScenario Outline: The progress bar can be displayed with steps instead of a continuous line\n\t\tGiven a Task Card component\n\t\tAnd the user progress is <progress>\n\t\tAnd the goal is "5"\n\t\tAnd steps are enabled\n\t\tThen I have <progressBar>\n\t\tAnd the <progressBar> has incrementing steps up to "5" in increments of 1\n\t\tAnd the steps behind the users progress are brand colour\n\t\tAnd the steps infront of the users progress are grey\n\t\tAnd the gift icon has <color>\n\t\tAnd the gift icon shows "5" below\n\t\tExamples:\n\t\t\t| progress | progressBar | color |\n\t\t\t| 0 | ―――○―――○―――○―――○―――🎁 | no |\n\t\t\t| 1 | ―――●―――○―――○―――○―――🎁 | no |\n\t\t\t| 5 | ―――●―――●―――●―――●―――🎁 | yes |\n\t\t\t| 7 | ―――●―――●―――●―――●―――🎁 | yes |\n\t\t\t| 12 | ―――●―――●―――●―――●―――🎁 | yes |\n\n\t@motivating\n\t@ui\n\tScenario Outline: The continuous progress bar will continue to progress for repeatable rewards\n\t\tGiven a Task Card component\n\t\tAnd the user progress is <progress>\n\t\tAnd the goal is "500"\n\t\tAnd it is repeatable\n\t\tThen I have <progressBar>\n\t\tAnd the <progressBar> shows <progress> with <unit> to the right\n\t\tAnd the first <icon1> is <color1> with <text1> displayed below\n\t\tAnd the second <icon2> is <color2> with <text2> displayed below\n\t\tAnd the third <icon3> is <color3> with <text3> displayed below\n\t\tAnd the circle on the progress bar is brand colour\n\t\tAnd the line behind the circle is brand colour\n\t\tAnd the line infront of the circle is grey\n\t\tExamples:\n\t\t\t| progress | progressBar | unit | icon1 | color1 | text1 | icon2 | color2 | text 2 | icon3 | color3 | text 3 |\n\t\t\t| 250 | ――――●――――🎁―――――――🎁 | $ | NA | NA | NA | gift | greyscale | 500 | gift | greyscale | 1000 |\n\t\t\t| 500 | ―――――――――🎁―――――――🎁 | $ | NA | NA | NA | gift | colorful | 500 | gift | greyscale | 1000 |\n\t\t\t| 750 | ―――――――――🎁―――●―――🎁 | $ | NA | NA | NA | gift | colorful | 500 | gift | greyscale | 1000 |\n\t\t\t| 1000 | 🎁―――――――🎁―――――――🎁 | $ | gift | colorful | 500 | gift | colorful | 1000 | gift | greyscale | 1500 |\n\t\t\t| 1250 | 🎁―――――――🎁―――●―――🎁 | $ | gift | colorful | 500 | gift | colorful | 1000 | gift | greyscale | 1500 |\n\n\t@motivating\n\t@ui\n\tScenario Outline: The stepped progress bar will continue to progress for repeatable rewards\n\t\tGiven a Task Card component\n\t\tAnd the user progress is <progress>\n\t\tAnd the goal is "5"\n\t\tAnd steps are enabled\n\t\tAnd it is repeatable\n\t\tThen I have <progressBar>\n\t\tAnd the <progressBar> has incrementing steps up to "5" in increments of 1\n\t\tAnd the first <icon1> is <color1>\n\t\tAnd the second <icon2> is <color2>\n\t\tAnd the third <icon3> is <color3>\n\t\tAnd the steps behind the users progress are brand colour\n\t\tAnd the steps infront of the users progress are grey\n\t\tExamples:\n\t\t\t| progress | progressBar | icon1 | color1 | icon2 | color2 | icon3 | color3 |\n\t\t\t| 0 | ―――○―○―○―○―🎁―○―○―○―○―🎁 | NA | NA | gift | greyscale | gift | greyscale |\n\t\t\t| 1 | ―――●―○―○―○―🎁―○―○―○―○―🎁 | NA | NA | gift | greyscale | gift | greyscale |\n\t\t\t| 5 | ―――●―●―●―●―🎁―○―○―○―○―🎁 | NA | NA | gift | colorful | gift | greyscale |\n\t\t\t| 7 | ―――●―●―●―●―🎁―●―●―○―○―🎁 | NA | NA | gift | colorful | gift | greyscale |\n\t\t\t| 12 | 🎁―●―●―●―●―🎁―●―●―○―○―🎁 | gift | colorful | gift | colorful | gift | greyscale |';var ResizerStylesheet="\n\n:root{\n --checker-color-1: #ffffff00;\n --checker-color-2: #ffffff00;\n --checker-size: 7px;\n --checker-gradient: linear-gradient(45deg, var(--checker-color-1) 25%, transparent 25%, transparent 75%, var(--checker-color-1) 75%);\n}\n.resizer{\n resize: horizontal;\n border: 2px dashed gray;\n\tmargin: -2px;\n padding: 12px;\n height: fit-content;\n overflow: hidden;\n\twidth: 100%;\n}\n\n.resizer{\n background-color: var(--checker-color-2);\n background-image: var(--checker-gradient), var(--checker-gradient);\n background-position: 0 0, var(--checker-size) var(--checker-size);\n background-size: calc(var(--checker-size) * 2) calc(var(--checker-size) * 2);\n}\n";var Resizer=function(e,t){return h("div",{class:"resizer"},t)};var scenario$e=scenarioTaskCard+scenarioProgressBar;var TaskCard_stories={title:"Components/Task Card/",parameters:{scenario:scenario$e}};var storyFrame={display:"inline-flex",gap:"32px"};var resizable={width:"347px",minWidth:"347px",resize:"horizontal",height:"fit-content",overflow:"hidden"};var oneAction={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"20",rewardUnit:"SaaSquatch Points",cardTitle:"Complete a survey",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,showProgressBar:false,steps:false,buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,rewardDuration:null,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:1,locale:"en"},states:{progress:0,loading:false,loadingEvent:false}};var coupleActions={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"40",rewardUnit:"SaaSquatch Points",cardTitle:"Comment on 5 articles",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,showProgressBar:true,steps:true,buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",rewardDuration:null,expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:5,locale:"en"},states:{progress:1,loading:false,loadingEvent:false}};var manyActions={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"150",rewardUnit:"SaaSquatch Points",cardTitle:"Spend $500 at our Store",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",showProgressBar:true,steps:false,progressBarUnit:"$",buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,rewardDuration:null,expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:500,locale:"en"},states:{progress:100,loading:false,loadingEvent:false}};var TaskCard$1=function(){var e={rewardDuration:"2021-11-30T08:00:00.000Z/2021-12-01T08:00:00.000Z"};var t=__assign(__assign({},e),{repeatable:true});return h("div",{style:storyFrame},h(Resizer,null,h("h4",null,"Not Repeatable"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{description:""}),states:__assign(__assign({},oneAction.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{description:""}),states:__assign(__assign({},coupleActions.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{description:""}),states:__assign(__assign({},manyActions.states),{progress:230})}))),h(Resizer,null,h("h4",null,"Repeatable"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true}),states:__assign(__assign({},oneAction.states),{progress:2})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true}),states:__assign(__assign({},coupleActions.states),{progress:7})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true}),states:__assign(__assign({},manyActions.states),{progress:650})}))),h(Resizer,null,h("h4",null,"Complete"),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500})}))),h(Resizer,null,h("h4",null,"Unavailable"),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0})},t)),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:3})},t)),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:250})},t))))};var TaskCardNotRepeatable=function(){return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:230})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500})})),h("h5",null)))};var TaskCardRepeatable=function(){return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true}),states:__assign(__assign({},oneAction.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true}),states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true}),states:__assign(__assign({},coupleActions.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true}),states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true}),states:__assign(__assign({},coupleActions.states),{progress:7})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true}),states:__assign(__assign({},coupleActions.states),{progress:10})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true}),states:__assign(__assign({},manyActions.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true}),states:__assign(__assign({},manyActions.states),{progress:500})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true}),states:__assign(__assign({},manyActions.states),{progress:650})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true}),states:__assign(__assign({},manyActions.states),{progress:1e3})})),h("h5",null)))};var TaskCardRepeatableFinite=function(){return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true,finite:2}),states:__assign(__assign({},oneAction.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true,finite:2}),states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true,finite:2}),states:__assign(__assign({},oneAction.states),{progress:2})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,finite:2}),states:__assign(__assign({},coupleActions.states),{progress:2})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,finite:2}),states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,finite:2}),states:__assign(__assign({},coupleActions.states),{progress:10})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,finite:3}),states:__assign(__assign({},coupleActions.states),{progress:12})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,finite:3}),states:__assign(__assign({},coupleActions.states),{progress:15})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,finite:2}),states:__assign(__assign({},manyActions.states),{progress:200})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,finite:3}),states:__assign(__assign({},manyActions.states),{progress:500})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,finite:2}),states:__assign(__assign({},manyActions.states),{progress:1e3})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,finite:3}),states:__assign(__assign({},manyActions.states),{progress:1200})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,finite:3}),states:__assign(__assign({},manyActions.states),{progress:1500})})),h("h5",null)))};var TaskCardEndDate=function(){var e={rewardDuration:luxon.DateTime.now().minus({days:1}).toISO()+"/"+luxon.DateTime.now().plus({days:1}).toISO()};var t=__assign(__assign({},e),{repeatable:true});return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),t),states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},coupleActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},coupleActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},coupleActions.content),t),states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},manyActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},manyActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},manyActions.content),t),states:__assign(__assign({},manyActions.states),{progress:1e3})})),h("h5",null)))};var TaskCardLoading=function(){var e={states:{loading:true,progress:0,loadingEvent:false}};return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,e))," ",h("h5",null),h(TaskCardView,Object.assign({},oneAction,e))," ",h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,e))," ",h("h5",null),h(TaskCardView,Object.assign({},coupleActions,e))," ",h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,e))," ",h("h5",null),h(TaskCardView,Object.assign({},manyActions,e))," ",h("h5",null)))};var TaskCardNotStarted=function(){var e={rewardDuration:luxon.DateTime.now().plus({days:1}).toISO()+"/"+luxon.DateTime.now().plus({days:2}).toISO()};var t=__assign(__assign({},e),{repeatable:true});return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0}),content:__assign(__assign({},oneAction.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1}),content:__assign(__assign({},oneAction.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0}),content:__assign(__assign({},oneAction.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1}),content:__assign(__assign({},oneAction.content),t)})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),t)})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:100}),content:__assign(__assign({},manyActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500}),content:__assign(__assign({},manyActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:100}),content:__assign(__assign({},manyActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500}),content:__assign(__assign({},manyActions.content),t)})),h("h5",null)))};var TaskCardEnded=function(){var e={rewardDuration:luxon.DateTime.now().minus({days:2}).toISO()+"/"+luxon.DateTime.now().minus({days:1}).toISO()};var t=__assign(__assign({},e),{repeatable:true});return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0}),content:__assign(__assign({},oneAction.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1}),content:__assign(__assign({},oneAction.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0}),content:__assign(__assign({},oneAction.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1}),content:__assign(__assign({},oneAction.content),t)})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),t)})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:100}),content:__assign(__assign({},manyActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500}),content:__assign(__assign({},manyActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:100}),content:__assign(__assign({},manyActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500}),content:__assign(__assign({},manyActions.content),t)})),h("h5",null)))};var TaskCardButtonHidden=function(){var e={rewardDuration:"2021-11-30T08:00:00.000Z/2021-12-01T08:00:00.000Z"};var t=__assign(__assign({},e),{repeatable:true});return h("div",{style:storyFrame},h(Resizer,null,h("h4",null,"Not Repeatable"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{description:"",hideButton:true}),states:__assign(__assign({},oneAction.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{description:"",hideButton:true}),states:__assign(__assign({},coupleActions.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{description:"",hideButton:true}),states:__assign(__assign({},manyActions.states),{progress:230})}))),h(Resizer,null,h("h4",null,"Repeatable"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true,hideButton:true}),states:__assign(__assign({},oneAction.states),{progress:2})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,hideButton:true}),states:__assign(__assign({},coupleActions.states),{progress:7})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,hideButton:true}),states:__assign(__assign({},manyActions.states),{progress:650})}))),h(Resizer,null,h("h4",null,"Complete"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{hideButton:true}),states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{hideButton:true}),states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{hideButton:true}),states:__assign(__assign({},manyActions.states),{progress:500})}))),h(Resizer,null,h("h4",null,"Unavailable"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{hideButton:true}),states:__assign(__assign({},oneAction.states),{progress:0})},t)),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{hideButton:true}),states:__assign(__assign({},coupleActions.states),{progress:3})},t)),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{hideButton:true}),states:__assign(__assign({},manyActions.states),{progress:250})},t))))};var ProgressBar=function(){var e={progress:0,goal:500,progressBarUnit:"$"};return h("div",null,h(MatrixStory,{matrix:{progress:[0,100,500,650,1200]},props:e,Component:ProgressBarView}))};var ProgressBarSteps=function(){var e={progress:0,steps:true,goal:5};return h("div",null,h(MatrixStory,{matrix:{progress:[0,1,5,7,12]},props:e,Component:ProgressBarView}))};var ProgressBarRepeatable=function(){var e={progress:0,goal:500,progressBarUnit:"$",repeatable:true};return h("div",null,h(MatrixStory,{matrix:{progress:[0,250,500,750,1e3,1250]},props:e,Component:ProgressBarView}))};var ProgressBarStepsRepeatable=function(){var e={progress:0,steps:true,goal:5,repeatable:true};return h("div",null,h(MatrixStory,{matrix:{progress:[0,1,5,7,12]},props:e,Component:ProgressBarView}))};var ProgressBarFinite=function(){var e={progress:0,goal:500,progressBarUnit:"$",repeatable:true,finite:2};return h("div",null,h(MatrixStory,{matrix:{progress:[0,250,500,750,1e3,1250]},props:e,Component:ProgressBarView}))};var ProgressBarStepsFinite=function(){var e={progress:0,steps:true,goal:5,repeatable:true,finite:2};return h("div",null,h(MatrixStory,{matrix:{progress:[0,1,5,7,10,12]},props:e,Component:ProgressBarView}))};var TaskCard$2=Object.freeze({__proto__:null,default:TaskCard_stories,TaskCard:TaskCard$1,TaskCardNotRepeatable:TaskCardNotRepeatable,TaskCardRepeatable:TaskCardRepeatable,TaskCardRepeatableFinite:TaskCardRepeatableFinite,TaskCardEndDate:TaskCardEndDate,TaskCardLoading:TaskCardLoading,TaskCardNotStarted:TaskCardNotStarted,TaskCardEnded:TaskCardEnded,TaskCardButtonHidden:TaskCardButtonHidden,ProgressBar:ProgressBar,ProgressBarSteps:ProgressBarSteps,ProgressBarRepeatable:ProgressBarRepeatable,ProgressBarStepsRepeatable:ProgressBarStepsRepeatable,ProgressBarFinite:ProgressBarFinite,ProgressBarStepsFinite:ProgressBarStepsFinite});var portalTemplate='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program">\n <sqm-router>\n <template\n path="/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)"\n >\n <sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqb-widget\n widget-type="p/referral-program/w/referrerWidget"\n track-loads="true"\n ></sqb-widget>\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var portalLeadSubmitTemplate='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program">\n <sqm-router>\n <template\n path="/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)"\n >\n <sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b|\\brefer\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/refer"\n icon="inbox"\n label="Submit A Lead"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqb-widget\n widget-type="p/referral-program/w/referrerWidget"\n track-loads="true"\n ></sqb-widget>\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path="/refer">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-referral-iframe></sqm-referral-iframe>\n </template>\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var portalLeadSubmitTemplateWithDashboard='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program">\n <sqm-router>\n <template\n path="/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)"\n >\n <sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b|\\brefer\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/refer"\n icon="inbox"\n label="Submit A Lead"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n ><sqm-titled-section label-margin="xx-small"\n ><sqm-text slot="label"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot="content">\n <h1>\n <sqm-user-name\n fallback="Anonymous User"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-titled-section padding="none" label-margin="x-large"\n ><sqm-text slot="label">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot="content">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot="content"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none">\n <sqm-text slot="label">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot="content"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot="content"\n direction="row"\n padding="none"\n gap="xxx-large"\n min-width="160px"\n ><sqm-share-button\n icon="envelope"\n medium="email"\n size="medium"\n pill="true"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium="twitter"\n size="medium"\n pill="true"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium="facebook"\n size="medium"\n pill="true"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path="/refer">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-referral-iframe></sqm-referral-iframe>\n </template>\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var portalTemplateWithDashboard='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program">\n <sqm-router>\n <template\n path="/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)"\n >\n <sqm-hero\n background="https://res.cloudinary.com/saasquatch/image/upload/v1683589787/Portal%20Assets/photo-1599676821464-3555954838dc.jpg"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n ><sqm-titled-section label-margin="xx-small"\n ><sqm-text slot="label"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot="content">\n <h1>\n <sqm-user-name\n fallback="Anonymous User"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-titled-section padding="none" label-margin="x-large"\n ><sqm-text slot="label">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot="content">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot="content"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none">\n <sqm-text slot="label">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot="content"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot="content"\n direction="row"\n padding="none"\n gap="xxx-large"\n min-width="160px"\n ><sqm-share-button\n icon="envelope"\n medium="email"\n size="medium"\n pill="true"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium="twitter"\n size="medium"\n pill="true"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium="facebook"\n size="medium"\n pill="true"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var multiProgramTemplate='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program-1">\n <sqm-router>\n <template\n path="/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)"\n >\n <sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-program-menu>\n <sl-menu-item value="referral-program-1"\n >Referral Program 1</sl-menu-item\n >\n <sl-menu-item value="referral-program-2"\n >Referral Program 2</sl-menu-item\n >\n </sqm-program-menu>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqb-program-switch>\n <template program-id="referral-program-1">\n <sqb-widget\n widget-type="p/referral-program-1/w/referrerWidget"\n track-loads="true"\n ></sqb-widget>\n </template>\n <template program-id="referral-program-2">\n <sqb-widget\n widget-type="p/referral-program-2/w/referrerWidget"\n track-loads="true"\n ></sqb-widget>\n </template>\n </sqb-program-switch>\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile></sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var multiProgramTemplateWithDashboard='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program-1">\n <sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-program-menu>\n <sl-menu-item value="referral-program-1"\n >Referral Program 1</sl-menu-item\n >\n <sl-menu-item value="referral-program-2"\n >Referral Program 2</sl-menu-item\n >\n </sqm-program-menu>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route\n ><sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n ><sqm-titled-section label-margin="xx-small"\n ><sqm-text slot="label"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot="content">\n <h1>\n <sqm-user-name\n fallback="Anonymous User"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-titled-section padding="none" label-margin="x-large"\n ><sqm-text slot="label">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot="content">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot="content"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none">\n <sqm-text slot="label">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot="content"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot="content"\n direction="row"\n padding="none"\n gap="xxx-large"\n min-width="160px"\n ><sqm-share-button\n icon="envelope"\n medium="email"\n size="medium"\n pill="true"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium="twitter"\n size="medium"\n pill="true"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium="facebook"\n size="medium"\n pill="true"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var dashboardTemplate='<sqm-portal-container direction="column" padding="xxx-large" gap="xxx-large"\n ><sqm-titled-section label-margin="xx-small"\n ><sqm-text slot="label"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot="content">\n <h1>\n <sqm-user-name fallback="Anonymous User"></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n><sqm-portal-container direction="column" padding="xxx-large" gap="xxx-large">\n <sqm-titled-section padding="none" label-margin="x-large"\n ><sqm-text slot="label"> <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot="content">\n <p>\n Get rewarded for referring potential customers to SaaSquatch. Earn\n commission for each successful lead you send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label"> <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot="content"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none">\n <sqm-text slot="label"> <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot="content"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label"> <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot="content"\n direction="row"\n padding="none"\n gap="xxx-large"\n min-width="160px"\n ><sqm-share-button\n icon="envelope"\n medium="email"\n size="medium"\n pill="true"\n >Email a friend</sqm-share-button\n ><sqm-share-button medium="twitter" size="medium" pill="true"\n >Tweet about us</sqm-share-button\n ><sqm-share-button medium="facebook" size="medium" pill="true"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n>\n';var leadSubmitTemplate="<sqm-referral-iframe></sqm-referral-iframe>\n";var editProfileTemplate='<sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n></sqm-portal-protected-route>\n<sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n</sqm-portal-container>\n';var activityTemplate='<sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n></sqm-portal-protected-route>\n<sqm-portal-container direction="column" padding="xxx-large" gap="xxx-large">\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n></sqm-portal-container>\n';var resetPasswordEmailTemplate='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n\n<html\n xmlns="http://www.w3.org/1999/xhtml"\n xmlns:o="urn:schemas-microsoft-com:office:office"\n xmlns:v="urn:schemas-microsoft-com:vml"\n>\n <head>\n \x3c!--[if gte mso 9\n ]><xml\n ><o:OfficeDocumentSettings\n ><o:AllowPNG /><o:PixelsPerInch\n >96</o:PixelsPerInch\n ></o:OfficeDocumentSettings\n ></xml\n ><!\n [endif]--\x3e\n <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />\n <meta content="width=device-width" name="viewport" />\n \x3c!--[if !mso]>\x3c!--\x3e\n <meta content="IE=edge" http-equiv="X-UA-Compatible" />\n \x3c!--<![endif]--\x3e\n <title></title>\n \x3c!--[if !mso]>\x3c!--\x3e\n \x3c!--<![endif]--\x3e\n <style type="text/css">\n body {\n margin: 0;\n padding: 0;\n }\n\n table,\n td,\n tr {\n vertical-align: top;\n border-collapse: collapse;\n }\n\n * {\n line-height: inherit;\n }\n\n a[x-apple-data-detectors="true"] {\n color: inherit !important;\n text-decoration: none !important;\n }\n </style>\n <style id="media-query" type="text/css">\n @media (max-width: 520px) {\n .block-grid,\n .col {\n min-width: 320px !important;\n max-width: 100% !important;\n display: block !important;\n }\n\n .block-grid {\n width: 100% !important;\n }\n\n .col {\n width: 100% !important;\n }\n\n .col_cont {\n margin: 0 auto;\n }\n\n img.fullwidth,\n img.fullwidthOnMobile {\n max-width: 100% !important;\n }\n\n .no-stack .col {\n min-width: 0 !important;\n display: table-cell !important;\n }\n\n .no-stack.two-up .col {\n width: 50% !important;\n }\n\n .no-stack .col.num2 {\n width: 16.6% !important;\n }\n\n .no-stack .col.num3 {\n width: 25% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num5 {\n width: 41.6% !important;\n }\n\n .no-stack .col.num6 {\n width: 50% !important;\n }\n\n .no-stack .col.num7 {\n width: 58.3% !important;\n }\n\n .no-stack .col.num8 {\n width: 66.6% !important;\n }\n\n .no-stack .col.num9 {\n width: 75% !important;\n }\n\n .no-stack .col.num10 {\n width: 83.3% !important;\n }\n\n .video-block {\n max-width: none !important;\n }\n\n .mobile_hide {\n min-height: 0px;\n max-height: 0px;\n max-width: 0px;\n display: none;\n overflow: hidden;\n font-size: 0px;\n }\n\n .desktop_hide {\n display: block !important;\n max-height: none !important;\n }\n }\n </style>\n <style id="icon-media-query" type="text/css">\n @media (max-width: 520px) {\n .icons-inner {\n text-align: center;\n }\n\n .icons-inner td {\n margin: 0 auto;\n }\n }\n </style>\n </head>\n <body\n class="clean-body"\n style="\n margin: 0;\n padding: 0;\n -webkit-text-size-adjust: 100%;\n background-color: #ffffff;\n "\n >\n \x3c!--[if IE]><div class="ie-browser"><![endif]--\x3e\n <table\n bgcolor="#FFFFFF"\n cellpadding="0"\n cellspacing="0"\n class="nl-container"\n role="presentation"\n style="\n table-layout: fixed;\n vertical-align: top;\n min-width: 320px;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n background-color: #ffffff;\n width: 100%;\n "\n valign="top"\n width="100%"\n >\n <tbody>\n <tr style="vertical-align: top" valign="top">\n <td style="word-break: break-word; vertical-align: top" valign="top">\n \x3c!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td align="center" style="background-color:#FFFFFF"><![endif]--\x3e\n <div style="background-color: transparent">\n <div\n class="block-grid"\n style="\n min-width: 320px;\n max-width: 500px;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n margin: 0 auto;\n background-color: transparent;\n "\n >\n <div\n style="\n border-collapse: collapse;\n display: table;\n width: 100%;\n background-color: transparent;\n "\n >\n \x3c!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color:transparent;"><tr><td align="center"><table cellpadding="0" cellspacing="0" border="0" style="width:500px"><tr class="layout-full-width" style="background-color:transparent"><![endif]--\x3e\n \x3c!--[if (mso)|(IE)]><td align="center" width="500" style="background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;" valign="top"><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;"><![endif]--\x3e\n <div\n class="col num12"\n style="\n min-width: 320px;\n max-width: 500px;\n display: table-cell;\n vertical-align: top;\n width: 500px;\n "\n >\n <div class="col_cont" style="width: 100% !important">\n \x3c!--[if (!mso)&(!IE)]>\x3c!--\x3e\n <div\n style="\n border-top: 0px solid transparent;\n border-left: 0px solid transparent;\n border-bottom: 0px solid transparent;\n border-right: 0px solid transparent;\n padding-top: 5px;\n padding-bottom: 5px;\n padding-right: 0px;\n padding-left: 0px;\n "\n >\n \x3c!--<![endif]--\x3e\n <table\n cellpadding="0"\n cellspacing="0"\n role="presentation"\n style="\n table-layout: fixed;\n vertical-align: top;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n "\n valign="top"\n width="100%"\n >\n <tr style="vertical-align: top" valign="top">\n <td\n align="center"\n style="\n word-break: break-word;\n vertical-align: top;\n padding-bottom: 20px;\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 10px;\n text-align: center;\n width: 100%;\n "\n valign="top"\n width="100%"\n >\n <h1\n style="\n color: #444445;\n direction: ltr;\n font-family: \'Helvetica Neue\', Helvetica,\n Arial, sans-serif;\n font-size: 20px;\n font-weight: normal;\n letter-spacing: normal;\n line-height: 120%;\n text-align: left;\n margin-top: 0;\n margin-bottom: 0;\n "\n >\n <strong>Reset your password</strong>\n </h1>\n </td>\n </tr>\n </table>\n \x3c!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif"><![endif]--\x3e\n <div\n style="\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.8;\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n "\n >\n <div\n class="txtTinyMce-wrapper"\n style="\n font-size: 14px;\n line-height: 1.8;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 25px;\n "\n >\n <p\n style="\n margin: 0;\n font-size: 14px;\n line-height: 1.8;\n word-break: break-word;\n mso-line-height-alt: 25px;\n margin-top: 0;\n margin-bottom: 0;\n "\n >\n <span style="font-size: 14px"\n >We received a request to reset your password.\n Click the button below to reset your\n password.</span\n >\n </p>\n </div>\n </div>\n <div\n align="center"\n class="button-container"\n style="\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n "\n >\n \x3c!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;"><tr><td style="padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px" align="center"><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" target="_blank" href={{validationLink}} style="height:31.5pt;width:390pt;v-text-anchor:middle;" arcsize="12%" stroke="false" fillcolor="#2270ee"><w:anchorlock/><v:textbox inset="0,0,0,0"><center style="color:#ffffff; font-family:Arial, sans-serif; font-size:14px"><!\n [endif]--\x3e<a\n href="{{validationLink}}"\n target="_blank"\n style="\n -webkit-text-size-adjust: none;\n text-decoration: none;\n display: block;\n color: #ffffff;\n background-color: #2270ee;\n border-radius: 5px;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n width: 100%;\n width: calc(100% - 2px);\n border-top: 1px solid #2270ee;\n border-right: 1px solid #2270ee;\n border-bottom: 1px solid #2270ee;\n border-left: 1px solid #2270ee;\n padding-top: 5px;\n padding-bottom: 5px;\n font-family: \'Helvetica Neue\', Helvetica, Arial,\n sans-serif;\n text-align: center;\n mso-border-alt: none;\n word-break: keep-all;\n "\n target="_blank"\n ><span\n style="\n padding-left: 20px;\n padding-right: 20px;\n font-size: 14px;\n display: inline-block;\n letter-spacing: undefined;\n "\n ><span\n style="\n font-size: 16px;\n line-height: 2;\n word-break: break-word;\n mso-line-height-alt: 32px;\n "\n ><span\n style="font-size: 14px; line-height: 28px"\n >Reset Password</span\n ></span\n ></span\n ></a\n >\n \x3c!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]--\x3e\n </div>\n \x3c!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 10px; padding-left: 10px; padding-top: 15px; padding-bottom: 15px; font-family: Arial, sans-serif"><![endif]--\x3e\n <div\n style="\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.2;\n padding-top: 15px;\n padding-right: 10px;\n padding-bottom: 15px;\n padding-left: 10px;\n "\n >\n <div\n class="txtTinyMce-wrapper"\n style="\n font-size: 14px;\n line-height: 1.2;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 17px;\n "\n >\n <p\n style="\n margin: 0;\n font-size: 12px;\n line-height: 1.2;\n word-break: break-word;\n mso-line-height-alt: 14px;\n margin-top: 0;\n margin-bottom: 0;\n "\n >\n <span style="font-size: 12px"\n >If you didn\'t request a password reset please\n ignore this email. Your password will not\n change.</span\n >\n </p>\n </div>\n </div>\n \x3c!--[if mso]></td></tr></table><![endif]--\x3e\n \x3c!--[if (!mso)&(!IE)]>\x3c!--\x3e\n </div>\n \x3c!--<![endif]--\x3e\n </div>\n </div>\n \x3c!--[if (mso)|(IE)]></td></tr></table><![endif]--\x3e\n \x3c!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]--\x3e\n </div>\n </div>\n </div>\n \x3c!--[if (mso)|(IE)]></td></tr></table><![endif]--\x3e\n </td>\n </tr>\n </tbody>\n </table>\n \x3c!--[if (IE)]></div><![endif]--\x3e\n </body>\n</html>';var verifyEmailTemplate='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n\n<html\n xmlns="http://www.w3.org/1999/xhtml"\n xmlns:o="urn:schemas-microsoft-com:office:office"\n xmlns:v="urn:schemas-microsoft-com:vml"\n>\n <head>\n \x3c!--[if gte mso 9\n ]><xml\n ><o:OfficeDocumentSettings\n ><o:AllowPNG /><o:PixelsPerInch\n >96</o:PixelsPerInch\n ></o:OfficeDocumentSettings\n ></xml\n ><!\n [endif]--\x3e\n <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />\n <meta content="width=device-width" name="viewport" />\n \x3c!--[if !mso]>\x3c!--\x3e\n <meta content="IE=edge" http-equiv="X-UA-Compatible" />\n \x3c!--<![endif]--\x3e\n <title></title>\n \x3c!--[if !mso]>\x3c!--\x3e\n \x3c!--<![endif]--\x3e\n <style type="text/css">\n body {\n margin: 0;\n padding: 0;\n }\n\n table,\n td,\n tr {\n vertical-align: top;\n border-collapse: collapse;\n }\n\n * {\n line-height: inherit;\n }\n\n a[x-apple-data-detectors="true"] {\n color: inherit !important;\n text-decoration: none !important;\n }\n </style>\n <style id="media-query" type="text/css">\n @media (max-width: 520px) {\n .block-grid,\n .col {\n min-width: 320px !important;\n max-width: 100% !important;\n display: block !important;\n }\n\n .block-grid {\n width: 100% !important;\n }\n\n .col {\n width: 100% !important;\n }\n\n .col_cont {\n margin: 0 auto;\n }\n\n img.fullwidth,\n img.fullwidthOnMobile {\n max-width: 100% !important;\n }\n\n .no-stack .col {\n min-width: 0 !important;\n display: table-cell !important;\n }\n\n .no-stack.two-up .col {\n width: 50% !important;\n }\n\n .no-stack .col.num2 {\n width: 16.6% !important;\n }\n\n .no-stack .col.num3 {\n width: 25% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num5 {\n width: 41.6% !important;\n }\n\n .no-stack .col.num6 {\n width: 50% !important;\n }\n\n .no-stack .col.num7 {\n width: 58.3% !important;\n }\n\n .no-stack .col.num8 {\n width: 66.6% !important;\n }\n\n .no-stack .col.num9 {\n width: 75% !important;\n }\n\n .no-stack .col.num10 {\n width: 83.3% !important;\n }\n\n .video-block {\n max-width: none !important;\n }\n\n .mobile_hide {\n min-height: 0px;\n max-height: 0px;\n max-width: 0px;\n display: none;\n overflow: hidden;\n font-size: 0px;\n }\n\n .desktop_hide {\n display: block !important;\n max-height: none !important;\n }\n }\n </style>\n <style id="icon-media-query" type="text/css">\n @media (max-width: 520px) {\n .icons-inner {\n text-align: center;\n }\n\n .icons-inner td {\n margin: 0 auto;\n }\n }\n </style>\n </head>\n <body\n class="clean-body"\n style="\n margin: 0;\n padding: 0;\n -webkit-text-size-adjust: 100%;\n background-color: #ffffff;\n "\n >\n \x3c!--[if IE]><div class="ie-browser"><![endif]--\x3e\n <table\n bgcolor="#FFFFFF"\n cellpadding="0"\n cellspacing="0"\n class="nl-container"\n role="presentation"\n style="\n table-layout: fixed;\n vertical-align: top;\n min-width: 320px;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n background-color: #ffffff;\n width: 100%;\n "\n valign="top"\n width="100%"\n >\n <tbody>\n <tr style="vertical-align: top" valign="top">\n <td style="word-break: break-word; vertical-align: top" valign="top">\n \x3c!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td align="center" style="background-color:#FFFFFF"><![endif]--\x3e\n <div style="background-color: transparent">\n <div\n class="block-grid"\n style="\n min-width: 320px;\n max-width: 500px;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n margin: 0 auto;\n background-color: transparent;\n "\n >\n <div\n style="\n border-collapse: collapse;\n display: table;\n width: 100%;\n background-color: transparent;\n "\n >\n \x3c!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color:transparent;"><tr><td align="center"><table cellpadding="0" cellspacing="0" border="0" style="width:500px"><tr class="layout-full-width" style="background-color:transparent"><![endif]--\x3e\n \x3c!--[if (mso)|(IE)]><td align="center" width="500" style="background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;" valign="top"><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;"><![endif]--\x3e\n <div\n class="col num12"\n style="\n min-width: 320px;\n max-width: 500px;\n display: table-cell;\n vertical-align: top;\n width: 500px;\n "\n >\n <div class="col_cont" style="width: 100% !important">\n \x3c!--[if (!mso)&(!IE)]>\x3c!--\x3e\n <div\n style="\n border-top: 0px solid transparent;\n border-left: 0px solid transparent;\n border-bottom: 0px solid transparent;\n border-right: 0px solid transparent;\n padding-top: 5px;\n padding-bottom: 5px;\n padding-right: 0px;\n padding-left: 0px;\n "\n >\n \x3c!--<![endif]--\x3e\n <table\n cellpadding="0"\n cellspacing="0"\n role="presentation"\n style="\n table-layout: fixed;\n vertical-align: top;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n "\n valign="top"\n width="100%"\n >\n <tr style="vertical-align: top" valign="top">\n <td\n align="center"\n style="\n word-break: break-word;\n vertical-align: top;\n padding-bottom: 20px;\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 10px;\n text-align: center;\n width: 100%;\n "\n valign="top"\n width="100%"\n >\n <h1\n style="\n color: #444445;\n direction: ltr;\n font-family: \'Helvetica Neue\', Helvetica,\n Arial, sans-serif;\n font-size: 20px;\n font-weight: normal;\n letter-spacing: normal;\n line-height: 120%;\n text-align: left;\n margin-top: 0;\n margin-bottom: 0;\n "\n >\n <strong>Verify your email address</strong>\n </h1>\n </td>\n </tr>\n </table>\n \x3c!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif"><![endif]--\x3e\n <div\n style="\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.8;\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n "\n >\n <div\n class="txtTinyMce-wrapper"\n style="\n font-size: 14px;\n line-height: 1.8;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 25px;\n "\n >\n <p\n style="\n margin: 0;\n font-size: 14px;\n line-height: 1.8;\n word-break: break-word;\n mso-line-height-alt: 25px;\n margin-top: 0;\n margin-bottom: 0;\n "\n >\n <span style="font-size: 14px"\n >Thank you for signing up! Please click the button below\n to verify your email address.</span\n >\n </p>\n </div>\n </div>\n \x3c!--[if mso]></td></tr></table><![endif]--\x3e\n <div\n align="center"\n class="button-container"\n style="\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n "\n >\n \x3c!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;"><tr><td style="padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px" align="center"><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" target="_blank" href={{validationLink}} style="height:31.5pt;width:390pt;v-text-anchor:middle;" arcsize="12%" stroke="false" fillcolor="#2270ee"><w:anchorlock/><v:textbox inset="0,0,0,0"><center style="color:#ffffff; font-family:Arial, sans-serif; font-size:14px"><!\n [endif]--\x3e<a\n href={{validationLink}}\n\t\t\t\t\t\t\ttarget="_blank"\n style="\n -webkit-text-size-adjust: none;\n text-decoration: none;\n display: block;\n color: #ffffff;\n background-color: #2270ee;\n border-radius: 5px;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n width: 100%;\n width: calc(100% - 2px);\n border-top: 1px solid #2270ee;\n border-right: 1px solid #2270ee;\n border-bottom: 1px solid #2270ee;\n border-left: 1px solid #2270ee;\n padding-top: 5px;\n padding-bottom: 5px;\n font-family: \'Helvetica Neue\', Helvetica, Arial,\n sans-serif;\n text-align: center;\n mso-border-alt: none;\n word-break: keep-all;\n "\n target="_blank"\n ><span\n style="\n padding-left: 20px;\n padding-right: 20px;\n font-size: 14px;\n display: inline-block;\n letter-spacing: undefined;\n "\n ><span\n style="\n font-size: 16px;\n line-height: 2;\n word-break: break-word;\n mso-line-height-alt: 32px;\n "\n ><span\n style="font-size: 14px; line-height: 28px"\n >Verify Email</span\n ></span\n ></span\n ></a\n >\n \x3c!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]--\x3e\n </div>\n \x3c!--<![endif]--\x3e\n </div>\n </div>\n \x3c!--[if (mso)|(IE)]></td></tr></table><![endif]--\x3e\n \x3c!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]--\x3e\n </div>\n </div>\n </div>\n \x3c!--[if (mso)|(IE)]></td></tr></table><![endif]--\x3e\n </td>\n </tr>\n </tbody>\n </table>\n \x3c!--[if (IE)]></div><![endif]--\x3e\n </body>\n</html>';var loginTemplate='<sqm-hero background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80">\n <sqm-portal-login></sqm-portal-login>\n</sqm-hero>\n';var registerTemplate='<sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n>\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n</sqm-hero>\n';var forgotPasswordTemplate='<sqm-hero background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n</sqm-hero>\n';var resetPasswordTemplate='<sqm-portal-reset-password confirm-password="true"></sqm-portal-reset-password>\n';var emailVerifiedTemplate="<sqm-portal-verify-email></sqm-portal-verify-email>\n";var emailVerificationTemplate='<sqm-portal-protected-route redirect-to="/login"></sqm-portal-protected-route>\n<sqm-portal-email-verification></sqm-portal-email-verification>\n';var LoginReadme='# sqm-portal-login\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| --------------------- | ----------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; forgotPasswordPath: string; registerPath: string; }; content?: { forgotPasswordButton?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; }; }` | `undefined` |\n| `emailLabel` | `email-label` | | `string` | `"Email"` |\n| `forgotPasswordLabel` | `forgot-password-label` | | `string` | `"Forgot Password?"` |\n| `forgotPasswordPath` | `forgot-password-path` | Redirect participants to this page to reset their password | `string` | `"/forgotPassword"` |\n| `nextPage` | `next-page` | Redirect participants to this page after they successfully login. | `string` | `"/"` |\n| `pageLabel` | `page-label` | | `string` | `"Sign in to your account"` |\n| `passwordLabel` | `password-label` | | `string` | `"Password"` |\n| `registerLabel` | `register-label` | | `string` | `"Register"` |\n| `registerPath` | `register-path` | Redirect participants to this page to start registration. | `string` | `"/register"` |\n| `submitLabel` | `submit-label` | | `string` | `"Sign In"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-login --\x3e sqm-form-message\n sqm-stencilbook --\x3e sqm-portal-login\n style sqm-portal-login fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var ReferralIframeReadme='# sqm-referral-iframe\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| -------------- | --------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------- |\n| `demoData` | -- | | `{ states?: { content: { iframeSrc: string; iframeHeight: string; iframeWidth: string; }; }; data?: { shareCode: string; }; }` | `undefined` |\n| `iframeHeight` | `iframe-height` | Define the height of the iframe with any valid CSS height value. Example: 100px, 5rem, or auto. | `string` | `"100%"` |\n| `iframeSrc` | `iframe-src` | URL of iframe to display | `string` | `undefined` |\n| `iframeWidth` | `iframe-width` | Define the width of the iframe with any valid CSS width value. Example: 100px, 5rem, or auto. | `string` | `"100%"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-stencilbook --\x3e sqm-referral-iframe\n style sqm-referral-iframe fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var ForgotPasswordReadme='# sqm-portal-forgot-password\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| -------------- | --------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; loginPath: string; }; content?: { secondaryButton: any; messageSlot: any; emailLabel?: string; submitLabel?: string; }; }` | `undefined` |\n| `emailLabel` | `email-label` | | `string` | `"Email"` |\n| `headerText` | `header-text` | | `string` | `"Enter your email below to receive a password reset link."` |\n| `loginPath` | `login-path` | | `string` | `"/login"` |\n| `loginText` | `login-text` | Sign in link text | `string` | `"Sign In"` |\n| `redirectPath` | `redirect-path` | Redirect participants to this page after they verify their email. | `string` | `"/resetPassword"` |\n| `submitLabel` | `submit-label` | | `string` | `"Request Password Reset"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-forgot-password --\x3e sqm-form-message\n style sqm-portal-forgot-password fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var RegisterReadme='# sqm-portal-register\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ------------------------------ | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- |\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `"Confirm Password"` |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; registrationFormState: RegistrationFormState; disablePasswordValidation?: boolean; loginPath: string; }; refs?: { formRef: any; }; content?: { formData?: VNode; terms?: VNode; passwordField?: VNode; secondaryButton?: VNode; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; requiredFieldErrorMessage: string; invalidEmailErrorMessage: string; }; }` | `undefined` |\n| `disablePasswordValidation` | `disable-password-validation` | | `boolean` | `false` |\n| `emailLabel` | `email-label` | | `string` | `"Email"` |\n| `hideInputs` | `hide-inputs` | Hides the email and password fields. Note: If you hide default inputs, you must add additional input fields. They must have the input name attributes "email" and "password" for this form to succeed. | `boolean` | `false` |\n| `invalidEmailErrorMessage` | `invalid-email-error-message` | The message to be displayed when the email used is invalid or blocked. | `string` | `"Must be a valid email address"` |\n| `loginLabel` | `login-label` | | `string` | `"Sign in"` |\n| `loginPath` | `login-path` | Redirect participants to this page after clicking the login button. | `string` | `"/login"` |\n| `networkErrorMessage` | `network-error-message` | The message to be displayed when a the form submission fails unexpectedly. | `string` | `"Network request failed."` |\n| `nextPage` | `next-page` | Redirect participants to this page from their verification email | `string` | `"/"` |\n| `pageLabel` | `page-label` | | `string` | `"Register"` |\n| `passwordLabel` | `password-label` | | `string` | `"Password"` |\n| `passwordMismatchErrorMessage` | `password-mismatch-error-message` | The message to be displayed when password inputs do not match. | `string` | `"Passwords do not match."` |\n| `redirectPath` | `redirect-path` | The page that participants are redirected to from the verification email. | `string` | `"/verifyEmail"` |\n| `requiredFieldErrorMessage` | `required-field-error-message` | The message to be displayed when a required field is not filled. | `string` | `"Cannot be empty"` |\n| `submitLabel` | `submit-label` | | `string` | `"Register"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n- [sqm-password-field](../sqm-password-field)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-register --\x3e sqm-form-message\n sqm-portal-register --\x3e sqm-password-field\n sqm-stencilbook --\x3e sqm-portal-register\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var EditProfileReadme='# sqm-portal-profile\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ------------------------ | --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |\n| `countrytext` | `countrytext` | | `string` | `"Country"` |\n| `demoData` | -- | | `{ states?: { success: boolean; loading: boolean; submitDisabled: boolean; showCountry: boolean; formState: { country: string; firstName: string; lastName: string; errors: any; error: string; }; user: { id: string; accountId: string; firstName: string; lastName: string; email: string; countryCode: string; }; text: { firstnametext: string; lastnametext: string; emailtext: string; countrytext: string; editProfileHeader: string; editProfileSubHeader: string; submitChangeButtonText: string; }; }; }` | `undefined` |\n| `editProfileHeader` | `edit-profile-header` | | `string` | `"Edit your profile"` |\n| `editProfileSubHeader` | `edit-profile-sub-header` | | `string` | `"Personal Information"` |\n| `emailtext` | `emailtext` | | `string` | `"Email"` |\n| `firstnametext` | `firstnametext` | | `string` | `"First Name"` |\n| `hideCountry` | `hide-country` | | `boolean` | `false` |\n| `lastnametext` | `lastnametext` | | `string` | `"Last Name"` |\n| `submitChangeButtonText` | `submit-change-button-text` | | `string` | `"Submit Changes"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-profile --\x3e sqm-form-message\n style sqm-portal-profile fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var ResetPasswordReadme='# sqm-portal-reset-password\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| --------------------------- | ------------------------------ | -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\n| `confirmPasswordFieldLabel` | `confirm-password-field-label` | | `string` | `"Confirm Password"` |\n| `continueButtonText` | `continue-button-text` | Button text displayed after a successful password reset. | `string` | `"Continue"` |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; reset: boolean; confirmPassword: boolean; oobCodeValidating: boolean; oobCodeValid: boolean; passwordDemoData?: PasswordFieldViewDemoProps; content: { passwordResetHeader: string; resetPasswordHeader: string; continueButtonText: string; resetPasswordButtonText: string; confirmPasswordFieldLabel: string; passwordFieldLabel: string; }; }; }` | `undefined` |\n| `failedPage` | `failed-page` | Redirect participants to this page if password reset fails due to an outdated reset attempt. | `string` | `"/"` |\n| `nextPage` | `next-page` | Redirect participants to this page when they successfully reset their password. | `string` | `"/"` |\n| `passwordFieldLabel` | `password-field-label` | | `string` | `"New Password"` |\n| `passwordResetHeader` | `password-reset-header` | Displayed after a successful password reset. | `string` | `"Password reset"` |\n| `resetPasswordButtonText` | `reset-password-button-text` | | `string` | `"Reset Password"` |\n| `resetPasswordHeader` | `reset-password-header` | | `string` | `"Reset your password"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n- [sqm-password-field](../sqm-password-field)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-reset-password --\x3e sqm-form-message\n sqm-portal-reset-password --\x3e sqm-password-field\n style sqm-portal-reset-password fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var EmailVerificationReadme='# sqm-portal-email-verification\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ---------------------------- | ------------------------------ | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; isVerified?: boolean; loadingVerification?: boolean; countdown?: number; }; content?: { email: string; verifyMessage: string; emailVerificationHeader: string; resendEmailButtonText: string; verificationStatusMessage?: string; verificationLoadingMessage?: string; }; }` | `undefined` |\n| `emailVerificationHeader` | `email-verification-header` | | `string` | `"Verify your email"` |\n| `redirectPath` | `redirect-path` | Redirect participants to this page from their verification email. | `string` | `"/verifyEmail"` |\n| `resendEmailButtonText` | `resend-email-button-text` | | `string` | `"Re-send Email"` |\n| `verificationLoadingMessage` | `verification-loading-message` | | `string` | `"Checking verification status"` |\n| `verificationStatusMessage` | `verification-status-message` | | `string` | `"Checking verification status in {countdown}"` |\n| `verifyMessage` | `verify-message` | | `string` | `"A verification email was sent to {email}. Please verify your email to continue to the portal. Resending an email will invalidate the previous email."` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-email-verification --\x3e sqm-form-message\n style sqm-portal-email-verification fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var EmailVerifiedReadme='# sqm-portal-verify-email\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ------------ | ------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ----------- |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; verified: boolean; }; data?: { oobCode: string; }; }` | `undefined` |\n| `failedPage` | `failed-page` | Redirect participants to this page if verification fails due to an outdated verification attempt. | `string` | `"/"` |\n| `nextPage` | `next-page` | Redirect participants to this page when they successfully verify their email. | `string` | `"/"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-verify-email --\x3e sqm-form-message\n style sqm-portal-verify-email fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var PortalTemplates_stories={title:"Templates / Portal"};function useTemplate$2(e){var t=useState(e),n=t[0],a=t[1];var r=useState(e),s=r[0],i=r[1];return{states:{previewTemplate:s,editedTemplate:n},callbacks:{setEditedTemplate:a,setPreviewTemplate:i}}}var DefaultPortal=createHookStory((function(){var e=useTemplate$2(portalTemplate),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:portalTemplateWithDashboard})}));var MultiProgramPortal=createHookStory((function(){var e=useTemplate$2(multiProgramTemplate),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:multiProgramTemplateWithDashboard})}));var LeadSubmitPortal=createHookStory((function(){var e=useTemplate$2(portalLeadSubmitTemplate),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:portalLeadSubmitTemplateWithDashboard,leadSubmit:true})}));var Login=createHookStory((function(){var e=useTemplate$2(loginTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:LoginReadme})}));var ForgotPassword=createHookStory((function(){var e=useTemplate$2(forgotPasswordTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:ForgotPasswordReadme})}));var Register=createHookStory((function(){var e=useTemplate$2(registerTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:RegisterReadme})}));var Dashboard$1=createHookStory((function(){var e=useTemplate$2(dashboardTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var LeadSubmitIframe=createHookStory((function(){var e=useTemplate$2(leadSubmitTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:ReferralIframeReadme})}));var Activity$1=createHookStory((function(){var e=useTemplate$2(activityTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var EditProfile$2=createHookStory((function(){var e=useTemplate$2(editProfileTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:EditProfileReadme})}));var ResetPassword=createHookStory((function(){var e=useTemplate$2(resetPasswordTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:ResetPasswordReadme})}));var EmailVerification=createHookStory((function(){var e=useTemplate$2(emailVerificationTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:EmailVerificationReadme})}));var EmailVerified=createHookStory((function(){var e=useTemplate$2(emailVerifiedTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:EmailVerifiedReadme})}));var Widget$1=createHookStory((function(){return h("sqb-widget",{"widget-type":"p/Vacay-referral/w/referrerWidget",demoData:{data:{html:dashboardTemplate}}})}));var ResetPasswordEmail=createHookStory((function(){var e=useTemplate$2(resetPasswordEmailTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var VerifyEmail=createHookStory((function(){var e=useTemplate$2(verifyEmailTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var PortalTemplates=Object.freeze({__proto__:null,default:PortalTemplates_stories,DefaultPortal:DefaultPortal,MultiProgramPortal:MultiProgramPortal,LeadSubmitPortal:LeadSubmitPortal,Login:Login,ForgotPassword:ForgotPassword,Register:Register,Dashboard:Dashboard$1,LeadSubmitIframe:LeadSubmitIframe,Activity:Activity$1,EditProfile:EditProfile$2,ResetPassword:ResetPassword,EmailVerification:EmailVerification,EmailVerified:EmailVerified,Widget:Widget$1,ResetPasswordEmail:ResetPasswordEmail,VerifyEmail:VerifyEmail});var ProgramMenu_stories={title:"Components/Program Menu"};var OneProgram=createHookStory((function(){return h("sqm-program-menu",null,h("sl-menu-item",{value:"referral-program"},"Referral Program"))}));var TwoProgram=createHookStory((function(){return h("sqm-program-menu",null,h("sl-menu-item",{value:"referral-program"},"Referral Program"),h("sl-menu-item",{value:"partner-program"},"Partner Program"))}));var FiveProgram=createHookStory((function(){return h("sqm-program-menu",null,h("sl-menu-item",{value:"program1"},"Program 1"),h("sl-menu-item",{value:"program2"},"Program 2"),h("sl-menu-item",{value:"program3"},"Program 3"),h("sl-menu-item",{value:"program4"},"Program 4"),h("sl-menu-item",{value:"program5"},"Program 5"))}));var ProgramMenuWithSwitch=createHookStory((function(){return h("div",null,h("sqb-program-section",{"program-id":"Vacay-referral"},h("sqm-program-menu",null,h("sl-menu-item",{value:"Vacay-referral"},"Vacay-referral"),h("sl-menu-item",{value:"vacay-affiliates"},"vacay-affiliates")),h("sqb-program-switch",null,h("template",{"program-id":"Vacay-referral"},h("sqb-widget",{"widget-type":"p/Vacay-referral/w/referrerWidget",demoData:{data:{html:dashboardTemplate}}})),h("template",{"program-id":"vacay-affiliates"},h("sqb-widget",{"widget-type":"p/vacay-affiliates/w/referrerWidget",demoData:{data:{html:dashboardTemplate}}})))))}));var ProgramMenu=Object.freeze({__proto__:null,default:ProgramMenu_stories,OneProgram:OneProgram,TwoProgram:TwoProgram,FiveProgram:FiveProgram,ProgramMenuWithSwitch:ProgramMenuWithSwitch});var PoweredByImg_stories={title:"Powered By"};var Default$a=function(){return h(PoweredByImg$1,null)};var CustomColor=function(){return h(PoweredByImg$1,{color:"salmon"})};var CustomWidthAndHeight=function(){return h(PoweredByImg$1,{width:300,height:50})};var PoweredByImg=Object.freeze({__proto__:null,default:PoweredByImg_stories,Default:Default$a,CustomColor:CustomColor,CustomWidthAndHeight:CustomWidthAndHeight});var scenario$f='Feature: Portal Footer\n\n Background: A user is viewing the portal\n Given a hosted portal\n And a user is viewing the portal\n And the portal has a footer\n\n Scenario Outline: FAQ and T&C links/text are configurable and open in a new page when clicked\n Given the footer has prop "terms-link" with value "https://example.com/terms"\n And prop "terms-text" with value "Terms and Conditions"\n And prop "faq-link" with value "https://example.com/FAQ"\n And prop "faq-text" with value "Visit FAQ"\n When a user clicks on the "Visit FAQ" link\n Then they will be redirected to "https://example.com/FAQ" in a new page\n When they go back to the portal\n And click on the "Terms and Conditions" link\n Then they will be redirected to "https://example.com/terms" in a new page\n\n Scenario Outline: FAQ/T&C Links are not shown if a link is not provided\n Given the footer does not have <linkProp>\n But it <mayHave> <textProp> with <value>\n Then the <link> will not be shown in the footer\n Examples:\n | linkProp | mayHave | textProp | value | link |\n | terms-link | has | termsText | Terms and Conditions | T&C Link |\n | faq-link | has | faqText | Visit FAQ | FAQ Link |\n | terms-link | doesn\'t have | | | T&C Link |\n | faq-link | doesn\'t have | | | FAQ Link |\n\n Scenario Outline: The support email and text is configurable but has a default\n Given the footer <mayHave> <emailPropWithValue>\n And the footer <mayAlsoHave> <textPropWithValue>\n Then the footer\'s support email text is <renderedEmailText>\n And the email address will be a mailto link with <mailtoEmail>\n When the user clicks on the email address mailto Link\n Then the users preferred email client will open with a draft email to <mailtoEmail>\n Examples:\n | mayHave | emailPropWithValue | mayAlsoHave | textPropWithValue | mailtoEmail | renderedEmailText |\n | has | support@saasquatch.com | has | For support please contact {email} | support@saasquatch.com | For support please contact support@saasquatch.com |\n | doesn\'t have | N/A | doesn\'t have | N/A | support@example.com | For program support, contact support@example.com |\n\n Scenario Outline: Powered by SaaSquatch can be hidden\n Given the footer <mayHaveProp> "hide-powered-by" with <value>\n Then the powered by SaaSquatch image <mayBeShown>\n Examples:\n | mayHaveProp | value | mayBeShown |\n | has prop | true (default) | isn\'t shown |\n | has prop | false | is shown |\n | has prop | test | isn\'t shown |\n | has prop | | isn\'t shown |\n | doesn\'t have prop | | is shown |\n\n Scenario Outline: Support text can be hidden\n Given the footer <mayHaveProp> "hide-support-text" with <value>\n Then the support text <mayBeShown>\n Examples:\n | mayHaveProp | value | mayBeShown |\n | has prop | false (default) | is shown |\n | has prop | true | isn\'t shown |\n | has prop | test | isn\'t shown |\n | has prop | | isn\'t shown |\n | doesn\'t have prop | | is shown |\n\n Scenario: Powered By Saasquatch links out to marketing website\n Given the footer has the powered by SaaSquatch image\n When a user clicks on it\n Then they will be redirected to "https://www.saasquatch.com/?utm_source=app&utm_medium=user-widget&utm_campaign=referral-widget" in a new page';var PortalFooter_stories={title:"Components/Portal Footer",parameters:{scenario:scenario$f}};var defaultProps$9={supportEmail:"support@example.com",supportText:"For program support, contact {email}",hidePoweredBy:false,poweredByLink:"https://saasquatch.com",paddingTop:"large",paddingRight:"large",paddingBottom:"large",paddingLeft:"large"};var DefaultFooter=function(){return h(PortalFooterView,Object.assign({},defaultProps$9))};var FooterWithTerms=function(){return h(PortalFooterView,Object.assign({},defaultProps$9,{termsLink:"https://example.com",termsText:"Terms and Conditions"}))};var FooterWithFAQ=function(){return h(PortalFooterView,Object.assign({},defaultProps$9,{faqLink:"https://example.com",faqText:"FAQ"}))};var FooterWithTermsAndFAQ=function(){return h(PortalFooterView,Object.assign({},defaultProps$9,{termsLink:"https://example.com",termsText:"Terms and Conditions",faqLink:"https://example.com",faqText:"FAQ"}))};var FooterNoPoweredBy=function(){return h(PortalFooterView,Object.assign({},defaultProps$9,{termsLink:"https://example.com",termsText:"Terms and Conditions",faqLink:"https://example.com",faqText:"FAQ",hidePoweredBy:true}))};var FooterNoSupportText=function(){return h(PortalFooterView,Object.assign({},defaultProps$9,{termsLink:"https://example.com",termsText:"Terms and Conditions",faqLink:"https://example.com",faqText:"FAQ",hideSupportText:true}))};var PortalFooter=Object.freeze({__proto__:null,default:PortalFooter_stories,DefaultFooter:DefaultFooter,FooterWithTerms:FooterWithTerms,FooterWithFAQ:FooterWithFAQ,FooterWithTermsAndFAQ:FooterWithTermsAndFAQ,FooterNoPoweredBy:FooterNoPoweredBy,FooterNoSupportText:FooterNoSupportText});var scenario$g='@author:noah\n@owner:noah\n\nFeature: Hero Unit\n\n Background: A portal with a hero unit exists\n Given a hosted portal\n And the portal has hero unit on the login page\n And a user is viewing the login page\n\n Scenario: The hero unit defaults to a single column layout\n Given a hero unit does not have a "columns" prop\n But the following html is wrapped by the hero unit\n """\n <sqm-portal-login></sqm-portal-login>\n <div slot="secondary-column">\n <h1 style="text-align:center">Get Referring!</h1>\n <p style="text-align:center">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim\n ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut\n aliquip ex ea commodo consequat. Duis aute irure dolor in\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\n pariatur.\n </p>\n </div>\n """\n Then only a single column will be displayed\n And within it will be the login component\n\n Scenario Outline: The hero unit supports single or dual column layouts\n Given a hero unit with prop "columns" having <columnValue>\n And it wraps <html>\n Then the hero unit displays <columnValue> columns\n Examples:\n | columnValue | html |\n | 1 | <h1>Column 1!</h1> |\n | 2 | <h1>Column 1!</h1><div slot="secondary-column"><h1 style="text-align:center">Column 2!</h1></div> |\n\n Scenario: HTML to be displayed in the second column comes from the "secondary-column" slot\n Given a hero unit with "columns" "2"\n And the following html\n """\n <h1>Column 1!</h1>\n <div>\n <h1 style="text-align:center">Column 2!</h1>\n </div>\n """\n When the hero unit is rendered\n Then only one column is displayed with content\n And column 1 will contain the "Column 1!" text\n And column 1 will contain the "Column 2!" text\n When the div for column two is updated to have \'slot="secondary-column"\'\n Then the two columns are displayed with content\n And column 1 will contain the "Column 1!" text\n And column 2 will contain the "Column 2!" text\n\n Scenario Outline: A background for the hero unit can be set as an image or colour\n Given a hero unit with <backgroundPropValue>\n Then the background will be <background>\n Examples:\n | background | background |\n | https://images.unsplash.com/photo-1599676821464-3555954838dc | image of misty mountains |\n | LightSlateGrey | light slate grey |\n | #00FF00 | green |\n | rgb(128,0,128) | purple |\n\n Scenario Outline: Wrap Direction can be configured for mobile experiences\n Given a hero unit with the following HTML\n """\n <h1>Column 1!</h1>\n <div slot="secondary-column">\n <h1 style="text-align:center">Column 2!</h1>\n </div>\n """\n And prop "wrap-direction" has <value>\n When the window width is less than 600px\n Then the two columns will stack\n And <column> will be on top\n Examples:\n | value | column |\n | wrap | 1 |\n | wrap-reverse | 2 |\n | <null> | 1 |\n\n Scenario Outline: Minimum height can be customized\n Given the option "Mininum Height (in px)" is <value>\n Then the hero image minimum height is <effectiveValue>\n And the change is reflected in mobile view\n Examples:\n | value | effectiveValue |\n | unset (default value) | 200px |\n | 200px | 500px |';var Hero_stories={title:"Components/Hero Layout",parameters:{scenario:scenario$g}};var LoginOneColumn=function(){var e={states:{columns:1,wrapDirection:"wrap",paddingSize:"large",minHeight:0},content:{primaryColumn:[h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("sqm-portal-login",null)]}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var LoginOneColumnWithMinHeight=function(){return h("sqm-hero",{background:"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png",columns:1,"padding-size":"medium","wrap-direction":"wrap","secondary-background":"#FFFFFF"},h("sqm-portal-login",null))};var LoginOneColumnWithColor=function(){var e={states:{columns:1,wrapDirection:"wrap",paddingSize:"large",minHeight:0,background:"LightSlateGrey"},content:{primaryColumn:h("sqm-portal-login",null)}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var LoginOneColumnWithImage=function(){var e={states:{columns:1,wrapDirection:"wrap",paddingSize:"large",minHeight:0,background:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"},content:{primaryColumn:h("sqm-portal-login",null)}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginLargePadding=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"large",minHeight:0,background:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",secondaryBackground:"LightSlateGrey"},content:{primaryColumn:h("sqm-portal-login",null),secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginMediumPadding=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"medium",minHeight:0,background:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",secondaryBackground:"LightSlateGrey"},content:{primaryColumn:h("sqm-portal-login",null),secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginSmallPadding=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"small",minHeight:0,background:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",secondaryBackground:"LightSlateGrey"},content:{primaryColumn:h("sqm-portal-login",null),secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginNoPadding=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"none",minHeight:0,background:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",secondaryBackground:"LightSlateGrey"},content:{primaryColumn:h("sqm-portal-login",null),secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginReverseWrap=function(){var e={states:{columns:2,wrapDirection:"wrap-reverse",background:"LightSlateGrey",paddingSize:"large",minHeight:0,secondaryBackground:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"},content:{primaryColumn:h("sqm-portal-change-password",null),secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginWithImgElement=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"large",minHeight:0},content:{primaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("sqm-portal-login",null)),secondaryColumn:h("div",null,h("img",{src:"https://images.unsplash.com/photo-1487528278747-ba99ed528ebc?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2070&q=80"}),h("p",null,"Pellentesque mauris urna, lacinia non turpis sed, pulvinar congue ligula. Sed mattis condimentum eros nec vulputate. Cras consectetur eget libero at viverra. Aliquam suscipit feugiat ante sit amet sagittis. Fusce pulvinar interdum odio ut dapibus. Nulla aliquet ultricies augue nec dignissim. Morbi vulputate hendrerit sem."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var MinHeight=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"large",minHeight:600,background:"https://images.unsplash.com/photo-1487528278747-ba99ed528ebc?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2070&q=80"},content:{secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("sqm-portal-login",null))}};return h(HeroView,Object.assign({},e))};var Hero=Object.freeze({__proto__:null,default:Hero_stories,LoginOneColumn:LoginOneColumn,LoginOneColumnWithMinHeight:LoginOneColumnWithMinHeight,LoginOneColumnWithColor:LoginOneColumnWithColor,LoginOneColumnWithImage:LoginOneColumnWithImage,TwoColumnLoginLargePadding:TwoColumnLoginLargePadding,TwoColumnLoginMediumPadding:TwoColumnLoginMediumPadding,TwoColumnLoginSmallPadding:TwoColumnLoginSmallPadding,TwoColumnLoginNoPadding:TwoColumnLoginNoPadding,TwoColumnLoginReverseWrap:TwoColumnLoginReverseWrap,TwoColumnLoginWithImgElement:TwoColumnLoginWithImgElement,MinHeight:MinHeight});var scenario$h='@owner:sam\n@author:sam\n\nFeature: Referral Iframe\n\n Used to provide an external form for submitting referral leads using the current user\'s referral code\n\n Background: A user is logged in\n Given there is a logged in user\n\n @motivating\n Scenario: Referral code is passed to the iframe as a query parameter\n Given the "iframe-src" is "https://example.com"\n And the user has navigated to "/refer"\n And the user\'s referral code is "BOBBYREFER"\n When the iframe content is loaded\n Then the iframe url will be "https://example.com?rsCode=BOBBYREFER"\n\n @ui\n Scenario Outline: The height and width of the iFrame can be controlled via props\n Given the "iframe-src" is "https://example.com"\n And the iframe content is 1000x1000\n And the "iframe-height" is set to <heightValue>\n And the "iframe-width" is set to <widthValue>\n Then the content of the iframe will be displayed with scrollbars\n And the dimension of the iFrame displayed will be 500x500\n When the "iframe-height" is set to <heightValue>\n And the "iframe-width" is set to <widthValue>\n Then the full content of the iframe will be displayed on the page\n And the dimension of the iFrame displayed will be 1000x1000\n Examples:\n | heightValue | widthValue |\n | 500px | 500px |\n | 50% | 50% |\n\n @minutia\n Scenario Outline: The iFrame will fail fast if a iFrame source isn\'t provided\n Given "iframe-src" <mayBeAnAttribute>\n And it <mayHaveValue>\n When a user views the referral iFrame component\n Then an alert with an error message is displayed in place of the iFrame\n And it has a details section\n When "More details" is clicked\n Then the following information will be displayed\n | component being used |\n | missing attribute(s) |\n\n Examples:\n | mayBeAnAttribute | mayHaveValue |\n | is not an attribute | N/A |\n | is an attribute | "" |\n | is an attribute | |';var ReferralIframe_stories={title:"Components/Referral Iframe",parameters:{scenario:scenario$h}};var props={data:{shareCode:"BOBBYREFER"},states:{content:{iframeSrc:"https://example.com",iframeHeight:"100%",iframeWidth:"100%"}}};var ReferralIframe=function(){return h("div",{style:{width:"1000px",height:"1000px"}},h(ReferralIframeView,Object.assign({},props)))};var ReferralIframeError=function(){return h("div",{style:{width:"1000px",height:"1000px"}},h("sqm-referral-iframe",null))};var ReferralIframe$1=Object.freeze({__proto__:null,default:ReferralIframe_stories,ReferralIframe:ReferralIframe,ReferralIframeError:ReferralIframeError});var scenario$i='@owner:sam\n@author:sam\n\nFeature: Name Fields\n\n Fields to be used to fill the first and last name of a user during registration\n\n Background:\n Given the current page is "/register"\n\n @motivating\n Scenario: Both first name and last name are required\n Given the email field has valid input\n And the password field has valid input\n And first name field is empty\n And last name field is empty\n When register is clicked\n Then the name fields will be highlighted in red\n And the error messages will say "Cannot be empty"\n\n @motivating\n Scenario: First and last name are upserted with the SaaSquatch user\n Given all fields have been filled with data\n | firstName | lastName | email | password |\n | Bob | Testerson | bob@example.com | SecurePassword1 |\n When register is clicked\n Then the email verification page will be loaded\n And the user will be upserted\n And the SaaSquatch user will contain data\n | firstName | lastName | email |\n | Bob | Testerson | bob@example.com |\n\n';var NameFields_stories={title:"Components/Name Fields",parameters:{scenario:scenario$i}};var props$1={states:{registrationFormState:{validationErrors:undefined},content:{firstNameLabel:"First Name",lastNameLabel:"Last Name"}}};var errorProps$8={states:{registrationFormState:{validationErrors:{firstName:"Cannot be empty",lastName:"Cannot be empty"}},content:{firstNameLabel:"First Name",lastNameLabel:"Last Name"}}};var NameFields=function(){return h(NameFieldsView,Object.assign({},props$1))};var NameFieldsWithErrors=function(){return h(NameFieldsView,Object.assign({},errorProps$8))};var NameFields$1=Object.freeze({__proto__:null,default:NameFields_stories,NameFields:NameFields,NameFieldsWithErrors:NameFieldsWithErrors});var scenario$j='@owner:sam\n@author:sam\nFeature: Checkbox Field\n\n Field to be used to be used as a checkbox during registration. A motivating use case is to use this component as a terms\n and conditions field, to sastisfy legal requirements that a customer might have for their end users.\n\n Background: A user is on the portal registration page\n Given a user is viewing the "/register"\n And "/register" contains the registration form\n And the registration form has the following fields\n | fields |\n | first name |\n | last name |\n | email |\n | password |\n | checkbox |\n\n @motivating\n Scenario: Checkbox is required by default\n Given the user is filling out the registration form\n And the name fields have valid input\n And the email field has valid input\n And the password field has valid input\n And the checkbox is not checked\n When they try to register\n Then the checkbox is highlighted in red\n And the error message says "Must be checked"\n\n @landmine\n Scenario: Checkboxes with the same "checkbox-name" are not submitted in the form data\n Given the register form has the following html\n """\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n <sqm-checkbox-field\n slot="formData"\n checkbox-label="I am not a robot"\n error-message="Cannot be a robot"\n checkbox-name="isHuman"\n ></sqm-checkbox-field>\n <div slot="terms">\n <sqm-checkbox-field checkbox-name="isHuman"></sqm-checkbox-field>\n </div>\n </sqm-portal-register>\n """\n And the checkboxes are checked\n When the user tries to register\n Then the form is submitted\n But no field with key "isHuman" is included in the form data\n\n @motivating\n Scenario: Multiple checkboxes need different "checkbox-name" values\n Given the register form has the following html\n """\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n <sqm-checkbox-field\n slot="formData"\n checkbox-label="I am not a robot"\n error-message="Cannot be a robot"\n checkbox-name="isHuman"\n ></sqm-checkbox-field>\n <div slot="terms">\n <sqm-checkbox-field checkbox-name="myCheckbox"></sqm-checkbox-field>\n </div>\n </sqm-portal-register>\n """\n And the checkboxes are not checked\n When the user tries to register\n Then both checkboxes are bordered in red\n And the checkboxes have different error messages\n When the user checks the boxes\n And tries to register\n Then the form is submitted\n And the following fields are included in the form data\n | feilds |\n | isHuman |\n | myCheckbox |\n\n @motivating\n Scenario: Checkboxes can be optional\n Given the register form has the following html\n """\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n <sqm-checkbox-field\n slot="formData"\n checkbox-label="I am not a robot"\n checkbox-optional="true"\n checkbox-name="isHuman"\n />\n </sqm-portal-register>\n """\n And the checkbox is not checked\n When the user tries to register\n Then there is no error for the checkbox\n\n @minutia\n Scenario Outline: Validation error message is configurable\n The error message string is evaluated as an ICU string, but currently is provided no context\n Given the checkbox is required\n And the checkbox has prop "error-message" with <propValue>\n When the user tries to register\n But they havent checked the checkbox\n Then they see <errorMessage> below\n Examples:\n | propValue | errorMessage |\n | | Must be checked |\n | My Custom Message | My Custom Message |\n\n @motivating\n Scenario Outline: Checkbox text and link are configurable\n Given the checkbox has the following prop values\n | prop | value |\n | checkbox-label | <labelText> |\n | checkbox-label-link | <labelLink> |\n | checkbox-label-link-text | <labelLinkText> |\n When the user views the checkbox\n Then they see <text>\n And when they click <labelLinkText> they are redirected to <labelLink>\n #First example below is the defaults set by the controller\n Examples:\n | labelText | labelLinkText | labelLink | text |\n | By signing up you agree to the {labelLink} | Terms and Conditions | https://example.com | By signing up you agree to the Terms and Conditions |\n | Read our {labelLink} before registration | Terms of Service | https://example.com/terms | Read our Terms of Service before registration |\n | By registering you agree to our terms and conditions | N/A | N/A | By registering you agree to our terms and conditions |\n\n @motivating\n Scenario: The form field name attribute is configurable\n Given the checkbox has prop "checkbox-name" with value "myCheckBox"\n When the user checks the box\n And they register\n Then the boolean value of the checkbox is submitted under "myCheckBox" field\n\n @minutia\n Scenario Outline: The checkbox field component fails fast if a checkbox name isn\'t provided\n Given the checkbox <mayHave> prop "checkbox-name"\n And it <mayHavePropValue>\n When a user views the checkbox\n Then an alert with an error message is displayed in place of the checkbox\n And it has a details section\n When "More details" is clicked\n Then the following information is displayed\n | information |\n | component being used |\n | missing attribute(s) |\n Examples:\n | mayBeAnAttribute | mayHavePropValue |\n | doesn\'t have | N/A |\n | has | "" |\n | has | |';var CheckboxField_stories={title:"Components/Checkbox Field",parameters:{scenario:scenario$j}};var defaultProps$a={states:{registrationFormState:{validationErrors:{}},checked:false},content:{checkboxName:"agree",checkboxLabel:"By signing up you agree to the {labelLink}",checkboxLabelLink:"https://example.com",checkboxLabelLinkText:"Terms and Conditions",errorMessage:"Must be checked"},callbacks:{setChecked:function(){}}};var defaultRegisterProps={states:{registrationFormState:{},error:"",loading:false,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address"}};var Default$b=createHookStory((function(){return h(CheckboxFieldView,Object.assign({},defaultProps$a))}));var DefaultChecked=createHookStory((function(){return h(CheckboxFieldView,Object.assign({},defaultProps$a,{states:__assign(__assign({},defaultProps$a.states),{checked:true})}))}));var CustomLabel=createHookStory((function(){return h(CheckboxFieldView,Object.assign({},defaultProps$a,{content:__assign(__assign({},defaultProps$a.content),{checkboxLabel:"I Agree"})}))}));var Error$4=createHookStory((function(){return h(CheckboxFieldView,Object.assign({},defaultProps$a,{states:__assign(__assign({},defaultProps$a.states),{registrationFormState:{validationErrors:{agree:"Must be checked"}}})}))}));var CustomError=createHookStory((function(){return h(CheckboxFieldView,Object.assign({},defaultProps$a,{states:__assign(__assign({},defaultProps$a.states),{registrationFormState:{validationErrors:{agree:"Must be checked"}}}),content:__assign(__assign({},defaultProps$a.content),{errorMessage:"This checkbox must be checked to continue"})}))}));var TermsAndConditions$1=createHookStory((function(){return h(PortalRegisterView,Object.assign({},defaultRegisterProps,{content:__assign(__assign({},defaultRegisterProps.content),{terms:h("p",null,h("sqm-checkbox-field",null))})}))}));var TermsAndConditionsCustomLabel=createHookStory((function(){return h(PortalRegisterView,Object.assign({},defaultRegisterProps,{content:__assign(__assign({},defaultRegisterProps.content),{terms:h("p",null,"By signing up you agree to the"," ",h("a",{href:"https://example.com",target:"_blank"},"Terms and Conditions"),h("sqm-checkbox-field",{"checkbox-label":"I agree"}))})}))}));var TermsAndConditionsLongCustomLabel=createHookStory((function(){return h(PortalRegisterView,Object.assign({},defaultRegisterProps,{content:__assign(__assign({},defaultRegisterProps.content),{terms:h("sqm-checkbox-field",{"checkbox-label":"Participants must be at least 18 years of age and a legal resident of the U.S. or Canada. By signing up to participate in the rewards program, you agree to the {labelLink}.","checkbox-label-link":"https://www.example.com","checkbox-label-link-text":"terms","checkbox-name":"termsAndConditions"})})}))}));var CheckboxField=Object.freeze({__proto__:null,default:CheckboxField_stories,Default:Default$b,DefaultChecked:DefaultChecked,CustomLabel:CustomLabel,Error:Error$4,CustomError:CustomError,TermsAndConditions:TermsAndConditions$1,TermsAndConditionsCustomLabel:TermsAndConditionsCustomLabel,TermsAndConditionsLongCustomLabel:TermsAndConditionsLongCustomLabel});var UseCheckboxField_stories={title:"Hooks / useCheckboxField",parameters:{scenario:scenario$j}};function setupGraphQL$9(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}var TermsAndConditions$2=createHookStory((function(){setupGraphQL$9();return h("sqm-portal-register",null,h("div",{slot:"terms"},h("sqm-checkbox-field",{"checkbox-name":"terms"})))}));var TermsAndConditionsWithLabel=createHookStory((function(){setupGraphQL$9();return h("sqm-portal-register",null,h("div",{slot:"terms"},h("sqm-checkbox-field",{"checkbox-label":"I agree","checkbox-name":"terms"})))}));var MultipleCheckboxes=createHookStory((function(){setupGraphQL$9();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-checkbox-field",{slot:"formData","checkbox-label":"I am not a robot","error-message":"Cannot be a robot","checkbox-name":"isHuman"}),h("div",{slot:"terms"},h("sqm-checkbox-field",{"checkbox-name":"otherCheckbox"})))}));var OptionalCheckboxes=createHookStory((function(){setupGraphQL$9();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-checkbox-field",{slot:"formData","checkbox-label":"I am not a robot","checkbox-optional":"true","checkbox-name":"isHuman"}),h("div",{slot:"terms"},h("sqm-checkbox-field",{"checkbox-name":"required"})))}));var MissingName=createHookStory((function(){setupGraphQL$9();return h("sqm-portal-register",null,h("div",{slot:"terms"},h("sqm-checkbox-field",null)))}));var UseCheckboxField=Object.freeze({__proto__:null,default:UseCheckboxField_stories,TermsAndConditions:TermsAndConditions$2,TermsAndConditionsWithLabel:TermsAndConditionsWithLabel,MultipleCheckboxes:MultipleCheckboxes,OptionalCheckboxes:OptionalCheckboxes,MissingName:MissingName});var DropdownField_stories={title:"Components/Dropdown Field"};var defaultProps$b={states:{registrationFormState:{}},content:{dropdownName:"options",dropdownLabel:"Select an option",errorMessage:"Must select an option",selectOptions:[h("sl-menu-item",{value:"option-1"},"Option 1"),h("sl-menu-item",{value:"option-2"},"Option 2"),h("sl-menu-item",{value:"option-3"},"Option 3")]}};var Default$c=createHookStory((function(){return h(DropdownFieldView,Object.assign({},defaultProps$b))}));var CustomLabel$1=createHookStory((function(){return h(DropdownFieldView,Object.assign({},defaultProps$b,{content:__assign(__assign({},defaultProps$b.content),{dropdownLabel:"Pick your favorite"})}))}));var Error$5=createHookStory((function(){return h(DropdownFieldView,Object.assign({},defaultProps$b,{states:__assign(__assign({},defaultProps$b.states),{registrationFormState:{validationErrors:{options:"Must select an option"}}})}))}));var CustomError$1=createHookStory((function(){return h(DropdownFieldView,Object.assign({},defaultProps$b,{content:__assign(__assign({},defaultProps$b.content),{errorMessage:"An option must be selected to continue"}),states:__assign(__assign({},defaultProps$b.states),{registrationFormState:{validationErrors:{options:"Must select an option"}}})}))}));var DropdownField=Object.freeze({__proto__:null,default:DropdownField_stories,Default:Default$c,CustomLabel:CustomLabel$1,Error:Error$5,CustomError:CustomError$1});var UseDropdownField_stories={title:"Hooks / useDropdownField"};function setupGraphQL$a(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}var SelectOptions=createHookStory((function(){setupGraphQL$a();return h("sqm-portal-register",null,h("sqm-dropdown-field",{slot:"formData","dropdown-label":"Select an option","dropdown-name":"options"},h("sl-menu-item",{value:"option-1"},"Option 1"),h("sl-menu-item",{value:"option-2"},"Option 2"),h("sl-menu-item",{value:"option-3"},"Option 3")))}));var Countries=createHookStory((function(){setupGraphQL$a();return h("sqm-portal-register",null,h("sqm-dropdown-field",{slot:"formData","dropdown-label":"Country","dropdown-name":"countryCode"},h("sl-menu-item",{value:"CA"},"Canada"),h("sl-menu-item",{value:"US"},"United States"),h("sl-menu-item",{value:"GB"},"United Kingdom")))}));var MissingName$1=createHookStory((function(){setupGraphQL$a();return h("sqm-portal-register",null,h("sqm-dropdown-field",{slot:"formData","dropdown-label":"Country"},h("sl-menu-item",{value:"CA"},"Canada"),h("sl-menu-item",{value:"US"},"United States"),h("sl-menu-item",{value:"GB"},"United Kingdom")))}));var UseDropdownField=Object.freeze({__proto__:null,default:UseDropdownField_stories,SelectOptions:SelectOptions,Countries:Countries,MissingName:MissingName$1});var scenario$k='@author:derek\n@owner:derek\nFeature: Form Input Field\n\n This component is used as a custom registration field during registration. The field can be text,\n a date or phone number. A motivating use case is to ask for a users company name, this value would then be mapped\n through the Managed Identity Service and upserted on the user after registration.\n\n Background: A user exists and is viewing the hosted portal registration\n Given a user is viewing "/register"\n And "/register" contains the registration form\n And the registration form has a custom input field\n\n @motivating\n Scenario Outline: Input fields are required by default but can be optional\n Given the input has prop "field-optional" with <value>\n And the input is empty\n When the user tries to register\n Then the input <mayBe> highlighted in red\n And an error message <mayAppear> in red below\n And form submission <mayBe> blocked\n Examples:\n | value | mayBe | mayAppear |\n | false | is | appears |\n | | is | appears |\n | true | isn\'t | doesn\'t appear |\n\n @motivating\n Scenario: Input field labels are configurable\n Given the input has prop "field-label" with value "My Custom Input"\n When the user views the registration form\n Then they see the input field\n And it has label "My Custom Input" above the input\n\n @minutia\n Scenario Outline: The validation error message is configurable\n The error message string is evaluated as an ICU string, but currently is provided no context\n Given the input is required\n And it has prop "error-message" with <value>\n When the user tries to register\n But they haven\'t filled in the input\n Then they see <errorMessage> below\n Examples:\n | value | errorMessage |\n | | Cannot be empty |\n | My Custom Message | My Custom Message |\n\n @motivating\n Scenario: Form data attribute name is configurable\n Given the input has prop "field-name" with value "myCustomField"\n When the user types "testing testing" into the input\n And they register\n Then "testing testing" is submitted under "myCustomField" in the form data\n\n @motivating\n Scenario Outline: The input field is a text input by default\n Given the input <mayHave> prop "field-type" with <value>\n When the user views the input field\n Then it is a text input\n Examples:\n | mayHave | value |\n | has | text |\n | doesn\'t have | |\n\n @motivating\n Scenario: Date type inputs are supported\n Given the input has prop "field-type" "date"\n When the user views the input field\n Then they see "mm/dd/yyyy" as a placeholder\n And they see a calendar icon on the right\n When they start typing a date\n Then it maintains the "mm/dd/yyyy" format\n When they click the calendar icon\n Then a dropdown appears\n And they see a calendar\n When they select a date\n Then it is applied to the input\n\n @landmine\n Scenario: The clear text button in the date picker does not clear the date\n Due to an incompatibility between our shoelace version and the browser, the clear funtionality is not supported currently\n Given the input has prop "field-type" "date"\n And the user has entered a date\n When they click the calendar icon\n And click the \'clear\' text button\n Then their selected date is not cleared\n\n @motivating\n Scenario: Phone number type inputs are supported\n Given the input has prop "field-type" with value "tel"\n When the user starts typing a phone number in the input\n Then it is formatted into the following form "(XXX) XXX-XXXX"\n When they pre-fix their phone number with a "1"\n Then it is formatted into the following form "1 (XXX) XXX-XXXX"\n\n @landmine\n Scenario: Telephone formatting is removed after 10 numbers\n Given a user using a phone number input field\n And they entered their 10 character phone number\n And it was not prefixed with a 1\n When they add another character\n Then the formatting is removed\n\n @landmine\n Scenario Outline: Input values are always recorded as strings in the form data\n Given the input has prop "field-type" with <value>\n And it has a "field-name"\n When the user inputs <formInput>\n And they register\n Then <formData> is recorded in the form data as a string\n Examples:\n | value | formInput | formData |\n | text | Hello there | Hello there |\n | date | 05/07/2021 | 2021-05-07 |\n | tel | (250) 234-9877 | (250) 234-9877 |\n\n @minutia\n Scenario Outline: The input field component fails fast if a field name isn\'t provided\n Given the input <mayHave> prop "field-name"\n And it <mayHavePropValue>\n When a user views the input\n Then an alert with an error message is displayed in place of the input\n And it has a details section\n When "More details" is clicked\n Then the following information is displayed\n | information |\n | component being used |\n | missing attribute(s) |\n Examples:\n | mayBeAnAttribute | mayHavePropValue |\n | doesn\'t have | N/A |\n | has | "" |\n | has | |';var InputField_stories={title:"Components/Input Field",parameters:{scenario:scenario$k}};var defaultProps$c={states:{registrationFormState:{validationErrors:{}}},content:{fieldName:"field",fieldLabel:"My Custom Input",fieldType:"text",fieldOptional:true,errorMessage:"Cannot be empty"}};var defaultRegisterProps$1={states:{registrationFormState:{},error:"",loading:false,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address"}};var Default$d=function(){return h(InputFieldView,Object.assign({},defaultProps$c))};var CustomLabel$2=function(){return h(InputFieldView,Object.assign({},defaultProps$c,{content:__assign(__assign({},defaultProps$c.content),{fieldLabel:"My Label"})}))};var Error$6=function(){return h(InputFieldView,Object.assign({},defaultProps$c,{states:__assign(__assign({},defaultProps$c.states),{registrationFormState:{validationErrors:{field:"Cannot be empty"}}})}))};var CustomError$2=function(){return h(InputFieldView,Object.assign({},defaultProps$c,{content:__assign(__assign({},defaultProps$c.content),{errorMessage:"A value must be entered to continue"}),states:__assign(__assign({},defaultProps$c.states),{registrationFormState:{validationErrors:{field:"Cannot be empty"}}})}))};var DateType=function(){return h(InputFieldView,Object.assign({},defaultProps$c,{content:__assign(__assign({},defaultProps$c.content),{fieldLabel:"Date",fieldType:"date"})}))};var TelType=function(){return h(InputFieldView,Object.assign({},defaultProps$c,{content:__assign(__assign({},defaultProps$c.content),{fieldLabel:"Phone Number",fieldType:"tel"})}))};var RegistrationField=function(){return h(PortalRegisterView,Object.assign({},defaultRegisterProps$1,{content:__assign(__assign({},defaultRegisterProps$1.content),{formData:h(InputFieldView,Object.assign({},defaultProps$c))})}))};var RegistrationFieldCustomLabel=function(){return h(PortalRegisterView,Object.assign({},defaultRegisterProps$1,{content:__assign(__assign({},defaultRegisterProps$1.content),{formData:h(InputFieldView,Object.assign({},defaultProps$c,{content:__assign(__assign({},defaultProps$c.content),{fieldLabel:"Data"})}))})}))};var InputField=Object.freeze({__proto__:null,default:InputField_stories,Default:Default$d,CustomLabel:CustomLabel$2,Error:Error$6,CustomError:CustomError$2,DateType:DateType,TelType:TelType,RegistrationField:RegistrationField,RegistrationFieldCustomLabel:RegistrationFieldCustomLabel});var UseInputField_stories={title:"Hooks / useInputField",parameters:{scenario:scenario$k}};function setupGraphQL$b(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}var FormData=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("div",{slot:"formData"},h("sqm-input-field",{"field-name":"myData"})))}));var FormDataWithLabel=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("div",{slot:"formData"},h("sqm-input-field",{"field-label":"Custom Label","field-name":"myData"})))}));var MultipleInputs=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-input-field",{slot:"formData","field-label":"Field One","field-name":"fieldOne"}),h("sqm-input-field",{slot:"formData","field-label":"Field Two","field-name":"fieldTwo"}))}));var OptionalInputs=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-input-field",{slot:"formData","field-label":"Optional Field","field-optional":"true","field-name":"optionalField"}))}));var DateType$1=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-input-field",{slot:"formData","field-label":"Date","field-name":"date","field-type":"date"}))}));var TelType$1=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-input-field",{slot:"formData","field-label":"Phone Number","field-name":"tel","field-type":"tel"}))}));var MissingName$2=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-input-field",{slot:"formData","field-label":"Phone Number","field-type":"tel"}))}));var UseInputField=Object.freeze({__proto__:null,default:UseInputField_stories,FormData:FormData,FormDataWithLabel:FormDataWithLabel,MultipleInputs:MultipleInputs,OptionalInputs:OptionalInputs,DateType:DateType$1,TelType:TelType$1,MissingName:MissingName$2});var scenario$l='@author:derek\n@owner:derek\nFeature: Reward Exchange List\n\n The Reward Exchange List gives end users the power to exchange their rewards for other rewards.\n It populates a list from the reward exchange rules set up on a given tenant.\n\n Background:\n Given a tenant with reward exchange rules\n\n @motivating\n @ui\n Scenario: The empty state is shown if there are no visible exchanges\n Given a user with no visible exchanges\n When they view the reward exchange\n Then no exchange options are displayed\n And they see an image of a present\n And "Redeem Rewards" in bold\n And "Use your points to redeem rewards once they become available" below the bolded text\n And the pagination buttons are disabled\n\n @minutia\n @ui\n Scenario: A custom empty state can be provided\n Given a user with no visible exchanges\n And a custom empty state has been supplied in the "empty" slot\n When they view the reward exchange\n Then they see the custom empty state\n\n @motivating\n @ui\n Scenario: A Loading Skeleton is displayed when the reward exchange rules are loading\n Given a user\n When they load the reward exchange list\n Then they see a loading Skeleton\n And it has 8 skeleton cards\n When the reward exchange rules have loaded\n Then the skeleton is replaced with reward exchange options\n\n @motivating\n Scenario: An error banner appears when the reward exchange list fails to load\n Given a user trying to view the reward exchange list\n But it fails to load\n Then an error banner is displayed\n And it displays "Unable to load reward exchange list. Please try again"\n\n @motivating\n @ui\n Scenario: The exchange progress bar progresses through the exchange process\n Given a user who is eligible for the tenants reward exchange rules\n When they view the reward exchange list\n Then the process bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with green outline, white fill and number 1 in green |\n | Step 2 `Select` title in grey |\n | Step 2 circle with grey fill and number 2 in white |\n | Step 3 `Confirm` title in grey |\n | Step 3 circle with grey fill and number 3 in white |\n | lines between all steps are greyed out |\n When they continue to the selection page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with green outline, white fill and number 2 in green |\n | Step 3 `Confirm` title in grey |\n | Step 3 circle with grey fill and number 3 in white |\n | Green line between step 1 and 2 |\n | Grey line between step 2 and 3 |\n When they continue to the confirmation page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with white checkmark and green fill |\n | Step 3 `Confirm` title in black |\n | Step 3 circle with green outline, white fill and number 3 in green |\n | Green line between all steps |\n When they continue to the redemption page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with white checkmark and green fill |\n | Step 3 `Confirm` title in black |\n | Step 3 circle with white checkmark and green fill |\n | Green line between all steps |\n\n @motivating\n Scenario: Users must choose a reward exchange option to continue to the selection page\n Given a user who is eligible for the tenants reward exchange rules\n When they view the reward exchange list\n Then the \'Continue\' button is disabled\n When they select a reward exchange card\n Then the card is outlined in brand colour with a brand colour cirlcular check box icon in the top right\n And the continue button is no longer disabled\n When they click "Continue"\n Then they are brought to the selection page\n\n @motivating\n @ui\n Scenario: Reward exchange rule names and images are used in the reward exchange cards\n Given a tenant reward exchange rule\n And it has name "My Visa Exchange Rule"\n And it has an image\n When a user views the reward exchange list\n Then they see a exchange card with title "My Visa Exchange Rule"\n And the exchange image on the left hand side of the card\n\n @motivating\n Scenario Outline: Reward exchange source values are displayed on reward exchange cards\n Given a <type> reward exchange rule\n When a user views the reward exchange list\n Then they see <text> under the name on the exchange option cards\n And the pretty values are localized to a user locale\n Examples:\n | type | text |\n | FIXED_GLOBAL_REWARD | the exchange source pretty value |\n | STEPPED_FIXED_GLOBAL_REWARD | the exchange source min pretty value to the source max pretty value |\n | VARIABLE_GLOBAL_REWARD | the exchange source min pretty value to the source max pretty value |\n | VARIABLE_CREDIT_REWARD | the exchange source min pretty value to the source max pretty value |\n\n @motivating\n Scenario Outline: Reward exchange cards can display customized error messages\n Given a reward exchange rule\n And it has <availabilityPredicate>\n And the reward exchange list has prop "not-available-error" with <value>\n When the user views the reward exchange list\n Then the card for the reward exchange rule is disabled\n And <message> is displayed\n Examples:\n | availabilityPredicate | value | message |\n | \'champion\' in user.segments ? "NOT_CHAMPION" : true | {unavailableReasonCode, select, NOT_CHAMPION {Sorry must be a champion!} other {unavailableReasonCode} } | Sorry must be a champion! |\n | user.customFields.purchaseCount < 10 ? "MORE_PURCHASE" : true | {unavailableReasonCode, select, MORE_PURCHASE {Complete 10 purchases to unlock} other {unavailableReasonCode} } | Complete 10 purchases to unlock |\n\n @motivating\n Scenario: Exchange options are disabled if they put a user over the W9 limit\n Given a user who is approaching their W9 limit\n And a reward exchange rule\n And its destination reward has a US taxable value that would put the user over their limit\n When they view the reward exchange list\n Then the reward exchange card is disabled\n And a "US Tax Limit" error message is displayed on to the right of a exclamation triangle icon\n And the text is orange\n And the icon is orange\n\n @motivating\n Scenario Outline: Exchange options are disabled if a users lacks enough credit to redeem\n Given a <type> reward exchange rule\n But the user lacks enough credit to exchange for it\n When they view the reward exchange list\n Then the reward exchange card is disabled\n And a <text> error message is displayed on to the right of a exclamation triangle icon\n And the text is orange\n And the icon is orange\n Examples:\n | type | text |\n | FIXED_GLOBAL_REWARD | {prettySourceValue} required |\n | STEPPED_FIXED_GLOBAL_REWARD | {prettySourceMinValue} required |\n | VARIABLE_GLOBAL_REWARD | {prettySourceMinValue} required |\n | VARIABLE_CREDIT_REWARD | {prettySourceMinValue} required |\n\n @motivating\n Scenario: Users can go back to the Rewards page from the Select page\n Given a user viewing the Select page\n Then they see a "Cancel" text button\n And a "Continue to confirmation" brand colour button in the bottom right corner\n When they click "Cancel"\n Then they return to the Rewards page\n\n @motivating\n Scenario: Users can go back to the Select Page from the Confirm page\n Given a user viewing the Confirm page\n Then they see a "Back" text button\n And a "Redeem" brand colour button in the bottom right corner\n When they click "Back"\n Then they return to the Select Page\n\n @motivating\n Scenario: Reward rules with visibility predicates that evaluates to false are not shown\n Given a tenant reward exchange rule with visibility predicates that evaluates to false\n When a user views the reward exchange list\n Then they do not see the card for that reward exchange rule\n\n @motivating\n Scenario Outline: Users can choose their reward option for variable rewards on the Select page\n Given a <type> exchange rule\n And it has the following fields\n | fields |\n | name |\n | description |\n | image |\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see the exchange rule image on the left hand side\n And on the right hand side they see the following in this order from top to bottom\n | elements |\n | exchange name |\n | exchange description |\n | select list with all exchange options using pretty values, destination reward above source reward |\n Examples:\n | type |\n | STEPPED_FIXED_GLOBAL_REWARD |\n | VARIABLE_GLOBAL_REWARD |\n | VARIABLE_CREDIT_REWARD |\n\n @motivating\n Scenario: Users who selected a fixed exchange rule see exchange information on the Select page\n Given a "FIXED_GLOBAL_REWARD" exchange rule\n And it has the following fields\n | fields |\n | name |\n | description |\n | image |\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see the exchange rule image on the left hand side\n And on the right hand side they see the following in this order from top to bottom\n | elements |\n | exchange name |\n | exchange source pretty value displayed in brand colour |\n | exchange description |\n\n @motivating\n Scenario Outline: Users selection variable rewards can only select rewards they are eligible to exchange for\n Given a <type> exchange rule\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see a drop down with all the reward exchange selections\n When they click on the drop down\n But they are not eligible for all of the exchanges options <dueToReason>\n Then the ineligble options are disabled\n And under the source value is <text>\n Examples:\n | type | dueToReason | text |\n | STEPPED_FIXED_GLOBAL_REWARD | due to insufficent source value | {prettySourceValue} required |\n | VARIABLE_GLOBAL_REWARD | due to insufficent source value | {prettySourceValue} required |\n | VARIABLE_CREDIT_REWARD | due to insufficent source value | {prettySourceValue} required |\n | STEPPED_FIXED_GLOBAL_REWARD | W9 | US Tax Limit |\n | VARIABLE_GLOBAL_REWARD | W9 | US Tax Limit |\n | VARIABLE_CREDIT_REWARD | W9 | US Tax Limit |\n\n @motivating\n Scenario Outline: The Confirm page allows users to view their exchange before committing\n Given a <type> exchange rule\n When a user views the reward exchange list\n And they select the exchange\n And they progress to Confirm page\n Then they see a row with title "Reward"\n And it contains the exchange name\n And it contains the exchange image\n And they <maySee> a row with title "Reward Amount"\n And it <mayContain> <amountTitle>\n And they see a row with title "Cost to Redeem"\n And it contains the source reward pretty value in bolded text\n Examples:\n | type | maySee | mayContain | amountTitle |\n | FIXED_GLOBAL_REWARD | don\'t | doesn\'t contain | N/A |\n | VARIABLE_GLOBAL_REWARD | see | contains | the pretty destination value |\n | STEPPED_FIXED_GLOBAL_REWARD | see | contains | the pretty destination value |\n | VARIABLE_CREDIT_REWARD | see | contains | the pretty destination value |\n\n @motivating\n Scenario: An error banner is displayed if an error occurs during redemeption\n Given a user has selected a reward to exchange\n And is on the confirmation page\n When they click "Redeem"\n But an error occurs\n Then an error banner appears\n And it contains details about the error\n And the reward exchange is not completed\n\n @motivating\n Scenario: Confetti is displayed when a reward exchange succeeds\n Given a user has selected a reward to exchange\n And they are on the confirmation page\n When they click "Redeem"\n And the exchange is successful\n Then they see confetti centered on the success page\n And they see text describing what they exchanged for their new reward\n And they see a "Done" brand colour button\n When they click "Done"\n Then they see the Rewards page\n\n @motivating\n Scenario: Fuel tank codes are shown when a reward exchange succeeds\n Given a user has selected to exchange for a fuel tank reward\n When they complete the reward exchange\n And are on the success page\n Then they see a textbox with their fuel tank code\n And a clipboard icon\n When they click the clipboard icon\n Then their fuel tank code is copied to their clipboard\n\n @motivating\n Scenario Outline: Users can exchange for any type of reward\n Given a <type> reward exchange rule for a <reward>\n And a user who has enough source credit to exchange for the reward\n When they go through the exchange flow\n And exchange for their reward\n Then their credit is exchanged for the <reward>\n Examples:\n | type | reward |\n | FIXED_GLOBAL_REWARD | gift card |\n | FIXED_GLOBAL_REWARD | fuel tank code |\n | FIXED_GLOBAL_REWARD | discount |\n | FIXED_GLOBAL_REWARD | credit reward |\n | STEPPED_FIXED_GLOBAL_REWARD | gift card |\n | STEPPED_FIXED_GLOBAL_REWARD | discount |\n | STEPPED_FIXED_GLOBAL_REWARD | credit reward |\n | VARIABLE_GLOBAL_REWARD | gift card |\n | VARIABLE_GLOBAL_REWARD | discount |\n | VARIABLE_GLOBAL_REWARD | credit reward |\n | VARIABLE_CREDIT_REWARD | credit reward |';var RewardExchangeList_stories={title:"Components/Reward Exchange List",parameters:{scenario:scenario$l}};var StoryBase=function(e){return function(){return h(RewardExchangeView,Object.assign({},e))}};var ChooseReward=StoryBase(rewardExchange);var CustomErrorMessage=StoryBase(rewardExchangeCustomErrorMsg);var LongTextRewardExhange=StoryBase(rewardExchangeLongText);var ChooseRewardSelected=StoryBase(rewardExchangeSelected);var ChooseAmount=StoryBase(chooseAmountFixed);var ChooseAmountNoDescription=StoryBase(chooseAmountFixedNoDescription);var ChooseAmountVariableAndStepped=StoryBase(chooseAmountVariable);var ChooseAmountVariableAndSteppedNoDescription=StoryBase(chooseAmountVariableNoDescription);var chooseAmountVariableAndSteppedDisabled=StoryBase(chooseAmountVariableDisabled);var chooseAmountVariableAndSteppedUnavailable=StoryBase(chooseAmountVariableUnavailable);var Confirm=StoryBase(confirmFixed);var ConfirmVariableAndStepped=StoryBase(confirmVariable);var RedemptionError=StoryBase(redemptionError);var QueryError=StoryBase(queryError);var SuccessPromo=StoryBase(success);var SuccessVariableAndStepped=StoryBase(successVariable);var Loading$3=StoryBase(loading);var Empty$2=StoryBase(empty$1);var RewardExchangeList=Object.freeze({__proto__:null,default:RewardExchangeList_stories,ChooseReward:ChooseReward,CustomErrorMessage:CustomErrorMessage,LongTextRewardExhange:LongTextRewardExhange,ChooseRewardSelected:ChooseRewardSelected,ChooseAmount:ChooseAmount,ChooseAmountNoDescription:ChooseAmountNoDescription,ChooseAmountVariableAndStepped:ChooseAmountVariableAndStepped,ChooseAmountVariableAndSteppedNoDescription:ChooseAmountVariableAndSteppedNoDescription,chooseAmountVariableAndSteppedDisabled:chooseAmountVariableAndSteppedDisabled,chooseAmountVariableAndSteppedUnavailable:chooseAmountVariableAndSteppedUnavailable,Confirm:Confirm,ConfirmVariableAndStepped:ConfirmVariableAndStepped,RedemptionError:RedemptionError,QueryError:QueryError,SuccessPromo:SuccessPromo,SuccessVariableAndStepped:SuccessVariableAndStepped,Loading:Loading$3,Empty:Empty$2});var scenario$m='@author:derek\n@owner:derek\nFeature: Program Explainer\n\n @motivating\n @ui\n Scenario Outline: The program explainer wraps program explainer steps and aligns them\n Given a program explainer component\n And it has <number> program explainer steps as components\n When a user views the program explainer\n Then they see <number> steps aligned horizontally\n And they have equal height/width\n And equal padding in between\n When they are viewed on a screen smaller than 500px\n Then the steps stack vertically with equal padding in between\n And they have equal width\n But height may vary\n Examples:\n | number |\n | 2 |\n | 3 |\n | 4 |\n\n @motivating\n @ui\n Scenario: The program explainer displays a section header\n Given a program explainer step with props\n | prop | value |\n | header | My Header |\n And it has program explainer steps as children\n When a user views the program explainer\n Then they see "My Header" centered above the explainer steps\n\n @motivating\n @ui\n Scenario: Colours are customizable\n Given a program explainer with props\n | prop | value |\n | text-color | purple |\n | background-color | grey |\n When a user views the program explainer\n Then the header is purple\n And the background between steos is grey\n';var ProgramExplainer_stories={title:"Components/Program Explainer",parameters:{scenario:scenario$m}};var OneStep=function(){return h("sqm-program-explainer",{header:"How it works"},h("sqm-program-explainer-step",{header:"Get up to $1250 for inviting friends to Klip",description:"Share your referral link with a friend and earn up to $1250",icon:"person-plus-fill"}))};var TwoSteps=function(){return h("sqm-program-explainer",{header:"How it works"},h("sqm-program-explainer-step",{header:"Get up to $1250 for inviting friends to Klip",description:"Share your referral link with a friend and earn up to $1250",icon:"person-plus-fill"}),h("sqm-program-explainer-step",{header:"Earn points for using Klip",description:"Complete tasks like uploading your first video or sharing videos with friends",icon:"server"}))};var ThreeSteps=function(){return h("sqm-program-explainer",{header:"How it works"},h("sqm-program-explainer-step",{header:"Get up to $1250 for inviting friends to Klip",description:"Share your referral link with a friend and earn up to $1250",icon:"person-plus-fill"}),h("sqm-program-explainer-step",{header:"Earn points for using Klip",description:"Complete tasks like uploading your first video or sharing videos with friends",icon:"server"}),h("sqm-program-explainer-step",{header:"Redeem rewards with your points",description:"Redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America",icon:"people-fill"}))};var Custom=function(){return h("sqm-program-explainer",{header:"How it works","text-color":"#fffc4b","background-color":"#ff7f7f"},h("sqm-program-explainer-step",{header:"Get up to $1250 for inviting friends to Klip",description:"Share your referral link with a friend and earn up to $1250",icon:"person-plus-fill"}),h("sqm-program-explainer-step",{header:"Earn points for using Klip",description:"Complete tasks like uploading your first video or sharing videos with friends",icon:"server"}),h("sqm-program-explainer-step",{header:"Redeem rewards with your points",description:"Redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America",icon:"people-fill"}))};var ProgramExplainerGeneric=function(){return h("sqm-program-explainer",{header:"Anything and everything can be passed to this component!","text-color":"#eee","background-color":"#333"},h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",color:"#333"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",color:"#333"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",color:"#333"}},"PLACEHOLDER"))};var ProgramExplainer=Object.freeze({__proto__:null,default:ProgramExplainer_stories,OneStep:OneStep,TwoSteps:TwoSteps,ThreeSteps:ThreeSteps,Custom:Custom,ProgramExplainerGeneric:ProgramExplainerGeneric});var scenario$n='@author:derek\n@owner:derek\nFeature: Program Explainer Step\n\n @motivating\n @ui\n Scenario: The program explainer step displays a icon, header and description\n Given a program explainer step with props\n | prop | value |\n | header | My Header |\n | description | My program explainer description |\n | icon | person-plus-fill |\n When a user views the explainer step\n Then they see an person icon with a + in the top left hand corner\n And the icon is weight 300 brand colour\n And below they see "My Header" in large bold font\n And below they see "My program explainer description" in medium font\n And the step background colour is weight 50 brand colour\n\n @motivating\n @ui\n Scenario: The program explainer can display an image in place of an icon\n Given a program explainer\n And it has an "image-url" prop with a value of a valid url to an image\n When a user views the explainer step\n Then the image is displayed in place of an incon in the top left hand corner\n\n @motivating\n @ui\n Scenario: Colours are customizable\n Given a program explainer step with props\n | prop | value |\n | text-color | purple |\n | background-color | grey |\n When a user views the explainer step\n Then they see the step background is grey\n And the header text is purple\n And the description text is purple\n';var ProgramExplainerStep_stories={title:"Components/Program Explainer Step",parameters:{scenario:scenario$n}};var ProgramExplainerStep=function(){return h("sqm-program-explainer-step",{header:"Get up to $1250 for inviting friends to Klip",description:"Send your referral link to a friend or share it through email, Twitter, or Facebook",icon:"person-plus-fill"})};var ProgramExplainerStepCustom=function(){return h("sqm-program-explainer-step",{header:"Invite your friends to Klip",description:"Send your referral link to a friend or share it through email, Twitter, or Facebook","image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000265/squatch-assets/Uqn3aXw.png","text-color":"#fffc4b","background-color":"#ff7f7f"})};var ProgramExplainerStep$1=Object.freeze({__proto__:null,default:ProgramExplainerStep_stories,ProgramExplainerStep:ProgramExplainerStep,ProgramExplainerStepCustom:ProgramExplainerStepCustom});var scenario$o='@author:derek\n@owner:logan\nFeature: Brand Configuration\n\n\t@motivating\n\tScenario: The brand components creates a colour pallet from a brand colour and applies it to children\n\t\tGiven a brand component with "brand-color" "#4225c4"\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the following css variables are set\n\t\t\t| variable | value |\n\t\t\t| --sl-color-primary-50 | hsla(251, 68%, 95%, 1) |\n\t\t\t| --sl-color-primary-100 | hsla(251, 68%, 86%, 1) |\n\t\t\t| --sl-color-primary-200 | hsla(251, 68%, 76%, 1) |\n\t\t\t| --sl-color-primary-300 | hsla(251, 68%, 66%, 1) |\n\t\t\t| --sl-color-primary-400 | hsla(251, 68%, 56%, 1) |\n\t\t\t| --sl-color-primary-500 | hsla(251, 68%, 46%, 1) |\n\t\t\t| --sl-color-primary-600 | hsla(251, 68%, 39%, 1) |\n\t\t\t| --sl-color-primary-700 | hsla(251, 68%, 32%, 1) |\n\t\t\t| --sl-color-primary-800 | hsla(251, 68%, 25%, 1) |\n\t\t\t| --sl-color-primary-900 | hsla(251, 68%, 18%, 1) |\n\t\t\t| --sl-color-primary-950 | hsla(251, 68%, 15%, 1) |\n\t\t\t| --sl-focus-ring-color-primary | var(--sl-color-primary-100) |\n\t\t\t| --sl-input-border-color-focus | var(--sl-color-primary-500) |\n\t\t\t| --sl-color-primary-hue | var(--sl-color-primary-500) |\n\t\tAnd they are applied to the children components\n\t\tBut they are not applied to any components outside of the brand component\n\t\tAnd they are not applied to any vanilla components\n\n\t@minutia\n\tScenario Outline: The brand colour can be hex, HSL or rgb\n\t\tGiven a brand component with "brand-color" <colour>\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the colour is used to create a brand palete\n\t\tAnd it is applied to the children components\n\t\tExamples:\n\t\t\t| colour |\n\t\t\t| #4225c4 |\n\t\t\t| rgb(66, 37, 196) |\n\t\t\t| hsl(251, 68%, 46%) |\n\t\t\t| hsla(251, 68%, 46%, 1) |\n\n\t@motivating\n\tScenario: The brand component can apply a brand font to children components\n\t\tGiven a brand component with "brand-font" "Nunito Sans"\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the following css variables are set\n\t\t\t| variable | value |\n\t\t\t| --sl-font-sans | "Nunito Sans", arial |\n\t\t\t| --sl-input-font-family | "Nunito Sans", arial |\n\t\t\t| --sl-tooltip-font-family | "Nunito Sans", arial |\n\t\t\t| font-family | "Nunito Sans", arial |\n\t\tAnd they are applied to the children components\n\t\tAnd the children component\'s text is "Nunito Sans"';var SqmBrand_stories={title:"Components/Brand",parameters:{scenario:scenario$o}};var SampleComponents=function(){return h("div",{style:{padding:"10px",border:"5px solid #EEE"}},h("div",{style:{display:"flex",gap:"5px",padding:"5px"}},h("sl-button",{type:"default"},"Default"),h("sl-button",{type:"primary"},"Primary"),h("sl-button",{type:"success"},"Success"),h("sl-button",{type:"neutral"},"Neutral"),h("sl-button",{type:"warning"},"Warning"),h("sl-button",{type:"danger"},"Danger")),h("div",{style:{display:"flex",gap:"5px",padding:"5px"}},h("sl-badge",{type:"primary"},"Primary"),h("sl-badge",{type:"success"},"Success"),h("sl-badge",{type:"neutral"},"Neutral"),h("sl-badge",{type:"warning"},"Warning"),h("sl-badge",{type:"danger"},"Danger")),h("div",{class:"color-palette"},h("div",{class:"color-palette__name"},"Primary",h("br",null),h("code",null,"--sl-color-primary-",h("em",null,"{n}"))),h("div",{style:{display:"flex",gap:"5px"}},h(ColorSwatch,{depth:50}),h(ColorSwatch,{depth:100}),h(ColorSwatch,{depth:200}),h(ColorSwatch,{depth:300}),h(ColorSwatch,{depth:400}),h(ColorSwatch,{depth:500}),h(ColorSwatch,{depth:600}),h(ColorSwatch,{depth:700}),h(ColorSwatch,{depth:800}),h(ColorSwatch,{depth:900}),h(ColorSwatch,{depth:950}))))};var Examples=function(){return h("div",null,h(SampleComponents,null),h("sqm-brand",{"brand-color":"#FF0000"},h(SampleComponents,null)),h("sqm-brand",{"brand-color":"#00FF00"},h(SampleComponents,null)),h("sqm-brand",{"brand-color":"#0000FF"},h(SampleComponents,null)),h("sqm-brand",{"brand-color":"#000000"},h(SampleComponents,null)))};var Nested=function(){return h("div",null,"Default ",h(SampleComponents,null),h("sqm-brand",{"brand-color":"#FF0000"},"Red:",h(SampleComponents,null),h("sqm-brand",{"brand-color":"#00FF00"},"Green:",h(SampleComponents,null),h("sqm-brand",{"brand-color":"#0000FF"},"Blue:",h(SampleComponents,null),h("sqm-brand",{"brand-color":"#000000"},"Black:",h(SampleComponents,null))))))};function ColorSwatch(e){var t=e.depth;return h("div",{style:{backgroundColor:"var(--sl-color-primary-"+t+")",color:"var(--sl-color-neutral-"+(1e3-t)+")",width:"50px",height:"50px",display:"flex",justifyContent:"center",alignItems:"center"}},t)}var Fonts=function(){return h("div",null,h(SampleComponents,null),h("sqm-brand",{"brand-font":"Roboto"},"Roboto",h(SampleComponents,null)),h("sqm-brand",{"brand-font":"Open Sans"},"Open Sans",h(SampleComponents,null)),h("sqm-brand",{"brand-font":"Lato"},"Lato",h(SampleComponents,null)),h("sqm-brand",{"brand-font":"Oswald"},"Oswald",h(SampleComponents,null)))};var BrandStories=Object.freeze({__proto__:null,default:SqmBrand_stories,Examples:Examples,Nested:Nested,Fonts:Fonts});var scenario$p='@author:kutay\n@owner:kutay\nFeature: Card Feed\n\n\tThe Card Feed component displays Task Card components in a grid layout.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Card Feed component\n\n\t@motivating\n\tScenario: The Card Feed component displays Task Cards given as children slots\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tWhen the user views the Card Feed\n\t\tThen the task cards are displayed in a masonry layout\n\t\tWhen the card feed with grows or shrinks in width\n\t\tThen the number of columns adjust to the given width\n\n\t@motivating\n\t@ui\n\tScenario Outline: The Card Feed component can have a maximum width\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tAnd has prop "width" has a provided <value>\n\t\tThen the task cards are displayed in a masonry layout\n\t\tWhen the card feed with grows or shrinks in width\n\t\tThen the number of columns adjust to the given width\n\t\tAnd the task cards do not exceed <width>\n\t\tExamples:\n\t\t\t| value | width |\n\t\t\t| | 347px |\n\t\t\t| 200 | 200px |\n\t\t\t| 400 | 400px |\n\n\t@motivating\n\t@ui\n\tScenario Outline: The Card Feed component gap between task cards can be customized\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tAnd has prop "gap" has a provided <value>\n\t\tThen the task cards are displayed in a masonry layout\n\t\tAnd the gap between the columns is the <gap>\n\t\tExamples:\n\t\t\t| value | gap |\n\t\t\t| | 24px |\n\t\t\t| 20 | 20px |\n\t\t\t| 50 | 50px |';var CardFeed_stories={title:"Components/Card Feed",parameters:{scenario:scenario$p}};var oneAction$1={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"20",rewardUnit:"SaaSquatch Points",cardTitle:"Complete a survey",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,showProgressBar:false,steps:false,buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,rewardDuration:null,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:1,locale:"en"},states:{progress:0,loading:false,loadingEvent:false}};var coupleActions$1={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"40",rewardUnit:"SaaSquatch Points",cardTitle:"Comment on 5 articles",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,showProgressBar:true,steps:true,buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",rewardDuration:null,expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:5,locale:"en"},states:{progress:1,loading:false,loadingEvent:false}};var manyActions$1={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"150",rewardUnit:"SaaSquatch Points",cardTitle:"Spend $500 at our Store",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",showProgressBar:true,steps:false,progressBarUnit:"$",buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,rewardDuration:null,expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:500,locale:"en"},states:{progress:100,loading:false,loadingEvent:false}};var TaskCardGrid=function(){return h(CardFeedView,{width:347,gap:24},h(TaskCardView,Object.assign({},oneAction$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},coupleActions$1)),h(TaskCardView,Object.assign({},coupleActions$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},manyActions$1)))};var TaskCardGridHighGap=function(){return h(CardFeedView,{width:400,gap:150},h(TaskCardView,Object.assign({},oneAction$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},coupleActions$1)),h(TaskCardView,Object.assign({},coupleActions$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},manyActions$1)))};var TaskCardGridLowGap=function(){return h(CardFeedView,{width:400,gap:12},h(TaskCardView,Object.assign({},oneAction$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},coupleActions$1)),h(TaskCardView,Object.assign({},coupleActions$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},manyActions$1)))};var TaskCardGridHighWidth=function(){return h(CardFeedView,{width:1e3,gap:24},h(TaskCardView,Object.assign({},oneAction$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},coupleActions$1)),h(TaskCardView,Object.assign({},coupleActions$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},manyActions$1)))};var TaskCardGridLowWidth=function(){return h(CardFeedView,{width:250,gap:24},h(TaskCardView,Object.assign({},oneAction$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},coupleActions$1)),h(TaskCardView,Object.assign({},coupleActions$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},manyActions$1)))};var CardFeedGeneric=function(){return h(CardFeedView,{width:300,gap:24},h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-flex",alignItems:"center",justifyContent:"center"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"))};var CardFeed=Object.freeze({__proto__:null,default:CardFeed_stories,TaskCardGrid:TaskCardGrid,TaskCardGridHighGap:TaskCardGridHighGap,TaskCardGridLowGap:TaskCardGridLowGap,TaskCardGridHighWidth:TaskCardGridHighWidth,TaskCardGridLowWidth:TaskCardGridLowWidth,CardFeedGeneric:CardFeedGeneric});var scenario$q='@author:kutay\n@owner:noah\nFeature: Portal Container\n\n\t@motivating\n\t@ui\n\tScenario: Horizontal content overflows, but does not stretch\n\t\tGiven there are two element in the container\n\t\tAnd the first is small\n\t\tAnd the second would stretch the container wider than it\'s parent\n\t\tThen the second one is clipped\n\t\tAnd the first one doesn\'t stretch\n\n\t@landmine\n\t@ui\n\tScenario: `max-width` is required for displaying as a row\n\t\tGiven I have `direction` to "row"\n\t\tAnd I have not set a `max-width`\n\t\tThen it displays as a column\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content padding can be customized\n\t\tGiven prop "padding" has <value>\n\t\tThen <padding> is applied to content\n\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\n\t@motivating\n\t@ui\n\tScenario Outline: Gap between content elements can be customized\n\t\tGiven prop "gap" has <value>\n\t\tThen <gap> is applied to elements between content\n\n\t\tExamples:\n\t\t\t| value | gap |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\t@minutia\n\t@ui\n\tScenario: Content can be center aligned in horizontal view\n\t\tGiven I have supplied the prop "center"\n\t\tThen the content is center aligned\n\n\t@minutia\n\t@ui\n\tScenario: Content in the last row can span full width with display in horizontal view\n\t\tGiven I have `display` to "flex"\n\t\tThen the content is full width on the last row\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content can be aligned along the x-axis\n\t\tGiven prop "justify-content" has <value>\n\t\tThen content within the container is aligned <alignment>\n\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| none | no alignment |\n\t\t\t| start | to the start |\n\t\t\t| center | to the center |\n\t\t\t| end | to the end |\n\t\t\t| space-between | with space between |\n\t\t\t| space-around | with space around |\n\t\t\t| space-evenly | with space evenly |\n\n\n\t@motivating\n\t@ui\n\tScenario Outline: Component background color can be customized\n\t\tGiven a user is viewing the Portal Container component\n\t\tThen the default value is "#ffffff00"\n\t\tWhen the prop "background-color" has <value>\n\t\tThen the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| value | backgroundColor |\n\t\t\t| empty (default value) | var(--sl-color-neutral-0) (#ffffff) |\n\t\t\t| aquamarine | #7fffd4 |\n';var PortalContainer_stories={title:"Components/Portal Container",parameters:{scenario:scenario$q}};var TooWideColumn=function(){return h("div",{style:{width:"200px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large"},h("div",{style:{background:"grey",border:"1px solid red"}},"Small"),h("div",{style:{background:"lightblue",width:"1000px"}},"Too wide, content goes off the side of the page for ever and is hidden.")))};var TooWideRow=function(){return h("div",{style:{width:"500px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large",direction:"row","min-width":"160px"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var TooWideSmallGap=function(){return h("div",{style:{width:"500px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"small",direction:"row","min-width":"160px"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var TooWidePadding=function(){return h("div",{style:{width:"500px",border:"1px dashed grey"}},h("sqm-portal-container",{padding:"xxx-large",gap:"xxx-large",direction:"row","min-width":"160px"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var TooWideDisplayFlex=function(){return h("div",{style:{width:"500px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large",direction:"row",display:"flex","min-width":"160px"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var HalfWidth=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large",direction:"row",minWidth:"160px",maxWidth:"50%"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var HalfWidthCenter=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large",direction:"row",minWidth:"160px",maxWidth:"50%",center:true},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var FullWidth=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large",direction:"row",maxWidth:"100%"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var SpaceBetween=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"space-between"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var SpaceAround=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"space-around"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var SpaceEvenly=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"space-evenly"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var Start$1=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"start"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var Center=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"center"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var End=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"end"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var BackgroundColor=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"start","background-color":"red"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var PortalContainer=Object.freeze({__proto__:null,default:PortalContainer_stories,TooWideColumn:TooWideColumn,TooWideRow:TooWideRow,TooWideSmallGap:TooWideSmallGap,TooWidePadding:TooWidePadding,TooWideDisplayFlex:TooWideDisplayFlex,HalfWidth:HalfWidth,HalfWidthCenter:HalfWidthCenter,FullWidth:FullWidth,SpaceBetween:SpaceBetween,SpaceAround:SpaceAround,SpaceEvenly:SpaceEvenly,Start:Start$1,Center:Center,End:End,BackgroundColor:BackgroundColor});var scenario1='@author:derek\n@owner:derek\nFeature: Reward Table Date Column\n\n Shows the date of each reward\n\n Background:\n Given the date column is included in the reward table\n\n @motivating\n @ui\n Scenario Outline: The title of the date column is configurable\n Given the "column-title" prop is set to <value>\n Then the date column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Date received | |\n | My column title | My column title |\n\n @motivating\n Scenario Outline: A configurable date associated with the reward is shown for each reward\n Given the "date-shown" prop is set to <dateType>\n And a user with rewards\n When they view the date column\n Then for each reward the <rewardDate> is shown in the table\n And the date is localized to the users locale\n Examples:\n | dateType | rewardDate |\n | dateGiven | date given |\n | dateExpires | date expires |\n | dateCancelled | date cancelled |\n | dateRedeemed | date redeemed |\n | dateScheduledFor | date scheduled for |\n | | date given |';var scenario2='@author:derek\n@owner:derek\nFeature: Reward Table reward Column\n\n Shows the exact reward\n\n Background:\n Given the reward column is included in the reward table\n And rewards with translations exist\n\n @motivating\n @ui\n Scenario Outline: The title of the reward column is configurable\n Given the "column-title" prop is set to <value>\n Then the reward column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Reward | |\n | My column title | My column title |\n\n @motivating\n Scenario: The reward column displays the prettyValue of the reward given\n Given a user with a reward\n When they view the rewards table\n Then they see the name of their reward in the reward column\n And the name is the prettyValue translated for the users locale\n\n @motivating\n @ui\n Scenario: The reward column displays an availability bar if the reward is redeemable\n Given a user with a <status> credit reward of <value>\n But the user has <redeemedAmount>\n When they view the rewards table\n Then the reward column displays <value>\n And under it displays an availability bar with <percentage> filled\n And under it displays <availabilityText>\n Examples:\n | status | value | percentage | availableAmount | availabilityText |\n | AVAILABLE | 10 Points | 100% | 10 Points | 10 Points remaining |\n | AVAILABLE | 10 Points | 90% | 9 Points | 9 Points remaining |\n | AVAILABLE | 10 Points | 10% | 1 Point | 1 Point remaining |\n | PENDING | 10 Points | 100% | 10 Points | 10 Points remaining |\n | PENDING | 10 Points | 90% | 9 Points | 9 Points remaining |\n | PENDING | 10 Points | 10% | 1 Point | 1 Point remaining |\n\n @motivating\n @ui\n Scenario Outline: The reward column displays an availability bar if the reward was redeemable but had been cancelled or expired\n Given a user with a credit reward of <value>\n And the reward has <status>\n But the user has <redeemedAmount>\n When they view the rewards table\n When they view the rewards table\n Then the reward column displays <value>\n And under it displays an availability bar with <percentage> filled\n And under it displays <redeemedText>\n Examples:\n | status | value | percentage | redeemedAmount | redeemedText |\n | EXPIRED | 10 Points | 100% | 0 Point | 0 Point redeemed |\n | EXPIRED | 10 Points | 80% | 2 Point | 2 Point redeemed |\n | CANCELLED | 10 Points | 100% | 0 Point | 0 Point redeemed |\n | CANCELLED | 10 Points | 20% | 8 Point | 8 Point redeemed |\n\n @motivating\n @ui\n Scenario: The reward column doesn\'t display the availability bar if the reward is not redeemable\n Given a user with a non credit reward\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n\n @motivating\n @ui\n Scenario Outline: The reward column doesn\'t display the availability bar if the reward is only 1 reward unit\n Given a user with a credit reward for 1 of a reward unit\n And it has <status>\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n Examples:\n | status |\n | AVAILABLE |\n | PENDING |\n | EXPIRED |\n | CANCELLED |\n\n @motivating\n @ui\n Scenario: The reward column doesn\'t display the availability bar for redeemed credit rewards\n Given a user with a "REDEEMED" credit reward\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n\n @motivating\n @ui\n Scenario: Users can copy their fuel tank codes\n Given a user with a fuel tank reward\n When they view the rewards table\n Then they see their fuel tank reward\n And they see their fuel tank code bolded in blue\n When they click on their code\n Then a tool tip appears saying it has been copied to their clipboard\n And their code is copied to their clipboard';var scenario3='@author:derek\n@owner:derek\nFeature: Reward Table Status Column\n\n Shows the status of each reward\n\n Background:\n Given the status column is included in the reward table\n\n @motivating\n @ui\n Scenario Outline: The title of the status column is configurable\n Given the "column-title" prop is set to <value>\n Then the status column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Status | |\n | My column title | My column title |\n\n @motivating\n @ui\n Scenario Outline: The status column displays the status of each reward\n Given a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n Examples:\n | status | text | pillColour |\n | AVAILABLE | Available | Green |\n | CANCELLED | Cancelled | Red |\n | PENDING | Pending | Orange |\n | EXPIRED | Expired | Red |\n | REDEEMED | Redeemed | Blue |\n | PENDING_REVIEW | Pending Review | Orange |\n | DENIED | Denied | Red |\n\n @motivating\n Scenario Outline: Reward status related information is displayed under status pills\n Given a user\n And they have a <reward>\n When they view the reward table\n Then they see their reward\n And under the pill is <text>\n And the date is localized to the users locale\n Examples:\n | reward | text |\n | available reward with an expiry date | localized expiry date in format "Month-Day-Year" |\n | redeemed reward | localized redemption date in format "Month-Day-Year" |\n | expired reward | localized expired date in format "Month-Day-Year" |\n | cancelled reward | localized cancelled date in format "Month-Day-Year" |\n | pending reward with a end date | localized pending for date in format "Month-Day-Year" |\n | pending reward due to W9 | W-9 required |\n | pending reward due to fufillment error | Fulfillment error |\n | reward pending review of referral | Pending review |\n | cancelled reward from denied referral | Flagged as fraud |\n\n @motivating\n Scenario Outline: Statuses can be customized\n Given the "status-text" prop is "{status, select, AVAILABLE {Redeem me!} CANCELLED {Unavailable} PENDING {Coming soon!} EXPIRED {Past due} REDEEMED {Spent} PENDING_REVIEW {Pending Review!} DENIED {Unlucky!}}"\n And a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n Examples:\n | status | text | pillColour |\n | AVAILABLE | Redeem me! | Green |\n | CANCELLED | Unavailable | Red |\n | PENDING | Coming soon! | Orange |\n | EXPIRED | Past due | Red |\n | REDEEMED | Spent | Blue |\n | PENDING_REVIEW | Pending Review! | Orange |\n | DENIED | Unlucky! | Red |\n\n @minutia\n @ui\n Scenario: Expiry status date text can be configured\n Given the "expiry-text" prop has <value>\n And a user with an available reward with an expiry date\n When they view the reward table\n Then they see <text> under the Available Status pill\n Examples:\n | value | text |\n | | Expires on <EXPIRY DATE> |\n | Redeem before | Redeem before <EXPIRY DATE> |';var scenario4='@author:derek\n@owner:derek\nFeature: Reward Table Source Column\n\n Shows the source of each reward\n\n @motivating\n @ui\n Scenario Outline: The title of the source column is configurable\n Given the "column-title" prop is set to <value>\n Then the source column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Source | |\n | My column title | My column title |\n\n @motivating\n @ui\n Scenario: The source column displays manual if the reward is caused by a manual action\n Given a user with a "MANUAL" reward\n When they view the rewards table\n Then the source of their reward is displayed as "Manual"\n\n @motivating\n @ui\n Scenario: The source column displays the program name if the reward is caused automatically by a program\n Given a user with a "AUTOMATED" program reward\n And the program has name "Loyalty Program"\n When they view the rewards table\n Then the source of their reward is displayed as "Loyalty Program"\n\n @motivating\n @ui\n Scenario Outline: The source column displays customizable reward exchange text with amount if the reward is caused by reward exchange\n Given the "reward-exchange-text" prop is <propValue>\n And a user with a "MANUAL" reward\n But it was created by a reward exchange\n Then they view the rewards table\n Then the source displays <exchangeText>\n And under it displays the following\n | prettyRedeemedCredit → prettyValue |\n Examples:\n | propValue | exchangeText |\n | | Reward Exchange |\n | Exchanged | Exchanged |\n\n @motivating\n @ui\n Scenario Outline: The source column displays customizable referral information if the reward is from a referral\n Given the "reward-source-text" prop is <propValue>\n And a user with a referral reward\n And that reward has <rewardSource>\n When they view the rewards table\n Then then source displays <referralText>\n And under it displays the full name of the <referralUser>\n Examples:\n | propValue | rewardSource | referralText | referralUser |\n | | REFERRED | Referred by | referrer user |\n | | FRIEND_SIGNUP | Referral to | referred user |\n | {rewardSource, select, FRIEND_SIGNUP {You Referred} REFERRED {Referred you} other {}} | REFERRED | Referred you | referrer user |\n | {rewardSource, select, FRIEND_SIGNUP {You Referred} REFERRED {Referred you} other {}} | FRIEND_SIGNUP | You Referred | referred user |\n\n @motivating\n @ui\n Scenario Outline: The source column displays the existing name for a referral if either the first name or last name does not exist\n Given a user with a referral reward\n And referral user exists\n And referral user has <name>\n But referral user has no <otherName>\n When they view the rewards table\n Then referral user\'s name is displayed as <name>\n Examples:\n | name | otherName |\n | first.name | last.name |\n | last.name | first.name |\n\n @motivating\n @ui\n Scenario Outline: The source column displays referral as "Anonymous User" if the referral user has no names\n Given a user with a referral reward\n And that reward has <rewardSource>\n And the <referralUser> has no first name\n And the <referralUser> has no last name\n When they view the rewards table\n Then then source displays <sourceText>\n And under it displays "Anonymous User"\n Examples:\n | rewardSource | referralUser | sourceText |\n | FRIEND_SIGNUP | referrer | Referral to |\n | REFERRED | referred user | Referred by |\n\n @motivating\n @ui\n Scenario Outline: The source column displays referral as "Deleted User" if the referral user is deleted in the system\n Given a user with a referral reward\n And that reward has <rewardSource>\n But <referral> user was deleted\n When they view the rewards table\n Then the source displays <sourceText>\n And under it displays "Deleted User"\n Examples:\n | rewardSource | referral | sourceText |\n | "FRIEND_SIGNUP" | referrer | Referral to |\n | "REFERRED" | referred | Referred by |\n\n @minutia\n @ui\n Scenario Outline: Name fallbacks for referral users without names are customizable\n Given <prop> with <value>\n And a user with a referral reward\n But the referral user <hadAction>\n When they view the rewards table\n Then the source displays <value> as the referral user\n Examples:\n | prop | value | hadAction |\n | deleted-user | Former Customer | was deleted |\n | anonymous-user | Nameless User | had first and last name deleted |\n\n @motivating\n Scenario Outline: Source text can be customized\n Given the "reward-source-text" prop is "{rewardSource, select, MANUAL {Support} AUTOMATED {Loyalty Program} other {}}"\n And a user with a <rewardSource> reward\n When they view the rewards table\n Then the source is <sourceText>\n Examples:\n | rewardSource | sourceText |\n | MANUAL | Support |\n | AUTOMATED | Loyalty Program |';var scenario$r=scenario1+scenario2+scenario3+scenario4;var RewardsTableCell_stories={title:"Components/Rewards Table Cell",parameters:{scenario:scenario$r}};var rewardsData$1={id:"61c100117a82a376d8804166",type:"CREDIT",value:19,unit:"Points",name:null,dateGiven:1640038417468,meta:{message:"***CUSTOMER NOTE MESSAGE***"},dateExpires:null,dateCancelled:null,dateRedeemed:null,dateScheduledFor:null,fuelTankCode:null,fuelTankType:null,currency:null,prettyValue:"19 Points",prettyValueNumber:"19",prettyAvailableNumber:"19",prettyRedeemedNumber:"0",statuses:["AVAILABLE"],pendingReasons:null,globalRewardKey:null,rewardSource:"MANUAL",prettyRedeemedCredit:"0 Points",prettyAssignedCredit:"19 Points",prettyAvailableValue:"19 Points",exchangedRewardRedemptionTransaction:null,referral:null,rewardRedemptionTransactions:{data:null}};var RewardsCellCreditSingle=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),singleRedeemed)})};var RewardsCellCreditFull=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign({},rewardsData$1),availableText:"{availableAmount} remaining"})};var partial={prettyAvailableValue:"10 Points",prettyRedeemedCredit:"9 Points",prettyRedeemedNumber:"9",dateRedeemed:1640038417468};var RewardsCellCreditPartial=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),partial),availableText:"{availableAmount} remaining"})};var RewardsCellCreditCancelled=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),cancelled),redeemedText:"{redeemedAmount} redeemed"})};var RewardsCellCreditExpired=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign(__assign({},rewardsData$1),partial),expired),redeemedText:"{redeemedAmount} redeemed"})};var RewardsCellCreditPending=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),pending),availableText:"{availableAmount} remaining"})};var empty={prettyAvailableValue:"0 Points",prettyAvailableNumber:"0",prettyRedeemedCredit:"19 Points",prettyRedeemedNumber:"19",dateRedeemed:1640038417468};var RewardsCellCreditRedeemed=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),empty),availableText:"{availableAmount} remaining"})};var singleRedeemed={prettyValue:"1 Point",prettyValueNumber:"1"};var longName={prettyValue:"19 Points with a really really super duper longest name ever in the world wide web",prettyValueNumber:"19"};var RewardsCellCreditLong=function(){return h("div",{style:{maxWidth:"222px"}},h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),longName),availableText:"{availableAmount} remaining"}))};var RewardsCellNonCredit=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),{type:"GIFTCARD",prettyValue:"SaaSquatch Giftcard"})})};var RewardsCellFueltank=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),{type:"FUELTANK",prettyValue:"Fueltank Reward",fuelTankCode:"AFUELTANKCODE"}),copyText:"Copied"})};var RewardsCellFueltankLong=function(){return h("div",{style:{maxWidth:"222px"}},h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),{type:"FUELTANK",prettyValue:"Long Fueltank Reward",fuelTankCode:"AFUELTANKCODE123456789123456789123456789123456789"}),copyText:"Copied"}))};var SourceCellManual=function(){return h("sqm-rewards-table-source-cell",{reward:rewardsData$1,rewardSourceText:"Manual"})};var SourceCellProgram=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),{rewardSource:"AUTOMATED",program:{name:"Klip Loyalty"}}),rewardSourceText:"{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"})};var exchange={exchangedRewardRedemptionTransaction:{id:"61c100117a82a376d88041196",creditRedeemed:1,prettyRedeemedCredit:"1 Money",unit:"TESTUNIT",dateRedeemed:1640038417173,redeemedRewards:null,exchangedRewards:null}};var SourceCellExchange=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),exchange),rewardExchangeText:"Reward Exchange"})};var longUserName={firstName:"Bartholomew",lastName:"Christopher-Johnston Wallace",imageUrl:null};var johnDoe={firstName:"John",lastName:"Doe",imageUrl:null};var anon={firstName:"",lastName:"",imageUrl:null};var referral=function(e){if(e===void 0){e=null}return{rewardSource:"FRIEND_SIGNUP",referral:{id:"123",dateConverted:1640038417173,dateReferralStarted:1640038417173,dateReferralPaid:1640038417173,dateModerated:1640038417173,dateReferralEnded:null,moderationStatus:null,rewards:null,referrerUser:e,referredUser:e}}};var referred=function(e){if(e===void 0){e=null}return{rewardSource:"REFERRED",referral:{id:"123",dateConverted:1640038417173,dateReferralStarted:1640038417173,dateReferralPaid:1640038417173,dateModerated:1640038417173,dateReferralEnded:null,moderationStatus:null,rewards:null,referrerUser:e,referredUser:e}}};var SourceCellReferral=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),referral(johnDoe)),referralText:"Referral to"})};var SourceCellWithLongText=function(){return h("div",{style:{width:"200px"}},h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),referral(longUserName)),referralText:"Referral to"}))};var SourceCellReferred=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),referred(johnDoe)),referralText:"Referred by"})};var SourceCellAnonymousUser=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),referral(anon)),referralText:"Referral to",anonymousUserText:"Anonymous User"})};var SourceCellDeletedUser=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),referral(null)),referralText:"Referral to",deletedUserText:"Deleted User"})};var StatusCellAvailable=function(){return h("sqm-rewards-table-status-cell",{statusText:"Available",reward:rewardsData$1})};var expire={dateExpires:1640038417468};var StatusCellAvailableExpiry=function(){return h("sqm-rewards-table-status-cell",{statusText:"Available",reward:__assign(__assign({},rewardsData$1),expire),expiryText:"Expires"})};var redeemed={statuses:["REDEEMED"],dateRedeemed:1640038417468};var StatusCellRedeemed=function(){return h("sqm-rewards-table-status-cell",{statusText:"Redeemed",reward:__assign(__assign({},rewardsData$1),redeemed)})};var cancelled={statuses:["CANCELLED"],dateCancelled:1640038417468};var StatusCellCancelled=function(){return h("sqm-rewards-table-status-cell",{statusText:"Cancelled",reward:__assign(__assign({},rewardsData$1),cancelled)})};var expired={statuses:["EXPIRED"],dateExpires:1640038417468};var StatusCellExpired=function(){return h("sqm-rewards-table-status-cell",{statusText:"Expired",reward:__assign(__assign({},rewardsData$1),expired)})};var pending={statuses:["PENDING"]};var us_tax={pendingReasons:["US_TAX"]};var scheduled={pendingReasons:["SCHEDULED"],dateScheduledFor:1640038417468};var unhandled={pendingReasons:["UNHANDLED_ERROR"]};var StatusCellPending=function(){return h("sqm-rewards-table-status-cell",{statusText:"Pending",reward:__assign(__assign({},rewardsData$1),pending)})};var StatusCellPendingWithLongText=function(){return h("div",{style:{width:"200px"}},h("sqm-rewards-table-status-cell",{statusText:"Pending for 300,000,000 months and some change",reward:__assign(__assign({},rewardsData$1),pending)}))};var StatusCellPendingUsTax=function(){return h("sqm-rewards-table-status-cell",{statusText:"Pending",reward:__assign(__assign(__assign({},rewardsData$1),pending),us_tax)})};var StatusCellPendingScheduled=function(){return h("sqm-rewards-table-status-cell",{statusText:"Pending",reward:__assign(__assign(__assign({},rewardsData$1),pending),scheduled)})};var StatusCellPendingUnhandled=function(){return h("sqm-rewards-table-status-cell",{statusText:"Pending",reward:__assign(__assign(__assign({},rewardsData$1),pending),unhandled)})};var StatusCellPendingReview=function(){return h("sqm-rewards-table-status-cell",{statusText:"Pending",reward:__assign(__assign({},rewardsData$1),{referral:{id:"123",dateConverted:1640038417173,dateReferralStarted:1640038417173,dateReferralPaid:1640038417173,dateModerated:1640038417173,dateReferralEnded:null,moderationStatus:null,rewards:null,referrerUser:null,referredUser:null,fraudData:{moderationStatus:"PENDING",autoModerationStatus:"PENDING",manualModerationStatus:"PENDING"}}})})};var StatusCellDenied=function(){return h("sqm-rewards-table-status-cell",{statusText:"Denied",reward:__assign(__assign({},rewardsData$1),{dateCancelled:1e4,referral:{id:"123",dateConverted:1640038417173,dateReferralStarted:1640038417173,dateReferralPaid:1640038417173,dateModerated:1640038417173,dateReferralEnded:null,moderationStatus:null,rewards:null,referrerUser:null,referredUser:null,fraudData:{moderationStatus:"DENIED",autoModerationStatus:"DENIED",manualModerationStatus:"DENIED"}}})})};var DateCell$1=function(){return h("sqm-rewards-table-date-cell",{date:1640038417468})};var CustomerNoteCell=function(){return h("sqm-rewards-table-customer-note-cell",{note:rewardsData$1.meta.message})};var EmptyCell$2=function(){return h("sqm-rewards-table-date-cell",null)};var RewardsTableCell=Object.freeze({__proto__:null,default:RewardsTableCell_stories,RewardsCellCreditSingle:RewardsCellCreditSingle,RewardsCellCreditFull:RewardsCellCreditFull,RewardsCellCreditPartial:RewardsCellCreditPartial,RewardsCellCreditCancelled:RewardsCellCreditCancelled,RewardsCellCreditExpired:RewardsCellCreditExpired,RewardsCellCreditPending:RewardsCellCreditPending,RewardsCellCreditRedeemed:RewardsCellCreditRedeemed,RewardsCellCreditLong:RewardsCellCreditLong,RewardsCellNonCredit:RewardsCellNonCredit,RewardsCellFueltank:RewardsCellFueltank,RewardsCellFueltankLong:RewardsCellFueltankLong,SourceCellManual:SourceCellManual,SourceCellProgram:SourceCellProgram,SourceCellExchange:SourceCellExchange,SourceCellReferral:SourceCellReferral,SourceCellWithLongText:SourceCellWithLongText,SourceCellReferred:SourceCellReferred,SourceCellAnonymousUser:SourceCellAnonymousUser,SourceCellDeletedUser:SourceCellDeletedUser,StatusCellAvailable:StatusCellAvailable,StatusCellAvailableExpiry:StatusCellAvailableExpiry,StatusCellRedeemed:StatusCellRedeemed,StatusCellCancelled:StatusCellCancelled,StatusCellExpired:StatusCellExpired,StatusCellPending:StatusCellPending,StatusCellPendingWithLongText:StatusCellPendingWithLongText,StatusCellPendingUsTax:StatusCellPendingUsTax,StatusCellPendingScheduled:StatusCellPendingScheduled,StatusCellPendingUnhandled:StatusCellPendingUnhandled,StatusCellPendingReview:StatusCellPendingReview,StatusCellDenied:StatusCellDenied,DateCell:DateCell$1,CustomerNoteCell:CustomerNoteCell,EmptyCell:EmptyCell$2});var scenario$s='@owner:sam\n@author:sam\nFeature: Rewards Table\n\n Shows a list of rewards as a table\n\n @motivating\n @ui\n Scenario: The empty state is shown if there are no rewards\n Given a user with rewards\n When they view the reward table\n Then no rewards are displayed\n And they see an image with a user icon\n And "View your rewards" in bold\n And "See all the rewards you have earned from referring friends and completing tasks" below the bolded text\n And the pagination buttons are disabled\n\n @minutia\n @ui\n Scenario: A custom empty state can be provided\n Given a user with no rewards\n And a custom empty state has been supplied in the "empty" slot\n When they view the reward table\n Then they see the custom empty state\n\n @minutia\n @ui\n Scenario: The loading state is shown while rewards are loading\n Given the table is loading\n Then the loading state is shown in the table\n And a custom loading state can be supplied in the "loading" slot\n And the pagination buttons are disabled\n\n @motivating\n @ui\n Scenario Outline: The table becomes paginated when the number of rewards exceeds the per page limit\n Given the user has <number of rewards>\n And the table is configured to show <page limit> rewards per page\n Then the table will have <number of pages> page(s)\n And pagination buttons will allow users to navigate between pages\n And the pagination button to go to the next page is disabled on the last page of rewards\n And the pagination button to go to the previous page is disabled on the first page of rewards\n Examples:\n | number of rewards | page limit | number of pages |\n | 0 | 4 | 1 |\n | 1 | 4 | 1 |\n | 3 | 4 | 1 |\n | 5 | 4 | 2 |\n | 42 | 4 | 11 |\n\n @motivating\n @ui\n Scenario: The table converts to a card view on tablet and mobile window sizes\n Given a user with rewards\n When they view the table\n And their window size is smaller than "799px"\n Then rewards are displayed as cards\n And they are in two columns\n When their window size is smaller than "599px"\n Then the rewards are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario: Table and Mobile beakpoints can be configured\n Given the reward table has been configured with the following props\n | prop | value |\n | smBreakpoint | 599 |\n | mdBreakpoint | 799 |\n And a user with rewards\n When they view the table\n And their window size is smaller than "799px"\n Then rewards are displayed as cards\n And they are in two columns\n When their window size is smaller than "599px"\n Then the rewards are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario Outline: By default the first column heading is hidden in mobile\n Given a reward table with 4 columns\n And prop "hidden-columns" with <hideColumnValue>\n And a user with rewards\n When they view the reward table\n And their window size is below the tablet breakpoint\n Then reward cards are displayed\n And the titles of <columnsArehidden> within the card\n Examples:\n | hideColumnValue | columnsArehidden |\n | | the first column |\n | 0,1,2 | the first, second and third columns |\n | 3 | the fourth column |\n\n @motivating\n Scenario: Only rewards which occured in the program specific by "program-id" are shown\n Given the table is configured with "program-id"\n Then only rewards from the program with "program-id" are shown\n\n @landmine\n Scenario: When a `classic` program Id is set then any reward without a programId is shown\n There is no easy way for the backend to filter for "classic" programs,\n thus we are filtering for rewards without programId\'s.\n\n Given the "program-id" of the table is set to "classic"\n Then rewards from classic programs are shown\n And manual rewards are shown\n\n @minutia\n @ui\n Scenario: Column heading can be hidden\n Given the table is configured with "hide-labels" set to "true"\n Then the table is displayed without column headings';var RewardsTable_stories={title:"Components/Rewards Table",parameters:{scenario:scenario$s}};var loadingElement$1=h("div",{slot:"loading",style:{display:"contents"}},h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))));var emptyElement$1=h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png","empty-state-header":"View your rewards","empty-state-text":"See all the rewards you have earned from referring friends and completing tasks"});var rewardsTableProps=function(e,t,n,a,r,s){if(t===void 0){t=false}if(n===void 0){n=false}if(a===void 0){a="Prev"}if(r===void 0){r="Next"}if(s===void 0){s=""}return{states:{hasPrev:false,hasNext:true,show:t?"empty":n?"loading":"rows",namespace:"sqm-rewards-table"},data:{textOverrides:{showLabels:true,prevLabel:a,moreLabel:r},hiddenColumns:s,mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Rewards","Status","Source","Date received"],rows:e,emptyElement:emptyElement$1,loadingElement:loadingElement$1}}};var r_available=[h(RewardsCellCreditFull,null),h(StatusCellAvailable,null),h(SourceCellReferral,null),h(DateCell$1,null)];var r_expired=[h(RewardsCellCreditPartial,null),h(StatusCellAvailableExpiry,null),h(SourceCellReferred,null),h(DateCell$1,null)];var r_cancelled=[h(RewardsCellCreditCancelled,null),h(StatusCellCancelled,null),h(SourceCellDeletedUser,null),h(DateCell$1,null)];var r_redeemed=[h(RewardsCellCreditRedeemed,null),h(StatusCellRedeemed,null),h(SourceCellManual,null),h(DateCell$1,null)];var r_denied=[h(RewardsCellCreditRedeemed,null),h(StatusCellDenied,null),h(SourceCellManual,null),h(DateCell$1,null)];var r_pending_review=[h(RewardsCellCreditRedeemed,null),h(StatusCellPendingReview,null),h(SourceCellManual,null),h(DateCell$1,null)];var r_long=[h(RewardsCellCreditLong,null),h(StatusCellAvailableExpiry,null),h(SourceCellReferred,null),h(DateCell$1,null)];var r_fueltank=[h(RewardsCellFueltank,null),h(StatusCellPending,null),h(SourceCellManual,null),h(DateCell$1,null)];var r_fueltank_long=[h(RewardsCellFueltankLong,null),h(StatusCellPendingUnhandled,null),h(SourceCellManual,null),h(DateCell$1,null)];var RewardsTable=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([r_available,r_redeemed,r_cancelled,r_expired,r_denied,r_pending_review])))};var RewardsTableSingle=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([r_fueltank])))};var RewardsTableLong=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([r_fueltank_long,r_long])))};var RewardsTableEmpty=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([],true)))};var RewardsTableLoading=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([],false,true)))};var CustomButtonTextTable$1=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([r_available,r_redeemed,r_cancelled,r_expired],false,false,"CUSTOM PREVIOUS TEXT","CUSTOM NEXT TEXT")))};var ColumnsMobileHidden$1=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([r_available,r_redeemed,r_cancelled,r_expired],false,false,undefined,undefined,"0,1,2,3")))};var RewardsTable$1=Object.freeze({__proto__:null,default:RewardsTable_stories,RewardsTable:RewardsTable,RewardsTableSingle:RewardsTableSingle,RewardsTableLong:RewardsTableLong,RewardsTableEmpty:RewardsTableEmpty,RewardsTableLoading:RewardsTableLoading,CustomButtonTextTable:CustomButtonTextTable$1,ColumnsMobileHidden:ColumnsMobileHidden$1});var UseReferralTable_stories={title:"Hooks / useReferralTable"};function setupGraphQL$c(){var e="testestest";var t=e;window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com"};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}function setupGraphQLKlip$1(e){var t=e.token,n=e.id;var a=n;window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com"};useEffect((function(){setUserIdentity({accountId:a,id:n,jwt:t});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:n,accountId:a}}var ReferralTable$1=createHookStory((function(){setupGraphQL$c();setProgramId("sam-partner-test-2");return h("sqm-referral-table",null,h("sqm-referral-table-user-column",null),h("sqm-referral-table-status-column",null),h("sqm-referral-table-date-column",null),h("sqm-referral-table-rewards-column",null))}));var ReferralTableDemoHook=createHookStory((function(){return h("sqm-referral-table",null,h("sqm-referral-table-user-column",null),h("sqm-referral-table-status-column",null),h("sqm-referral-table-date-column",null),h("sqm-referral-table-rewards-column",null))}));var ReferralTableDemoHookShowReferrer=createHookStory((function(){return h("sqm-referral-table",{"show-referrer":"true"},h("sqm-referral-table-user-column",null),h("sqm-referral-table-status-column",null),h("sqm-referral-table-date-column",null),h("sqm-referral-table-rewards-column",null))}));var ReferralTableEn=createHookStory((function(){setupGraphQLKlip$1({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbWVuZ2xpc2giLCJpZCI6InNhbWVuZ2xpc2gifX0._6OTVF3gcipu_ibgthUNr5UHwC-2E_lhCENI5HpYvcw",id:"samenglish"});setProgramId("klip-referral-program");return h("sqm-referral-table",{"per-page":"4"},h("sqm-referral-table-user-column",{"column-title":"User"}),h("sqm-referral-table-status-column",{"column-title":"Referral Status"}),h("sqm-referral-table-rewards-column",null),h("sqm-referral-table-date-column",{"column-title":"Date Referred","date-shown":"dateReferralStarted"}))}));var ReferralTableTr=createHookStory((function(){setupGraphQLKlip$1({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbXR1cmtleSIsImlkIjoic2FtdHVya2V5In19.usSMe0RWg8W5FtwcvJayvAlxTw6vMxjTyWXaP8jI8_U",id:"samturkey"});setProgramId("klip-referral-program");return h("sqm-referral-table",{"more-label":"Daha","prev-label":"Öncesi","empty-state-text":"Henüz Ödül Yok","per-page":"4"},h("sqm-referral-table-user-column",{"column-title":"Kullanıcılar","anonymous-user":"Anonim Kullanıcı","deleted-user":"Silinmiş Kullanıcı"}),h("sqm-referral-table-status-column",{"column-title":"Durumu","converted-status-text":"Dönüştür","in-progress-status-text":"Devam etmekte"}),h("sqm-referral-table-rewards-column",{"column-title":"Ödüller","status-text":"{status, select, AVAILABLE {Mevcut} CANCELLED {İptal edildi} PENDING {Bekliyor} EXPIRED {Süresi doldu} REDEEMED {Kullanıldı} other {Müsait değil} }","status-long-text":"{status, select, AVAILABLE {Ödül süresi doluyor} CANCELLED {Ödül iptal edildi} PENDING {üzerinde mevcut} EXPIRED {Ödülün süresi doldu} other {Müsait değil} }","reward-received-text":"Ödül şu tarihte alındı:"}),h("sqm-referral-table-date-column",{"column-title":"Tarih","date-shown":"dateReferralStarted"}))}));var ReferralTableFr=createHookStory((function(){setupGraphQLKlip$1({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbWZyZW5jaCIsImlkIjoic2FtZnJlbmNoIn19.cwhasHpfU5MLV4vGbCQcazb6p19iSw5pD2zyrVHgePg",id:"samfrench"});setProgramId("klip-referral-program");return h("sqm-referral-table",{"more-label":"Plus","prev-label":"Précédent","empty-state-text":"Aucune Référence Maintenant","per-page":"4"},h("sqm-referral-table-user-column",{"column-title":"Utilisateur","anonymous-user":"Utilisateur Anonyme","deleted-user":"Utilisateur Supprimé"}),h("sqm-referral-table-status-column",{"column-title":"Statut de Parrainage","converted-status-text":"Converti","in-progress-status-text":"En cours"}),h("sqm-referral-table-rewards-column",{"column-title":"Récompenses","status-text":"{status, select, AVAILABLE {Disponible} CANCELLED {Annulé} PENDING {En attente} EXPIRED {Expiré} REDEEMED {Racheté} other {Indisponible} }","status-long-text":"{status, select, AVAILABLE {Récompense expirant sur} CANCELLED {Récompense annulée sur} PENDING {Disponible sur} EXPIRED {Récompense expirée sur} other {Indisponible} }","reward-received-text":"Récompense reçue"}),h("sqm-referral-table-date-column",{"column-title":"Date de Référence","date-shown":"dateReferralStarted"}))}));var UseReferralTable=Object.freeze({__proto__:null,default:UseReferralTable_stories,ReferralTable:ReferralTable$1,ReferralTableDemoHook:ReferralTableDemoHook,ReferralTableDemoHookShowReferrer:ReferralTableDemoHookShowReferrer,ReferralTableEn:ReferralTableEn,ReferralTableTr:ReferralTableTr,ReferralTableFr:ReferralTableFr});var scenario$t='@author:kutay\n@owner:kutay\nFeature: Hero Image\n\n\tThe Hero Image component displays media images with a header, description and button using an overlay or a double column layout to offer an attrative widget page.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Hero Image component\n\n\t@motivating\n\t@ui\n\tScenario: Overlay image displays header, description, and button with brand color\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "overlay" |\n\t\tThen they see their image\n\t\tAnd the image has no padding\n\t\tAnd it has a brand colour overlay\n\t\tAnd "Klip Rewards" is displayed over top of the image in xxx-large font\n\t\tAnd below "Refer friends or complete tasks while using Klip to earn rewards" is displayed over top of the image in x-large font\n\t\tAnd below they see a brand coloured button with text "Start earning"\n\t\tAnd the text section has xxx-large padding\n\t\tWhen the component is scaled down to 599px\n\t\tThen the image is scaled to fit content\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay image crop can be aligned left, center or right\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "overlay" |\n\t\t\t| image-pos | <value> |\n\t\tThen the image with overlay is displayed\n\t\tWhen the component is scaled down to 599px\n\t\tThen the image is <alignment> to fit content\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| left | left aligned |\n\t\t\t| center | centered |\n\t\t\t| right | right aligned |\n\t\t\t| N/A | centered |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay padding is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "overlay" |\n\t\t\t| padding-text | <value> |\n\t\tThen the image with overlay is displayed\n\t\tAnd <padding> is applied around header, description and button\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay color and background is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "overlay" |\n\t\t\t| text-color | <textColor> |\n\t\t\t| overlay-color | <overlayColor> |\n\t\t\t| overlay-opacity | <overlayOpacity> |\n\t\tThen the image with overlay is displayed\n\t\tAnd the overlay is <overlayColor>\n\t\tAnd the overlay has <overlayOpacity>\n\t\tAnd the text is <textColor>\n\t\tExamples:\n\t\t\t| textColor | overlayColor | overlayOpacity |\n\t\t\t| #fffc4b | #ff7f7f | 0.9 |\n\t\t\t| #1d0314 | #4baa1a | 0 |\n\t\t\t| #211a27 | #aa481a | 1 |\n\n\t@motivating\n\t@ui\n\tScenario: Two-column layout displays an image on one side and on the other side a header, description, and button\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "columns" |\n\t\tThen the image is displayed on the left\n\t\tAnd the following elements are displayed on the right\n\t\t\t| elements |\n\t\t\t| header |\n\t\t\t| description |\n\t\t\t| button |\n\t\tWhen the component is scaled down to 599px\n\t\tThen the two-column layout switches to a row layout\n\t\tAnd the image is displayed on top\n\t\tAnd the content is displayed below\n\n\t@motivating\n\t@ui\n\tScenario Outline: Image position is configurable for desktop and mobile\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "columns" |\n\t\t\t| image-pos | <imagePos> |\n\t\t\t| image-mobile-pos | <imageMobilePos> |\n\t\tThen the image is displayed on the <imagePos>\n\t\tWhen the component is scaled down to 599px\n\t\tThen two-column layout switches to a row layout\n\t\tAnd image is displayed on the <imageMobilePos>\n\t\tExamples:\n\t\t\t| imagePos | imageMobilePos |\n\t\t\t| left | top |\n\t\t\t| right | bottom |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Padding is configurable for the image and text of two column layouts\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "columns" |\n\t\t\t| padding-text | <paddingText> |\n\t\t\t| padding-image | <paddingImage> |\n\t\tThen the two column layout is displayed\n\t\tAnd the image has padding <paddingImage>\n\t\tAnd the text has padding <paddingText>\n\t\tExamples:\n\t\t\t| paddingText | paddingImage |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| none | none |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Two-column layout image division percentage is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000248/squatch-assets/MVgOJn7.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "columns" |\n\t\t\t| image-percentage | <percent> |\n\t\tThen the two column layout is displayed\n\t\tAnd the image takes up <percent> of the two-column layout\n\t\tAnd the text elements take up the remainder of the space\n\t\tExamples:\n\t\t\t| percent |\n\t\t\t| 25% |\n\t\t\t| 42% |\n\t\t\t| 66% |\n\n\t@motivating\n\t@ui\n\tScenario: Two-column layout text and background color is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "columns" |\n\t\t\t| text-color | <textColor> |\n\t\t\t| background-color | <backgroundColor> |\n\t\tThen the two column layout is displayed\n\t\tAnd the text has color <textColor>\n\t\tAnd the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| textColor | backgroundColor |\n\t\t\t| #fffc4b | #ff7f7f |\n\t\t\t| #1d0314 | #4baa1a |\n\t\t\t| #211a27 | #aa481a |';var HeroImage_stories={title:"Components/Hero Image",parameters:{scenario:scenario$t}};var OverlayHeader=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var OverlayDescription=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var OverlayButton=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var OverlayPadding=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"overlay","padding-image":"none","padding-text":"xxx-small"})};var OverlayLong=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","button-text":"Start earning",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var OverlayLeft=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"overlay","image-pos":"left","padding-image":"none","padding-text":"xxxx-large"})};var OverlayCenter=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"overlay","image-pos":"center","padding-image":"none","padding-text":"xxxx-large"})};var OverlayRight=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"overlay","image-pos":"right","padding-image":"none","padding-text":"xxxx-large"})};var OverlayCustomColors=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning","text-color":"#fffc4b","overlay-color":"#ff7f7f","overlay-opacity":"0.9",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var OverlayCustomOpacity=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning","text-color":"#fffc4b","overlay-color":"#ff7f7f","overlay-opacity":"0.3",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var Columns=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"columns","padding-image":"none","padding-text":"xxxx-large"})};var ColumnsPadding=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"columns","padding-image":"xxxx-large","padding-text":"large"})};var ColumnsLong=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png",header:"Klip Rewards",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","button-text":"Start earning",layout:"columns","padding-image":"none","padding-text":"xxxx-large"})};var ColumnsReverse=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"columns",imagePos:"right",imageMobilePos:"bottom","padding-image":"none","padding-text":"xxxx-large"})};var ColumnsCustomPercentage=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000248/squatch-assets/MVgOJn7.png",description:"Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!",layout:"columns","image-percentage":"33%","padding-image":"large","padding-text":"large","background-color":"#EFF8FE"})};var ColumnsCustomColors=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"columns","text-color":"#fffc4b","background-color":"#ff7f7f","padding-image":"none","padding-text":"xxxx-large"})};var HeroImage=Object.freeze({__proto__:null,default:HeroImage_stories,OverlayHeader:OverlayHeader,OverlayDescription:OverlayDescription,OverlayButton:OverlayButton,OverlayPadding:OverlayPadding,OverlayLong:OverlayLong,OverlayLeft:OverlayLeft,OverlayCenter:OverlayCenter,OverlayRight:OverlayRight,OverlayCustomColors:OverlayCustomColors,OverlayCustomOpacity:OverlayCustomOpacity,Columns:Columns,ColumnsPadding:ColumnsPadding,ColumnsLong:ColumnsLong,ColumnsReverse:ColumnsReverse,ColumnsCustomPercentage:ColumnsCustomPercentage,ColumnsCustomColors:ColumnsCustomColors});var scenario$u='@author:kutay\n@owner:kutay\nFeature: Referral Card\n\n\tThe Referral Card component takes in two slots and displays them side by side.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Referral Card component\n\n\t@motivating\n\t@ui\n\tScenario: Referral Card component displays provided content in left and right slots side by side\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name "left"\n\t\tAnd a slot with the name "right"\n\t\tWhen the user views the referral card\n\t\tThen the slot contents are displayed the card with equal width\n\t\tWhen the component is scaled down to 499px\n\t\tThen the column layout switches to row layout\n\t\tAnd the "left" slot content is displayed above the "right" slot content\n\n\t@minutia\n\t@ui\n\tScenario: Left or right column content spans the whole card if there is no content in the other column\n\t\tGiven a Referral Card component\n\t\tAnd there content in one column\n\t\tAnd there is no content in the other column\n\t\tThen the column with content spans 100% of the card width\n\t\tAnd the column with content respects the container\'s padding\n\t\tAnd the column without content has zero width\n\n\t@motivating\n\t@ui\n\tScenario Outline: Referral Card component content can be vertically aligned start, center, end\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name "left"\n\t\tAnd a slot with the name "right"\n\t\tAnd the prop "vertical-alignment" has <value>\n\t\tThen slots contents are displayed inside the card\n\t\tAnd slots are vertically aligned to <alignment> of the card\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| start | the top |\n\t\t\t| center | the center |\n\t\t\t| end | the bottom |\n\t\t\t| N/A | the top |\n\n\t@ui\n\tScenario Outline: Container border can be toggled\n\t\tGiven a user is viewing the referral card component\n\t\tThen the default value for the prop "include-border" is "true"\n\t\tWhen "include-border" has <value>\n\t\tThen the referral card component\'s border <maybe> included\n\t\tExamples:\n\t\t\t| value | maybe |\n\t\t\t| true | is |\n\t\t\t| false | isn\'t |\n\t\t\t| empty (no value) | is |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Component background color can be customized\n\t\tGiven a user is viewing the Referral Card component\n\t\tThen the default value is "#ffffff"\n\t\tWhen the prop "background-color" has <value>\n\t\tThen the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| value | backgroundColor |\n\t\t\t| empty (default value) | var(--sl-color-neutral-0) (#ffffff) |\n\t\t\t| aquamarine | #7fffd4 |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Container padding can be customized\n\t\tGiven a user is looking at the component\n\t\tThen the default values for "padding-top", "padding-bottom", "padding-left", "padding-right" is "large"\n\t\tWhen prop "padding-top" has <value>\n\t\tThen <padding> is applied to content\n\t\tAnd the same applies to "padding-bottom", "padding-left", "padding-right"\n\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |';var ReferralCard_stories={title:"Components/Referral Card",parameters:{scenario:scenario$u}};var media=function(e){return h("sqm-portal-container",{gap:"large",slot:e},h("sqm-hero-image",{header:"Get rewarded when your friend uses Klip","image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000227/squatch-assets/IqB7GeS.png"}))};var sharebutton=function(e){return h("sqm-portal-container",{gap:"large",slot:e},h("sqm-text",null,"Choose how you want to share:"),h("sqm-text",null,h("sub",null,"Your unique referral link:"),h("sqm-share-code",null)),h("sqm-portal-container",{gap:"x-small"},h("sqm-share-button",{medium:"email"},"Share via email"),h("sqm-share-button",{medium:"facebook"},"Share on Facebook"),h("sqm-share-button",{medium:"twitter"},"Tweet about us")))};var timeline=function(e,t){return h("sqm-timeline",{slot:e,icon:"circle"},t>0&&h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),t>1&&h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"}),t>2&&h("sqm-timeline-entry",{reward:"$200",unit:"visa giftcard",desc:"Your friend qualifies as a good fit for Klip Team"}),t>3&&h("sqm-timeline-entry",{reward:"$1000",unit:"visa giftcard",desc:"Your friend purchases Klip Team"}))};var ImageAndShareButtons=function(){return h("sqm-referral-card",null,media("left"),sharebutton("right"))};var LimitWidth=function(){return h("sqm-referral-card",{limitWidth:true},media("left"),sharebutton("right"))};var TimelineAndShareButtons=function(){return h("sqm-referral-card",null,timeline("left",3),sharebutton("right"))};var StartAlignment=function(){return h("sqm-referral-card",{"vertical-alignment":"start"},timeline("left",4),sharebutton("right"))};var CenterAlignment=function(){return h("sqm-referral-card",{"vertical-alignment":"center"},timeline("left",4),sharebutton("right"))};var EndAlignment=function(){return h("sqm-referral-card",{"vertical-alignment":"end"},timeline("left",4),sharebutton("right"))};var FlippedSlots=function(){return h("sqm-referral-card",null,timeline("right",3),sharebutton("left"))};var NoLeft=function(){return h("sqm-referral-card",null,timeline("right",3))};var NoRight=function(){return h("sqm-referral-card",null,sharebutton("left"))};var WithHeader=function(){return h("sqm-referral-card",null,h("h3",{slot:"header"},"Header slot content"),timeline("right",3),sharebutton("left"))};var WithFooter=function(){return h("sqm-referral-card",null,timeline("right",3),sharebutton("left"),h("sqm-portal-footer",{slot:"footer"}))};var NoBorder=function(){return h("sqm-referral-card",{"hide-border":"true"},timeline("right",3),sharebutton("left"),h("sqm-portal-footer",{slot:"footer"}))};var BackgroundColor$1=function(){return h("sqm-referral-card",{"background-color":"aquamarine"},timeline("right",3),sharebutton("left"),h("sqm-portal-footer",{slot:"footer"}))};var ReferralCardGeneric=function(){return h("sqm-referral-card",{"vertical-alignment":"center"},h("sqm-portal-container",{slot:"left",gap:"x-small"},h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",color:"#333",textAlign:"center"}},"PLACEHOLDER")),h("sqm-portal-container",{slot:"right",gap:"x-small"},h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",color:"#333",textAlign:"center"}},"PLACEHOLDER")))};var ReferralCard=Object.freeze({__proto__:null,default:ReferralCard_stories,ImageAndShareButtons:ImageAndShareButtons,LimitWidth:LimitWidth,TimelineAndShareButtons:TimelineAndShareButtons,StartAlignment:StartAlignment,CenterAlignment:CenterAlignment,EndAlignment:EndAlignment,FlippedSlots:FlippedSlots,NoLeft:NoLeft,NoRight:NoRight,WithHeader:WithHeader,WithFooter:WithFooter,NoBorder:NoBorder,BackgroundColor:BackgroundColor$1,ReferralCardGeneric:ReferralCardGeneric});var scenarioTimeline='@author:derek\n@owner:kutay\nFeature: Timeline\n\n @motivating\n @ui\n Scenario: The timeline adds lines between timeline entries\n Given a timeline\n And it has many timeline entries as children\n When a user views the timeline\n Then they see all timeline entries are connected by brand colour lines\n And see that the last entry does not have a line\n\n @motivating\n @ui\n Scenario Outline: The timeline can set the icons used by its timeline entries\n Given a timeline with "icon" <iconPropValue>\n And it has many timeline entries as children\n When a user views the timeline\n Then they see the timeline entries have a <icon>\n Examples:\n | iconPropValue | icon |\n | gift | gift icon |\n | gift | gift icon |\n | circle | brand colour circle |\n';var scenarioTimelineEntry='@author:derek\n@owner:kutay\nFeature: Timeline Entry\n\n @motivating\n @ui\n Scenario: Timeline entries have an icon, a reward and an entry desciption\n Given an timeline entry with the following props\n | prop | value |\n | unit | Visa Giftcard |\n | reward | 50$ |\n | desc | Earn a 50$ Visa Giftcard for each referral you make |\n When a user views the entry\n Then they see a gift icon\n And see "$50 VISA GIFTCARRD" to the right\n And "$50" is bolded with x-large font size\n And below they see "Earn a 50$ Visa Giftcard for each referral you make"\n\n @motivating\n @ui\n Scenario Outline: Icon can either be a gift or a brand colour cirle\n Given a timeline entry with "icon" <iconPropValue>\n When a user views the entry\n Then they see an <icon>\n Examples:\n | iconPropValue 1 | icon |\n | gift | gift |\n | circle | brand colour circle |\n | | gift |\n\n @motivating\n @ui\n Scenario: A timeline entry can display a line to connect it to another entry\n Given a timeline entry with "line" "true"\n When a user views the entry\n Then they see the entry\n But it has a brand colour line connecting it to the next timeline entry\n';var scenario$v=scenarioTimeline+scenarioTimelineEntry;var Timeline_stories={title:"Components/Timeline",parameters:{scenario:scenario$v}};var TimelineWith1Reward=function(){return h("div",null,h("sqm-timeline",null,h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"})),h("br",null)," ",h("hr",null)," ",h("br",null),h("sqm-timeline",{icon:"circle"},h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"})))};var TimelineWith2Rewards=function(){return h("div",null,h("sqm-timeline",null,h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"})),h("br",null)," ",h("hr",null)," ",h("br",null),h("sqm-timeline",{icon:"circle"},h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"})))};var TimelineWith3Rewards=function(){return h("div",null,h("sqm-timeline",null,h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"}),h("sqm-timeline-entry",{reward:"$200",unit:"visa giftcard",desc:"Your friend qualifies as a good fit for Klip Team"})),h("br",null)," ",h("hr",null)," ",h("br",null),h("sqm-timeline",{icon:"circle"},h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"}),h("sqm-timeline-entry",{reward:"$200",unit:"visa giftcard",desc:"Your friend qualifies as a good fit for Klip Team"})))};var TimelineWith4Rewards=function(){return h("div",null,h("sqm-timeline",null,h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"}),h("sqm-timeline-entry",{reward:"$200",unit:"visa giftcard",desc:"Your friend qualifies as a good fit for Klip Team"}),h("sqm-timeline-entry",{reward:"$1000",unit:"visa giftcard",desc:"Your friend purchases Klip Team"})),h("br",null)," ",h("hr",null)," ",h("br",null),h("sqm-timeline",{icon:"circle"},h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"}),h("sqm-timeline-entry",{reward:"$200",unit:"visa giftcard",desc:"Your friend qualifies as a good fit for Klip Team"}),h("sqm-timeline-entry",{reward:"$1000",unit:"visa giftcard",desc:"Your friend purchases Klip Team"})))};var Timeline=Object.freeze({__proto__:null,default:Timeline_stories,TimelineWith1Reward:TimelineWith1Reward,TimelineWith2Rewards:TimelineWith2Rewards,TimelineWith3Rewards:TimelineWith3Rewards,TimelineWith4Rewards:TimelineWith4Rewards});var scenario$w='@author:kutay\n@owner:kutay\nFeature: Image\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the image component\n\n\t@motivating\n\t@ui\n\tScenario: Image is displayed from URL\n\t\tGiven an Image component\n\t\tAnd prop "image-url" is provided with a valid image url\n\t\tThen the image is displayed\n\t\tAnd it is centered\n\n\t@motivating\n\t@ui\n\tScenario Outline: Images can be aligned left, center or right\n\t\tGiven an Image component\n\t\tAnd prop "image-url" is provided with a valid image url\n\t\tAnd prop "align" has <value>\n\t\tThen the image is displayed\n\t\tAnd it is aligned to the <value>\n\t\tExamples:\n\t\t\t| value |\n\t\t\t| left |\n\t\t\t| center |\n\t\t\t| right |\n\n\t@motivating\n\t@ui\n\tScenario: Image background can be assigned a color\n\t\tGiven an Image component\n\t\tAnd prop "image-url" is provided with a valid image url\n\t\tAnd prop "background-color" is provided a color\n\t\tThen the image is displayed\n\t\tAnd the background is the provided color\n\n\t@motivating\n\t@ui\n\tScenario: Image minimum height can be constrained\n\t\tGiven an Image component\n\t\tAnd prop "image-url" is provided\n\t\tAnd prop "min-height" is given a minimum value\n\t\tThen the image is displayed\n\t\tAnd the container size changes\n\t\tThen the image does not shrink below its minimum height';var Image_stories={title:"Components/Image",parameters:{scenario:scenario$w}};var Image=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000259/squatch-assets/tn47wOj.png"})};var ImageAlignmentLeft=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000259/squatch-assets/tn47wOj.png",alignment:"left"})};var ImageAlignmentCenter=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000259/squatch-assets/tn47wOj.png",alignment:"center"})};var ImageAlignmentRight=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000259/squatch-assets/tn47wOj.png",alignment:"right"})};var ImageBackground=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000259/squatch-assets/tn47wOj.png","background-color":"firebrick",alignment:"center"})};var MinimumHeight=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000255/squatch-assets/oIiVdMM.jpg",minHeight:"192px"})};var Image$1=Object.freeze({__proto__:null,default:Image_stories,Image:Image,ImageAlignmentLeft:ImageAlignmentLeft,ImageAlignmentCenter:ImageAlignmentCenter,ImageAlignmentRight:ImageAlignmentRight,ImageBackground:ImageBackground,MinimumHeight:MinimumHeight});var scenario$x='@author:derek\n@owner:noah\nFeature: Titled Section\n\n Background: The titled section has a label and content\n Given a titled section\n And it has a label\n And it has content in the content slot\n\n @motivating\n @ui\n Scenario: Text alignment defaults to left align but can be configured\n Given the titled section has "text-align" <textAlignPropValue>\n When a user views the titled section\n Then the text in the label is <aligned>\n And the text in the content is <aligned>\n Examples:\n | textAlignPropValue | aligned |\n | center | center |\n | left | left |\n | right | right |\n | | left |\n\n @minutia\n @ui\n Scenario: Label margin is configurable\n Given the titled section has "label-margin" <marginPropValue>\n When a user views the titled section\n Then <marginPropValue> margin is between the label and content\n Examples:\n | marginPropValue | margin |\n | none | no |\n | xxx-small | xxx-small |\n | xx-small | xx-small |\n | x-small | x-small |\n | small | small |\n | medium | medium |\n | large | large |\n | x-large | x-large |\n | xx-large | xx-large |\n | xxx-large | xxx-large |\n | xxxx-large | xxxx-large |\n | | no |\n\n @minutia\n @ui\n Scenario Outline: Titled section padding is configurable\n Given the titled section has "padding" <paddingPropValue>\n When a user views the titled section\n Then <paddingPropValue> padding is applied around the titled section\n Examples:\n | paddingPropValue | padding |\n | none | no |\n | xxx-small | xxx-small |\n | xx-small | xx-small |\n | x-small | x-small |\n | small | small |\n | medium | medium |\n | large | large |\n | x-large | x-large |\n | xx-large | xx-large |\n | xxx-large | xxx-large |\n | xxxx-large | xxxx-large |\n | | no |';var TitledSection_stories={title:"Components/Titled Section",parameters:{scenario:scenario$x}};var AlignLeft=function(){return h("sqm-titled-section",{"text-align":"left"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America")))};var AlignCenter=function(){return h("sqm-titled-section",{"text-align":"center"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America")))};var AlignRight=function(){return h("sqm-titled-section",{"text-align":"right"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America")))};var Padding=function(){return h("div",null,h("h3",null,"None"),h("sqm-titled-section",{padding:"none"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxx-small"),h("sqm-titled-section",{padding:"xxx-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xx-small"),h("sqm-titled-section",{padding:"xx-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"x-small"),h("sqm-titled-section",{padding:"x-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"small"),h("sqm-titled-section",{padding:"small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"medium"),h("sqm-titled-section",{padding:"medium"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"large"),h("sqm-titled-section",{padding:"large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"x-large"),h("sqm-titled-section",{padding:"x-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xx-large"),h("sqm-titled-section",{padding:"xx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxx-large"),h("sqm-titled-section",{padding:"xxx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxxx-large"),h("sqm-titled-section",{padding:"xxxx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))))};var LabelMargin=function(){return h("div",null,h("h3",null,"None"),h("sqm-titled-section",{"label-margin":"none"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxx-small"),h("sqm-titled-section",{"label-margin":"xxx-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xx-small"),h("sqm-titled-section",{"label-margin":"xx-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"x-small"),h("sqm-titled-section",{"label-margin":"x-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"small"),h("sqm-titled-section",{"label-margin":"small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"medium"),h("sqm-titled-section",{"label-margin":"medium"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"large"),h("sqm-titled-section",{"label-margin":"large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"x-large"),h("sqm-titled-section",{"label-margin":"x-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xx-large"),h("sqm-titled-section",{"label-margin":"xx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxx-large"),h("sqm-titled-section",{"label-margin":"xxx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxxx-large"),h("sqm-titled-section",{"label-margin":"xxxx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))))};var TitledSection=Object.freeze({__proto__:null,default:TitledSection_stories,AlignLeft:AlignLeft,AlignCenter:AlignCenter,AlignRight:AlignRight,Padding:Padding,LabelMargin:LabelMargin});var Scroll_stories={title:"Components/Scroll"};var ScrollTag=function(){return h("div",{style:{position:"relative",height:"2000px"}},h("sqm-scroll",{"scroll-tag-name":"sqm-text","button-text":"Scroll","scroll-animation":"smooth"}),h("div",{style:{position:"absolute",bottom:"0"}},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))))};var ScrollId=function(){return h("div",{style:{position:"relative",height:"2000px"}},h("sqm-scroll",{"button-text":"Scroll","scroll-id":"my-id","scroll-animation":"smooth"}),h("div",{style:{position:"absolute",bottom:"0"}},h("sqm-text",{slot:"label",id:"my-id"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))))};var ScrollAutoAnimation=function(){return h("div",{style:{position:"relative",height:"2000px"}},h("sqm-scroll",{"button-text":"Scroll","scroll-id":"my-id","scroll-animation":"auto"}),h("div",{style:{position:"absolute",bottom:"0"}},h("sqm-text",{slot:"label",id:"my-id"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))))};var ScrollTabGroup=function(){return h("div",{style:{position:"relative",height:"2000px"}},h("sqm-scroll",{"button-text":"Redeem rewards","scroll-id":"tab-3","scroll-animation":"smooth"}),h("div",{style:{position:"absolute",bottom:"0"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history"\n >\n <sqm-referral-table></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs>\n '}))};var ScrollTabGroupInner=function(){return h("div",{style:{position:"relative",height:"2000px"}},h("sqm-scroll",{"button-text":"Redeem rewards","scroll-tag-name":"sqm-reward-exchange-list"}),h("div",{style:{position:"absolute",bottom:"0"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history"\n >\n <sqm-referral-table></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs>\n '}))};var ShoelaceProps=function(){return h("div",null,h("div",{style:{display:"flex",gap:"60px"}},h("div",{style:{textAlign:"center"}},h("h3",null,"Type:"),h("sqm-scroll",{"button-type":"primary"},"Primary"),h("br",null),h("sqm-scroll",{"button-type":"success"},"Success"),h("br",null),h("sqm-scroll",{"button-type":"neutral"},"Neutral"),h("br",null),h("sqm-scroll",{"button-type":"warning"},"Warning"),h("br",null),h("sqm-scroll",{"button-type":"danger"},"Danger")),h("div",{style:{textAlign:"center"}},h("h3",null,"Outline:"),h("sqm-scroll",{outline:true,"button-type":"primary"},"Primary"),h("br",null),h("sqm-scroll",{outline:true,"button-type":"success"},"Success"),h("br",null),h("sqm-scroll",{outline:true,"button-type":"neutral"},"Neutral"),h("br",null),h("sqm-scroll",{outline:true,"button-type":"warning"},"Warning"),h("br",null),h("sqm-scroll",{outline:true,"button-type":"danger"},"Danger"))),h("br",null)," ",h("hr",null),h("h3",null,"Text:"),h("sqm-scroll",{"button-type":"text"},"Text"),h("br",null)," ",h("hr",null),h("h3",null,"Size:"),h("sqm-scroll",{size:"small"},"Small"),h("br",null),h("sqm-scroll",{size:"medium"},"Medium"),h("br",null),h("sqm-scroll",{size:"large"},"Large"),h("br",null)," ",h("hr",null),h("h3",null,"Pill:"),h("sqm-scroll",{pill:true},"Button"),h("br",null)," ",h("hr",null),h("h3",null,"Icon:"),h("sqm-scroll",{"button-type":"primary",iconName:"facebook"},"Icon Name"),h("br",null),h("sqm-scroll",{iconName:"gear",iconSlot:"prefix"},"Icon Slot Prefix"),h("br",null),h("sqm-scroll",{iconName:"gear",iconSlot:"suffix"},"Icon Slot Suffix"),h("br",null)," ",h("hr",null),h("h3",null,"Circle:"),h("sqm-scroll",{circle:true},"X"),h("br",null)," ",h("hr",null),h("h3",null,"Mobile Friendly:"),h("sqm-scroll",{mobile:true},"Button"),h("br",null)," ",h("hr",null))};var Scroll=Object.freeze({__proto__:null,default:Scroll_stories,ScrollTag:ScrollTag,ScrollId:ScrollId,ScrollAutoAnimation:ScrollAutoAnimation,ScrollTabGroup:ScrollTabGroup,ScrollTabGroupInner:ScrollTabGroupInner,ShoelaceProps:ShoelaceProps});var scenario$y='@author:Zach\n@owner:Zach\nFeature: Tabs\n\n The Tabs takes in the Tab component as children and maps through to display their header and content.\n\n Background: A user on the portal is viewing the widget\n Given a user viewing the Tabs component\n\n @motivating\n Scenario: Content inside the active tab is shown\n Given the header is set to <tabHeader>\n And the content inside is <tabContent>\n And the user has clicked <tabHeader>\n Then the <tabContent> is shown\n Examples:\n | tabHeader | tabContent |\n | Settings | This is the settings tab |\n | General | This is the general tab |\n | History | This is the history tab |\n\n @motivating\n @ui\n Scenario: The placement of the tabs is configurable\n Given The placement prop has been passed a valid <placement>\n Then tabs are placed on the <placementResult>\n Examples:\n | placement | placementResult |\n | | top of the content |\n | left | left hand side of the content |\n | right | right hand side of the content |\n | bottom | bottom of the content |\n\n\n @minutia\n @ui\n Scenario Outline: Tabs are setup to use the brand color\n Given the brand color is set to darkblue\n Then the text inside the active tab is darkblue\n And the underline of the active tab is darkblue\n\n @ui\n Scenario: Tabs are responsive\n Given the user is on a mobile device\n When there are more tabs than the horizontal space allows for\n Then clickable arrows appear on the left and right of the tabs\n And the tabs are scrollable\n\n @landmine\n Scenario: Program section cannot be used inside of tabs\n Given a tabs component\n And tab containing a program section with program-id "test123"\n And the program section wraps a component using program context\n When the tabs component is rendered\n Then the "sq:program-id" event listener for the program section is removed\n And the component does not use program-id "test123" to source its data\n And falls back to the global program id';var Tabs_stories={title:"Components/Tabs",parameters:{scenario:scenario$y}};var SimpleTabs=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="General">This is the general tab</sqm-tab>\n <sqm-tab header="Custom">This is the custom tab</sqm-tab>\n <sqm-tab header="Advanced">This is the advanced tab</sqm-tab>\n </sqm-tabs>\n '})};var ManyTabs=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="General">This is the general tab</sqm-tab>\n <sqm-tab header="Custom">This is the custom tab</sqm-tab>\n <sqm-tab header="Advanced">This is the advanced tab</sqm-tab> \n <sqm-tab header="General">This is the general tab</sqm-tab>\n <sqm-tab header="Custom">This is the custom tab</sqm-tab>\n <sqm-tab header="Advanced">This is the advanced tab</sqm-tab>\n <sqm-tab header="General">This is the general tab</sqm-tab>\n <sqm-tab header="Custom">This is the custom tab</sqm-tab>\n <sqm-tab header="Advanced">This is the advanced tab</sqm-tab>\n <sqm-tab header="General">This is the general tab</sqm-tab>\n <sqm-tab header="Custom">This is the custom tab</sqm-tab>\n <sqm-tab header="Advanced">This is the advanced tab</sqm-tab>\n </sqm-tabs>\n '})};var SingleTab=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs>\n '})};var ReferralProgram=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="Leaderboard">\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history">\n <sqm-referral-table>\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty\n ></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n ><sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty\n ></sqm-rewards-table>\n </sqm-tab>\n </sqm-tabs> \n '})};var LoyaltyProgram=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs placement="top">\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history">\n <sqm-referral-table>\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty\n ></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n ><sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty\n ></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs> \n '})};var BottomTabs=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs placement="bottom">\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history">\n <sqm-referral-table\n ><sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty\n ></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n ><sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty\n ></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs> \n '})};var LeftTabs=function(){return h("div",{style:{maxWidth:"900px",margin:"auto"},innerHTML:'\n <sqm-tabs placement="left">\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history">\n <sqm-referral-table\n ><sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty\n ></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n ><sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty\n ></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs> \n '})};var RightTabs=function(){return h("div",{style:{maxWidth:"900px",margin:"auto"},innerHTML:'\n <sqm-tabs placement="right">\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history">\n <sqm-referral-table\n ><sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty\n ></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n ><sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty\n ></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs> \n '})};var Tabs=Object.freeze({__proto__:null,default:Tabs_stories,SimpleTabs:SimpleTabs,ManyTabs:ManyTabs,SingleTab:SingleTab,ReferralProgram:ReferralProgram,LoyaltyProgram:LoyaltyProgram,BottomTabs:BottomTabs,LeftTabs:LeftTabs,RightTabs:RightTabs});var scenario$z='@author:johan\n@owner:johan\nFeature: Share Code\n\n The share code component is a box that allows users to see and copy their referral code for a given program\n\n Background: Environment\n Given there is a valid program ID in the environment\n And there is a valid user ID and account ID in the environment\n\n @motivating\n Scenario: A Users referral code can be copied to their clipboard\n Given tooltiptext is "hello tooltip"\n When the component renders\n Then there is a textbox with the user\'s share code\n When the clipboard icon is clicked\n Then the code is copied to clipboard\n And a tooltip will appear for ~1 second\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip\'s lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip will appear for ~2 seconds\n\n @minutia\n Scenario: Demo\n Given isDemo() returns true\n Then the share code is "SHARECODE001"\n And the component won\'t be interactive\n And the tooltip is hidden\n\n @minutia\n Scenario: Program ID can be sourced from prop\n Given the programId prop is set to "program-a"\n And window.widgetIdent.programId is set to "program-b"\n When the component renders\n Then the share code is for "program-a"\n\n @minutia\n Scenario: Program ID can be sourced from window\n Given the programId prop is unset\n And window.widgetIdent.programId is set to "program-b"\n When the component renders\n Then the share code is for "program-b"\n\n @minutia\n Scenario: An analytic event is fired when a user copies their code\n Given a user viewing the share code component\n And the component is rendered for "program-a"\n When they click to copy their code\n Then an "USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT" analytic event is fired\n And it is for "program-a"\n And it has share medium "DIRECT"\n\n\n @ui\n Scenario Outline: user can edit the alignment of the share code text\n Given a user is editing the share code component\n Then they see "Align text" props\n And the default value is "left"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the share code component\n Then they see "Style" props\n And the default value is "icon"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n';var ShareCode_stories={title:"Components/Share Code",parameters:{scenario:scenario$z}};var ShareCode=function(){return h("sqm-share-code",{tooltiptext:"Copied to Clipboard"})};var CustomTooltipText=function(){return h("sqm-share-code",{tooltiptext:"CUSTOM TOOLTIP TEXT"})};var TextAlignCenter$1=function(){return h("sqm-share-code",{textAlign:"center"})};var TextAlignRight$1=function(){return h("sqm-share-code",{textAlign:"right"})};var CustomTooltipDuration=function(){return h("sqm-share-code",{tooltiplifespan:5e3,tooltiptext:"CUSTOM TOOLTIP TEXT"})};var CopyButton$1=function(){return h(CopyTextView,Object.assign({},{copyString:"https://noah.example.com",open:false,tooltiptext:"Copied!",isCopyIcon:false}))};var CopyButtonBelow$1=function(){return h(CopyTextView,Object.assign({},{copyString:"https://noah.example.com",open:false,tooltiptext:"Copied!",buttonStyle:"button-below"}))};var Error$7=function(){var e={copyString:"https://noah.example.com",disabled:true,open:true,tooltiptext:"Copied!",error:true};return h(CopyTextView,Object.assign({},e))};var ShareCode$1=Object.freeze({__proto__:null,default:ShareCode_stories,ShareCode:ShareCode,CustomTooltipText:CustomTooltipText,TextAlignCenter:TextAlignCenter$1,TextAlignRight:TextAlignRight$1,CustomTooltipDuration:CustomTooltipDuration,CopyButton:CopyButton$1,CopyButtonBelow:CopyButtonBelow$1,Error:Error$7});var EmailRegistration_stories={title:"Components/Email Registration",parameters:{}};var defaultProps$d={states:{error:"",loading:false},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{invalidEmailErrorMessage:"Must be a valid email address",requiredFieldErrorMessage:"Cannot be empty",paddingTop:"large",paddingRight:"large",paddingBottom:"large",paddingLeft:"large",fraudErrorMessage:"Our team will review this referral. If approved, you and your friend will receive your rewards. Need help? Reach out to our Support team.",fraudErrorMessageTitle:"Looks like you tried referring yourself"}};var Default$e=function(){return h(EmailRegistrationView,Object.assign({},defaultProps$d))};var HasFirstNameLastName=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{content:__assign(__assign({},defaultProps$d.content),{includeName:true})})))};var WithSlots=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{content:__assign(__assign({},defaultProps$d.content),{topSlot:h("div",null,"Hello this is the top slot"),bottomSlot:h("div",null,"Hello this is the bottom slot")})})))};var NoBorder$1=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{content:__assign(__assign({},defaultProps$d.content),{hideBorder:true})})))};var BackgroundColor$2=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{content:__assign(__assign({},defaultProps$d.content),{backgroundColor:"aquamarine"})})))};var Loading$4=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{states:{error:"",loading:true}})))};var Error$8=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{states:{error:"Something went wrong. Please try again.",loading:false}})))};var FraudError=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{states:{error:"FRAUD",loading:false}})))};var EmptyEmailError=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{states:{error:"Something went wrong. Please try again.",loading:false,registrationFormState:{validationErrors:{email:"Email cannot be empty"}}}})))};var EmailRegistration=Object.freeze({__proto__:null,default:EmailRegistration_stories,Default:Default$e,HasFirstNameLastName:HasFirstNameLastName,WithSlots:WithSlots,NoBorder:NoBorder$1,BackgroundColor:BackgroundColor$2,Loading:Loading$4,Error:Error$8,FraudError:FraudError,EmptyEmailError:EmptyEmailError});var scenario$A='@author:truman\n@owner:truman\nFeature: Coupon Code\n\n The coupon code component is a box that allows users to see and copy their coupon code for a given program\n\n @motivating\n Scenario: Component only fetches codes from current program\n Given a user has multiple rewards from various programs\n When the component is loaded\n Then it fetches the user\'s rewards from only the program associated with the widget\n\n @motivating\n Scenario: Component only looks at fueltank rewards\n Given a user has multiple rewards of different types\n When the component is loaded\n Then it filters the user\'s reward to only return FUELTANK rewards\n\n\n @motivating\n Scenario: The first (i.e. most recently received) reward is the reward that is displayed\n Given a user has at least one fueltank reward\n And the fueltank reward is available\n Then the coupon code component shows the first reward returned\n And this reward is the most recently received reward by the user\n\n @motivating\n Scenario Outline: Coupon code has multiple states depending on reward status\n Given a user has at least one fueltank reward\n And the reward has most recent status <status>\n And the dateScheduledFor field is <dateScheduledFor>\n Then the component\'s status is set to <componentStatus>\n And the <errorMessageTextProp> is displayed under the input field\n\n Examples:\n | status | dateScheduledFor | componentStatus | errorMessageTextProp |\n | AVAILABLE | null | AVAILABLE | N/A |\n | EXPIRED | null | EXPIRED | expiredErrorMessage |\n | REDEEMED | null | REDEEMED | redeemedMessage |\n | CANCELLED | null | CANCELLED | cancelledErrorMessage |\n | PENDING | null | EMPTY_TANK | fullfillmentErrorMessage |\n | PENDING | 123412341234 | PENDING | pendingErrorMessage |\n | null | null | ERROR | genericErrorMessage |\n\n Scenario Outline: Coupon code\'s error message text props are grouped\n Given an end user is viewing the coupon code component in the widget editor\n And they are looking at the component\'s properties\n Then they see <prop>\n And <prop> is grouped under "Coupon code error"\n Examples:\n | prop |\n | N/A |\n | expiredErrorMessage |\n | redeemedMessage |\n | cancelledErrorMessage |\n | fullfillmentErrorMessage |\n | pendingErrorMessage |\n | genericErrorMessage |\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip\'s lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip appears for ~2 seconds\n\n @ui\n Scenario: Component shows an error state when there is an error\n Given a user is viewing the coupon code component\n When there is an error in the coupon code\n Then in place of the coupon code is an alert banner\n And the alert banner gives information about the error to the user\n\n @ui\n Scenario: Component shows an loading state\n Given a user is viewing the coupon code component\n When the coupon code is loading in\n Then the text inside the input is "Loading..."\n And the coupon code input box has a gray background\n And the cursor is set to "default"\n And the user cannot copy the text\n\n @ui\n Scenario Outline: User can edit the alignment of the coupon code text\n Given a user is editing the coupon code component\n Then they see "Align text" props\n And the default value is "left"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the coupon code component\n Then they see "Style" props\n And the default value is "icon"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n\n @minutia\n Scenario: ICU string converts to a date\n Given a user is viewing a live coupon code code component\n And the "pendingErrorText" has the "{unpendDate}" ICU string\n And the program is configured for rewards to be pending\n Then the user will see an info alert banner\n And the ICU string is converted to the unpend date\n';var CouponCode_stories={title:"Components/Coupon Code",parameters:{scenario:scenario$A}};var defaultProps$e={tooltiptext:"Copied to Clipboard",copyString:"THANKSJANE125uv125",open:false,copyButtonLabel:"Copy Coupon",inputPlaceholderText:"CODE ERROR",couponCodeLabel:"Your coupon code:",error:false};var CouponCode=function(){return h("sqm-coupon-code",{tooltiptext:"Copied to Clipboard"})};var CustomTooltipText$1=function(){return h("sqm-coupon-code",{tooltiptext:"CUSTOM TOOLTIP TEXT"})};var CustomTooltipDuration$1=function(){return h("sqm-coupon-code",{tooltiplifespan:5e3,tooltiptext:"CUSTOM TOOLTIP TEXT"})};var TextAlignCenter$2=function(){return h("sqm-coupon-code",{textAlign:"center"})};var TextAlignRight$2=function(){return h("sqm-coupon-code",{textAlign:"right"})};var CopyButton$2=function(){return h("sqm-coupon-code",Object.assign({},defaultProps$e,{buttonStyle:"button-outside"}))};var CopyButtonCustomLabel=function(){return h("sqm-coupon-code",Object.assign({},defaultProps$e,{buttonStyle:"button-outside","copy-button-label":"test long custom label"}))};var CopyButtonBelow$2=function(){return h("sqm-coupon-code",Object.assign({},defaultProps$e,{buttonStyle:"button-below"}))};var CopyButtonBelowCustomLabel=function(){return h("sqm-coupon-code",Object.assign({},defaultProps$e,{buttonStyle:"button-below","copy-button-label":"test long custom label"}))};var Loading$5=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{loading:true}))};var CopyButtonLoading=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{buttonStyle:"button-outside",loading:true}))};var CopyButtonBelowLoading=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{buttonStyle:"button-below",loading:true}))};var ErrorGeneric=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"warning",error:true,errorText:"We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue."}))};var ErrorPending=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"info",error:true,errorText:"Your code will be available on April 24, 2023. Mark your calendar and come back then to redeem your reward!"}))};var ErrorFullfillment=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"warning",error:true,errorText:"We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue."}))};var ErrorCancelled=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"warning",error:true,errorText:"This code has been cancelled. Please reach out to the Support team for help resolving this issue."}))};var ErrorExpired=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"warning",error:true,errorText:"Looks like this code has expired. Please reach out to the Support team for help resolving this issue."}))};var ErrorRedeemed=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"success",error:true,errorText:"Looks like you’ve already redeemed this code."}))};var CouponCode$1=Object.freeze({__proto__:null,default:CouponCode_stories,CouponCode:CouponCode,CustomTooltipText:CustomTooltipText$1,CustomTooltipDuration:CustomTooltipDuration$1,TextAlignCenter:TextAlignCenter$2,TextAlignRight:TextAlignRight$2,CopyButton:CopyButton$2,CopyButtonCustomLabel:CopyButtonCustomLabel,CopyButtonBelow:CopyButtonBelow$2,CopyButtonBelowCustomLabel:CopyButtonBelowCustomLabel,Loading:Loading$5,CopyButtonLoading:CopyButtonLoading,CopyButtonBelowLoading:CopyButtonBelowLoading,ErrorGeneric:ErrorGeneric,ErrorPending:ErrorPending,ErrorFullfillment:ErrorFullfillment,ErrorCancelled:ErrorCancelled,ErrorExpired:ErrorExpired,ErrorRedeemed:ErrorRedeemed});var scenario$B='@author:noah\n@owner:noah\n\nFeature: Logout Current User\n\n Background:\n Given a user viewing an instant access widget\n\n @motivating\n @ui\n Scenario: A user on an instant access widget\n Given the user is identified\n And the user is logged in\n Then the component identifies the user by displaying their email in an ICU string\n And the users email displayed in the ICU string using hte "{email}" variable\n\n @motivating\n @ui\n Scenario: Users can switch who they are identified as through a link\n Given the user is identified\n And the user is logged in\n When the user clicks the link in the component\n Then the saved user identity is emptied\n And they are sent back to the registration form to re-identify themselves\n\n @minutia\n Scenario: Logout link empties the saved User Identity\n Given a valid user identity\n And the user is viewing the "logged-in" template\n When they click the logout link\n Then the user identity is set to "undefined"\n And the user is returned to the "logged-out" template';var LogoutCurrentUser_stories={title:"Components/Logout Current User",parameters:{scenario:scenario$B}};var defaultProps$f={filledInEmailText:"Currently showing referral data for noah.clarke@saasquatch.com",onSwitchClick:function(){return console.log("clicked")},switchUserText:"not you?",loading:false,emailErrorText:"Error fetching email"};var Default$f=function(){return h(LogoutCurrentUserView,Object.assign({},defaultProps$f))};var LogoutCurrentUser=Object.freeze({__proto__:null,default:LogoutCurrentUser_stories,Default:Default$f});var scenario$C='@author:noah\n@owner:noah\n\nFeature: Link Button\n\n\t@ui\n\tScenario: Links can be opened in the same tab\n\t\tWhen a user clicks the button\n\t\tThen a link opens in the same tab\n\t\tAnd if the component is in an iFrame then the link is opened in the parent window not the iFrame\n\n\t@ui\n\tScenario: Links can be opened in a new tab\n\t\tWhen a user clicks the button\n\t\tThen a link opens in a new tab\n\t\tAnd if the component is in an iFrame then the link is still opened in a new tab\n\n\n\t@ui\n\tScenario: Props control the link and button text\n\t\tGiven the "link" prop is set to "https://www.example.com"\n\t\tAnd the "buttonText" prop is set to "Click me!"\n\t\tThen a button is shown with the text "Click me!"\n\t\tAnd when clicked the button opens https://www.example.com\n\n\t@ui\n\tScenario Outline: The button type can be set\n\t\tGiven the button type is set to <value>\n\t\tThen a <buttonType> is shown\n\t\tExamples:\n\t\t\t| value | buttonType |\n\t\t\t| <null> | primary |\n\t\t\t| default | default |\n\t\t\t| primary | primary |\n\t\t\t| success | success |\n\t\t\t| neutral | neutral |\n\t\t\t| warning | warning |\n\t\t\t| danger | danger |';var LinkButton_stories={title:"Components/Link Button",parameters:{scenario:scenario$C}};var defaultProps$g={link:"https://example.com",openInNewTab:false,buttonText:"Button Text"};var Default$g=function(){return h("sqm-link-button",Object.assign({},defaultProps$g))};var OpenInNewTab=function(){return h("sqm-link-button",Object.assign({},__assign(__assign({},defaultProps$g),{openInNewTab:true})))};var LinkButton=Object.freeze({__proto__:null,default:LinkButton_stories,Default:Default$g,OpenInNewTab:OpenInNewTab});var CloseButton_stories={title:"Components/Close Button",parameters:{}};var defaultProps$h={};var containerStyles={position:"relative",width:"500px",height:"500px",border:"1px solid black",padding:"25px"};var Default$h=function(){return h(CloseButtonView,Object.assign({},defaultProps$h))};var InAContainer=function(){return h("div",{style:containerStyles},h(CloseButtonView,Object.assign({},defaultProps$h)))};var CustomColor$1=function(){return h("div",{style:containerStyles},h(CloseButtonView,Object.assign({},__assign(__assign({},defaultProps$h),{color:"blue"}))))};var CloseButton=Object.freeze({__proto__:null,default:CloseButton_stories,Default:Default$h,InAContainer:InAContainer,CustomColor:CustomColor$1});var Default$i="\n // No CSS\n";var Orangey="\n:root{\n "+autoColorScaleCss("orange")+"\n}\n";var Netflix="\n:root{\n "+autoColorScaleCss("#e50914")+"\n}\n";var SaaSquatchCorporate="\n:root{\n "+autoColorScaleCss("#65bd60")+"\n --sl-font-sans: Arial;\n}\n";var NYTimes="\n:root{\n "+autoColorScaleCss("black")+"\n --sl-font-sans: Georgia, 'Times New Roman', serif;\n}\n";var Klip="\n:root{\n "+autoColorScaleCss("#4225C4")+";\n}\n\n";var Themes=Object.freeze({__proto__:null,Default:Default$i,Orangey:Orangey,Netflix:Netflix,SaaSquatchCorporate:SaaSquatchCorporate,NYTimes:NYTimes,Klip:Klip});function deepFreeze(e){if(e instanceof Map){e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}}else if(e instanceof Set){e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}}Object.freeze(e);Object.getOwnPropertyNames(e).forEach((function(t){var n=e[t];if(typeof n=="object"&&!Object.isFrozen(n)){deepFreeze(n)}}));return e}var deepFreezeEs6=deepFreeze;var _default=deepFreeze;deepFreezeEs6.default=_default;var Response=function(){function e(e){if(e.data===undefined)e.data={};this.data=e.data;this.isMatchIgnored=false}e.prototype.ignoreMatch=function(){this.isMatchIgnored=true};return e}();function escapeHTML(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function inherit(e){var t=[];for(var n=1;n<arguments.length;n++){t[n-1]=arguments[n]}var a=Object.create(null);for(var r in e){a[r]=e[r]}t.forEach((function(e){for(var t in e){a[t]=e[t]}}));return a}var SPAN_CLOSE="</span>";var emitsWrappingTags=function(e){return!!e.kind};var HTMLRenderer=function(){function e(e,t){this.buffer="";this.classPrefix=t.classPrefix;e.walk(this)}e.prototype.addText=function(e){this.buffer+=escapeHTML(e)};e.prototype.openNode=function(e){if(!emitsWrappingTags(e))return;var t=e.kind;if(!e.sublanguage){t=""+this.classPrefix+t}this.span(t)};e.prototype.closeNode=function(e){if(!emitsWrappingTags(e))return;this.buffer+=SPAN_CLOSE};e.prototype.value=function(){return this.buffer};e.prototype.span=function(e){this.buffer+='<span class="'+e+'">'};return e}();var TokenTree=function(){function e(){this.rootNode={children:[]};this.stack=[this.rootNode]}Object.defineProperty(e.prototype,"top",{get:function(){return this.stack[this.stack.length-1]},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"root",{get:function(){return this.rootNode},enumerable:false,configurable:true});e.prototype.add=function(e){this.top.children.push(e)};e.prototype.openNode=function(e){var t={kind:e,children:[]};this.add(t);this.stack.push(t)};e.prototype.closeNode=function(){if(this.stack.length>1){return this.stack.pop()}return undefined};e.prototype.closeAllNodes=function(){while(this.closeNode());};e.prototype.toJSON=function(){return JSON.stringify(this.rootNode,null,4)};e.prototype.walk=function(e){return this.constructor._walk(e,this.rootNode)};e._walk=function(e,t){var n=this;if(typeof t==="string"){e.addText(t)}else if(t.children){e.openNode(t);t.children.forEach((function(t){return n._walk(e,t)}));e.closeNode(t)}return e};e._collapse=function(t){if(typeof t==="string")return;if(!t.children)return;if(t.children.every((function(e){return typeof e==="string"}))){t.children=[t.children.join("")]}else{t.children.forEach((function(t){e._collapse(t)}))}};return e}();var TokenTreeEmitter=function(e){__extends(t,e);function t(t){var n=e.call(this)||this;n.options=t;return n}t.prototype.addKeyword=function(e,t){if(e===""){return}this.openNode(t);this.addText(e);this.closeNode()};t.prototype.addText=function(e){if(e===""){return}this.add(e)};t.prototype.addSublanguage=function(e,t){var n=e.root;n.kind=t;n.sublanguage=true;this.add(n)};t.prototype.toHTML=function(){var e=new HTMLRenderer(this,this.options);return e.value()};t.prototype.finalize=function(){return true};return t}(TokenTree);function escape(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function source(e){if(!e)return null;if(typeof e==="string")return e;return e.source}function concat(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}var n=e.map((function(e){return source(e)})).join("");return n}function either(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}var n="("+e.map((function(e){return source(e)})).join("|")+")";return n}function countMatchGroups(e){return new RegExp(e.toString()+"|").exec("").length-1}function startsWith(e,t){var n=e&&e.exec(t);return n&&n.index===0}var BACKREF_RE=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function join(e,t){if(t===void 0){t="|"}var n=0;return e.map((function(e){n+=1;var t=n;var a=source(e);var r="";while(a.length>0){var s=BACKREF_RE.exec(a);if(!s){r+=a;break}r+=a.substring(0,s.index);a=a.substring(s.index+s[0].length);if(s[0][0]==="\\"&&s[1]){r+="\\"+String(Number(s[1])+t)}else{r+=s[0];if(s[0]==="("){n++}}}return r})).map((function(e){return"("+e+")"})).join(t)}var MATCH_NOTHING_RE=/\b\B/;var IDENT_RE="[a-zA-Z]\\w*";var UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*";var NUMBER_RE="\\b\\d+(\\.\\d+)?";var C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";var BINARY_NUMBER_RE="\\b(0b[01]+)";var RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";var SHEBANG=function(e){if(e===void 0){e={}}var t=/^#![ ]*\//;if(e.binary){e.begin=concat(t,/.*\b/,e.binary,/\b.*/)}return inherit({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":function(e,t){if(e.index!==0)t.ignoreMatch()}},e)};var BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0};var APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[BACKSLASH_ESCAPE]};var QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[BACKSLASH_ESCAPE]};var PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/};var COMMENT=function(e,t,n){if(n===void 0){n={}}var a=inherit({className:"comment",begin:e,end:t,contains:[]},n);a.contains.push(PHRASAL_WORDS_MODE);a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0});return a};var C_LINE_COMMENT_MODE=COMMENT("//","$");var C_BLOCK_COMMENT_MODE=COMMENT("/\\*","\\*/");var HASH_COMMENT_MODE=COMMENT("#","$");var NUMBER_MODE={className:"number",begin:NUMBER_RE,relevance:0};var C_NUMBER_MODE={className:"number",begin:C_NUMBER_RE,relevance:0};var BINARY_NUMBER_MODE={className:"number",begin:BINARY_NUMBER_RE,relevance:0};var CSS_NUMBER_MODE={className:"number",begin:NUMBER_RE+"("+"%|em|ex|ch|rem"+"|vw|vh|vmin|vmax"+"|cm|mm|in|pt|pc|px"+"|deg|grad|rad|turn"+"|s|ms"+"|Hz|kHz"+"|dpi|dpcm|dppx"+")?",relevance:0};var REGEXP_MODE={begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[BACKSLASH_ESCAPE]}]}]};var TITLE_MODE={className:"title",begin:IDENT_RE,relevance:0};var UNDERSCORE_TITLE_MODE={className:"title",begin:UNDERSCORE_IDENT_RE,relevance:0};var METHOD_GUARD={begin:"\\.\\s*"+UNDERSCORE_IDENT_RE,relevance:0};var END_SAME_AS_BEGIN=function(e){return Object.assign(e,{"on:begin":function(e,t){t.data._beginMatch=e[1]},"on:end":function(e,t){if(t.data._beginMatch!==e[1])t.ignoreMatch()}})};var MODES=Object.freeze({__proto__:null,MATCH_NOTHING_RE:MATCH_NOTHING_RE,IDENT_RE:IDENT_RE,UNDERSCORE_IDENT_RE:UNDERSCORE_IDENT_RE,NUMBER_RE:NUMBER_RE,C_NUMBER_RE:C_NUMBER_RE,BINARY_NUMBER_RE:BINARY_NUMBER_RE,RE_STARTERS_RE:RE_STARTERS_RE,SHEBANG:SHEBANG,BACKSLASH_ESCAPE:BACKSLASH_ESCAPE,APOS_STRING_MODE:APOS_STRING_MODE,QUOTE_STRING_MODE:QUOTE_STRING_MODE,PHRASAL_WORDS_MODE:PHRASAL_WORDS_MODE,COMMENT:COMMENT,C_LINE_COMMENT_MODE:C_LINE_COMMENT_MODE,C_BLOCK_COMMENT_MODE:C_BLOCK_COMMENT_MODE,HASH_COMMENT_MODE:HASH_COMMENT_MODE,NUMBER_MODE:NUMBER_MODE,C_NUMBER_MODE:C_NUMBER_MODE,BINARY_NUMBER_MODE:BINARY_NUMBER_MODE,CSS_NUMBER_MODE:CSS_NUMBER_MODE,REGEXP_MODE:REGEXP_MODE,TITLE_MODE:TITLE_MODE,UNDERSCORE_TITLE_MODE:UNDERSCORE_TITLE_MODE,METHOD_GUARD:METHOD_GUARD,END_SAME_AS_BEGIN:END_SAME_AS_BEGIN});function skipIfhasPrecedingDot(e,t){var n=e.input[e.index-1];if(n==="."){t.ignoreMatch()}}function beginKeywords(e,t){if(!t)return;if(!e.beginKeywords)return;e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)";e.__beforeBegin=skipIfhasPrecedingDot;e.keywords=e.keywords||e.beginKeywords;delete e.beginKeywords;if(e.relevance===undefined)e.relevance=0}function compileIllegal(e,t){if(!Array.isArray(e.illegal))return;e.illegal=either.apply(void 0,e.illegal)}function compileMatch(e,t){if(!e.match)return;if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match;delete e.match}function compileRelevance(e,t){if(e.relevance===undefined)e.relevance=1}var COMMON_KEYWORDS=["of","and","for","in","not","or","if","then","parent","list","value"];var DEFAULT_KEYWORD_CLASSNAME="keyword";function compileKeywords(e,t,n){if(n===void 0){n=DEFAULT_KEYWORD_CLASSNAME}var a={};if(typeof e==="string"){r(n,e.split(" "))}else if(Array.isArray(e)){r(n,e)}else{Object.keys(e).forEach((function(n){Object.assign(a,compileKeywords(e[n],t,n))}))}return a;function r(e,n){if(t){n=n.map((function(e){return e.toLowerCase()}))}n.forEach((function(t){var n=t.split("|");a[n[0]]=[e,scoreForKeyword(n[0],n[1])]}))}}function scoreForKeyword(e,t){if(t){return Number(t)}return commonKeyword(e)?0:1}function commonKeyword(e){return COMMON_KEYWORDS.includes(e.toLowerCase())}function compileLanguage(e,t){var n=t.plugins;function a(t,n){return new RegExp(source(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}var r=function(){function e(){this.matchIndexes={};this.regexes=[];this.matchAt=1;this.position=0}e.prototype.addRule=function(e,t){t.position=this.position++;this.matchIndexes[this.matchAt]=t;this.regexes.push([t,e]);this.matchAt+=countMatchGroups(e)+1};e.prototype.compile=function(){if(this.regexes.length===0){this.exec=function(){return null}}var e=this.regexes.map((function(e){return e[1]}));this.matcherRe=a(join(e),true);this.lastIndex=0};e.prototype.exec=function(e){this.matcherRe.lastIndex=this.lastIndex;var t=this.matcherRe.exec(e);if(!t){return null}var n=t.findIndex((function(e,t){return t>0&&e!==undefined}));var a=this.matchIndexes[n];t.splice(0,n);return Object.assign(t,a)};return e}();var s=function(){function e(){this.rules=[];this.multiRegexes=[];this.count=0;this.lastIndex=0;this.regexIndex=0}e.prototype.getMatcher=function(e){if(this.multiRegexes[e])return this.multiRegexes[e];var t=new r;this.rules.slice(e).forEach((function(e){var n=e[0],a=e[1];return t.addRule(n,a)}));t.compile();this.multiRegexes[e]=t;return t};e.prototype.resumingScanAtSamePosition=function(){return this.regexIndex!==0};e.prototype.considerAll=function(){this.regexIndex=0};e.prototype.addRule=function(e,t){this.rules.push([e,t]);if(t.type==="begin")this.count++};e.prototype.exec=function(e){var t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;var n=t.exec(e);if(this.resumingScanAtSamePosition()){if(n&&n.index===this.lastIndex);else{var a=this.getMatcher(0);a.lastIndex=this.lastIndex+1;n=a.exec(e)}}if(n){this.regexIndex+=n.position+1;if(this.regexIndex===this.count){this.considerAll()}}return n};return e}();function i(e){var t=new s;e.contains.forEach((function(e){return t.addRule(e.begin,{rule:e,type:"begin"})}));if(e.terminatorEnd){t.addRule(e.terminatorEnd,{type:"end"})}if(e.illegal){t.addRule(e.illegal,{type:"illegal"})}return t}function o(t,n){var r=t;if(t.isCompiled)return r;[compileMatch].forEach((function(e){return e(t,n)}));e.compilerExtensions.forEach((function(e){return e(t,n)}));t.__beforeBegin=null;[beginKeywords,compileIllegal,compileRelevance].forEach((function(e){return e(t,n)}));t.isCompiled=true;var s=null;if(typeof t.keywords==="object"){s=t.keywords.$pattern;delete t.keywords.$pattern}if(t.keywords){t.keywords=compileKeywords(t.keywords,e.case_insensitive)}if(t.lexemes&&s){throw new Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ")}s=s||t.lexemes||/\w+/;r.keywordPatternRe=a(s,true);if(n){if(!t.begin)t.begin=/\B|\b/;r.beginRe=a(t.begin);if(t.endSameAsBegin)t.end=t.begin;if(!t.end&&!t.endsWithParent)t.end=/\B|\b/;if(t.end)r.endRe=a(t.end);r.terminatorEnd=source(t.end)||"";if(t.endsWithParent&&n.terminatorEnd){r.terminatorEnd+=(t.end?"|":"")+n.terminatorEnd}}if(t.illegal)r.illegalRe=a(t.illegal);if(!t.contains)t.contains=[];t.contains=[].concat.apply([],t.contains.map((function(e){return expandOrCloneMode(e==="self"?t:e)})));t.contains.forEach((function(e){o(e,r)}));if(t.starts){o(t.starts,n)}r.matcher=i(r);return r}if(!e.compilerExtensions)e.compilerExtensions=[];if(e.contains&&e.contains.includes("self")){throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.")}e.classNameAliases=inherit(e.classNameAliases||{});return o(e)}function dependencyOnParent(e){if(!e)return false;return e.endsWithParent||dependencyOnParent(e.starts)}function expandOrCloneMode(e){if(e.variants&&!e.cachedVariants){e.cachedVariants=e.variants.map((function(t){return inherit(e,{variants:null},t)}))}if(e.cachedVariants){return e.cachedVariants}if(dependencyOnParent(e)){return inherit(e,{starts:e.starts?inherit(e.starts):null})}if(Object.isFrozen(e)){return inherit(e)}return e}var version="10.7.3";function hasValueOrEmptyAttribute(e){return Boolean(e||e==="")}function BuildVuePlugin(e){var t={props:["language","code","autodetect"],data:function(){return{detectedLanguage:"",unknownLanguage:false}},computed:{className:function(){if(this.unknownLanguage)return"";return"hljs "+this.detectedLanguage},highlighted:function(){if(!this.autoDetect&&!e.getLanguage(this.language)){console.warn('The language "'+this.language+'" you specified could not be found.');this.unknownLanguage=true;return escapeHTML(this.code)}var t={};if(this.autoDetect){t=e.highlightAuto(this.code);this.detectedLanguage=t.language}else{t=e.highlight(this.language,this.code,this.ignoreIllegals);this.detectedLanguage=this.language}return t.value},autoDetect:function(){return!this.language||hasValueOrEmptyAttribute(this.autodetect)},ignoreIllegals:function(){return true}},render:function(e){return e("pre",{},[e("code",{class:this.className,domProps:{innerHTML:this.highlighted}})])}};var n={install:function(e){e.component("highlightjs",t)}};return{Component:t,VuePlugin:n}}var mergeHTMLPlugin={"after:highlightElement":function(e){var t=e.el,n=e.result,a=e.text;var r=nodeStream(t);if(!r.length)return;var s=document.createElement("div");s.innerHTML=n.value;n.value=mergeStreams(r,nodeStream(s),a)}};function tag(e){return e.nodeName.toLowerCase()}function nodeStream(e){var t=[];(function e(n,a){for(var r=n.firstChild;r;r=r.nextSibling){if(r.nodeType===3){a+=r.nodeValue.length}else if(r.nodeType===1){t.push({event:"start",offset:a,node:r});a=e(r,a);if(!tag(r).match(/br|hr|img|input/)){t.push({event:"stop",offset:a,node:r})}}}return a})(e,0);return t}function mergeStreams(e,t,n){var a=0;var r="";var s=[];function i(){if(!e.length||!t.length){return e.length?e:t}if(e[0].offset!==t[0].offset){return e[0].offset<t[0].offset?e:t}return t[0].event==="start"?e:t}function o(e){function t(e){return" "+e.nodeName+'="'+escapeHTML(e.value)+'"'}r+="<"+tag(e)+[].map.call(e.attributes,t).join("")+">"}function l(e){r+="</"+tag(e)+">"}function d(e){(e.event==="start"?o:l)(e.node)}while(e.length||t.length){var u=i();r+=escapeHTML(n.substring(a,u[0].offset));a=u[0].offset;if(u===e){s.reverse().forEach(l);do{d(u.splice(0,1)[0]);u=i()}while(u===e&&u.length&&u[0].offset===a);s.reverse().forEach(o)}else{if(u[0].event==="start"){s.push(u[0].node)}else{s.pop()}d(u.splice(0,1)[0])}}return r+escapeHTML(n.substr(a))}var seenDeprecations={};var error=function(e){console.error(e)};var warn=function(e){var t=[];for(var n=1;n<arguments.length;n++){t[n-1]=arguments[n]}console.log.apply(console,__spreadArrays(["WARN: "+e],t))};var deprecated=function(e,t){if(seenDeprecations[e+"/"+t])return;console.log("Deprecated as of "+e+". "+t);seenDeprecations[e+"/"+t]=true};var escape$1=escapeHTML;var inherit$1=inherit;var NO_MATCH=Symbol("nomatch");var HLJS=function(e){var t=Object.create(null);var n=Object.create(null);var a=[];var r=true;var s=/(^(<[^>]+>|\t|)+|\n)/gm;var i="Could not find the language '{}', did you forget to load/include a language module?";var o={disableAutodetect:true,name:"Plain text",contains:[]};var l={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:false,languages:null,__emitter:TokenTreeEmitter};function d(e){return l.noHighlightRe.test(e)}function u(e){var t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";var n=l.languageDetectRe.exec(t);if(n){var a=S(n[1]);if(!a){warn(i.replace("{}",n[1]));warn("Falling back to no-highlight mode for this block.",e)}return a?n[1]:"no-highlight"}return t.split(/\s+/).find((function(e){return d(e)||S(e)}))}function c(e,t,n,a){var r="";var s="";if(typeof t==="object"){r=e;n=t.ignoreIllegals;s=t.language;a=undefined}else{deprecated("10.7.0","highlight(lang, code, ...args) has been deprecated.");deprecated("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277");s=e;r=t}var i={code:r,language:s};N("before:highlight",i);var o=i.result?i.result:m(i.language,i.code,n,a);o.code=i.code;N("after:highlight",o);return o}function m(e,n,s,o){function d(e,t){var n=E.case_insensitive?t[0].toLowerCase():t[0];return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]}function u(){if(!T.keywords){R.addText(D);return}var e=0;T.keywordPatternRe.lastIndex=0;var t=T.keywordPatternRe.exec(D);var n="";while(t){n+=D.substring(e,t.index);var a=d(T,t);if(a){var r=a[0],s=a[1];R.addText(n);n="";_+=s;if(r.startsWith("_")){n+=t[0]}else{var i=E.classNameAliases[r]||r;R.addKeyword(t[0],i)}}else{n+=t[0]}e=T.keywordPatternRe.lastIndex;t=T.keywordPatternRe.exec(D)}n+=D.substr(e);R.addText(n)}function c(){if(D==="")return;var e=null;if(typeof T.subLanguage==="string"){if(!t[T.subLanguage]){R.addText(D);return}e=m(T.subLanguage,D,true,q[T.subLanguage]);q[T.subLanguage]=e.top}else{e=p(D,T.subLanguage.length?T.subLanguage:null)}if(T.relevance>0){_+=e.relevance}R.addSublanguage(e.emitter,e.language)}function h(){if(T.subLanguage!=null){c()}else{u()}D=""}function g(e){if(e.className){R.openNode(E.classNameAliases[e.className]||e.className)}T=Object.create(e,{parent:{value:T}});return T}function f(e,t,n){var a=startsWith(e.endRe,n);if(a){if(e["on:end"]){var r=new Response(e);e["on:end"](t,r);if(r.isMatchIgnored)a=false}if(a){while(e.endsParent&&e.parent){e=e.parent}return e}}if(e.endsWithParent){return f(e.parent,t,n)}}function b(e){if(T.matcher.regexIndex===0){D+=e[0];return 1}else{F=true;return 0}}function w(e){var t=e[0];var n=e.rule;var a=new Response(n);var r=[n.__beforeBegin,n["on:begin"]];for(var s=0,i=r;s<i.length;s++){var o=i[s];if(!o)continue;o(e,a);if(a.isMatchIgnored)return b(t)}if(n&&n.endSameAsBegin){n.endRe=escape(t)}if(n.skip){D+=t}else{if(n.excludeBegin){D+=t}h();if(!n.returnBegin&&!n.excludeBegin){D=t}}g(n);return n.returnBegin?0:t.length}function v(e){var t=e[0];var a=n.substr(e.index);var r=f(T,e,a);if(!r){return NO_MATCH}var s=T;if(s.skip){D+=t}else{if(!(s.returnEnd||s.excludeEnd)){D+=t}h();if(s.excludeEnd){D=t}}do{if(T.className){R.closeNode()}if(!T.skip&&!T.subLanguage){_+=T.relevance}T=T.parent}while(T!==r.parent);if(r.starts){if(r.endSameAsBegin){r.starts.endRe=r.endRe}g(r.starts)}return s.returnEnd?0:t.length}function x(){var e=[];for(var t=T;t!==E;t=t.parent){if(t.className){e.unshift(t.className)}}e.forEach((function(e){return R.openNode(e)}))}var y={};function C(t,a){var i=a&&a[0];D+=t;if(i==null){h();return 0}if(y.type==="begin"&&a.type==="end"&&y.index===a.index&&i===""){D+=n.slice(a.index,a.index+1);if(!r){var o=new Error("0 width match regex");o.languageName=e;o.badRule=y.rule;throw o}return 1}y=a;if(a.type==="begin"){return w(a)}else if(a.type==="illegal"&&!s){var o=new Error('Illegal lexeme "'+i+'" for mode "'+(T.className||"<unnamed>")+'"');o.mode=T;throw o}else if(a.type==="end"){var l=v(a);if(l!==NO_MATCH){return l}}if(a.type==="illegal"&&i===""){return 1}if(I>1e5&&I>a.index*3){var o=new Error("potential infinite loop, way more iterations than matches");throw o}D+=i;return i.length}var E=S(e);if(!E){error(i.replace("{}",e));throw new Error('Unknown language: "'+e+'"')}var k=compileLanguage(E,{plugins:a});var A="";var T=o||k;var q={};var R=new l.__emitter(l);x();var D="";var _=0;var P=0;var I=0;var F=false;try{T.matcher.considerAll();for(;;){I++;if(F){F=false}else{T.matcher.considerAll()}T.matcher.lastIndex=P;var L=T.matcher.exec(n);if(!L)break;var N=n.substring(P,L.index);var B=C(N,L);P=L.index+B}C(n.substr(P));R.closeAllNodes();R.finalize();A=R.toHTML();return{relevance:Math.floor(_),value:A,language:e,illegal:false,emitter:R,top:T}}catch(t){if(t.message&&t.message.includes("Illegal")){return{illegal:true,illegalBy:{msg:t.message,context:n.slice(P-100,P+100),mode:t.mode},sofar:A,relevance:0,value:escape$1(n),emitter:R}}else if(r){return{illegal:false,relevance:0,value:escape$1(n),emitter:R,language:e,top:T,errorRaised:t}}else{throw t}}}function h(e){var t={relevance:0,emitter:new l.__emitter(l),value:escape$1(e),illegal:false,top:o};t.emitter.addText(e);return t}function p(e,n){n=n||l.languages||Object.keys(t);var a=h(e);var r=n.filter(S).filter(I).map((function(t){return m(t,e,false)}));r.unshift(a);var s=r.sort((function(e,t){if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(S(e.language).supersetOf===t.language){return 1}else if(S(t.language).supersetOf===e.language){return-1}}return 0}));var i=s[0],o=s[1];var d=i;d.second_best=o;return d}function g(e){if(!(l.tabReplace||l.useBR)){return e}return e.replace(s,(function(e){if(e==="\n"){return l.useBR?"<br>":e}else if(l.tabReplace){return e.replace(/\t/g,l.tabReplace)}return e}))}function f(e,t,a){var r=t?n[t]:a;e.classList.add("hljs");if(r)e.classList.add(r)}var b={"before:highlightElement":function(e){var t=e.el;if(l.useBR){t.innerHTML=t.innerHTML.replace(/\n/g,"").replace(/<br[ /]*>/g,"\n")}},"after:highlightElement":function(e){var t=e.result;if(l.useBR){t.value=t.value.replace(/\n/g,"<br>")}}};var w=/^(<[^>]+>|\t)+/gm;var v={"after:highlightElement":function(e){var t=e.result;if(l.tabReplace){t.value=t.value.replace(w,(function(e){return e.replace(/\t/g,l.tabReplace)}))}}};function x(e){var t=null;var n=u(e);if(d(n))return;N("before:highlightElement",{el:e,language:n});t=e;var a=t.textContent;var r=n?c(a,{language:n,ignoreIllegals:true}):p(a);N("after:highlightElement",{el:e,result:r,text:a});e.innerHTML=r.value;f(e,n,r.language);e.result={language:r.language,re:r.relevance,relavance:r.relevance};if(r.second_best){e.second_best={language:r.second_best.language,re:r.second_best.relevance,relavance:r.second_best.relevance}}}function y(e){if(e.useBR){deprecated("10.3.0","'useBR' will be removed entirely in v11.0");deprecated("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")}l=inherit$1(l,e)}var C=function(){if(C.called)return;C.called=true;deprecated("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead.");var e=document.querySelectorAll("pre code");e.forEach(x)};function E(){deprecated("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead.");k=true}var k=false;function A(){if(document.readyState==="loading"){k=true;return}var e=document.querySelectorAll("pre code");e.forEach(x)}function T(){if(k)A()}if(typeof window!=="undefined"&&window.addEventListener){window.addEventListener("DOMContentLoaded",T,false)}function q(n,a){var s=null;try{s=a(e)}catch(e){error("Language definition for '{}' could not be registered.".replace("{}",n));if(!r){throw e}else{error(e)}s=o}if(!s.name)s.name=n;t[n]=s;s.rawDefinition=a.bind(null,e);if(s.aliases){P(s.aliases,{languageName:n})}}function R(e){delete t[e];for(var a=0,r=Object.keys(n);a<r.length;a++){var s=r[a];if(n[s]===e){delete n[s]}}}function D(){return Object.keys(t)}function _(e){deprecated("10.4.0","requireLanguage will be removed entirely in v11.");deprecated("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844");var t=S(e);if(t){return t}var n=new Error("The '{}' language is required, but not loaded.".replace("{}",e));throw n}function S(e){e=(e||"").toLowerCase();return t[e]||t[n[e]]}function P(e,t){var a=t.languageName;if(typeof e==="string"){e=[e]}e.forEach((function(e){n[e.toLowerCase()]=a}))}function I(e){var t=S(e);return t&&!t.disableAutodetect}function F(e){if(e["before:highlightBlock"]&&!e["before:highlightElement"]){e["before:highlightElement"]=function(t){e["before:highlightBlock"](Object.assign({block:t.el},t))}}if(e["after:highlightBlock"]&&!e["after:highlightElement"]){e["after:highlightElement"]=function(t){e["after:highlightBlock"](Object.assign({block:t.el},t))}}}function L(e){F(e);a.push(e)}function N(e,t){var n=e;a.forEach((function(e){if(e[n]){e[n](t)}}))}function B(e){deprecated("10.2.0","fixMarkup will be removed entirely in v11.0");deprecated("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534");return g(e)}function O(e){deprecated("10.7.0","highlightBlock will be removed entirely in v12.0");deprecated("10.7.0","Please use highlightElement now.");return x(e)}Object.assign(e,{highlight:c,highlightAuto:p,highlightAll:A,fixMarkup:B,highlightElement:x,highlightBlock:O,configure:y,initHighlighting:C,initHighlightingOnLoad:E,registerLanguage:q,unregisterLanguage:R,listLanguages:D,getLanguage:S,registerAliases:P,requireLanguage:_,autoDetection:I,inherit:inherit$1,addPlugin:L,vuePlugin:BuildVuePlugin(e).VuePlugin});e.debugMode=function(){r=false};e.safeMode=function(){r=true};e.versionString=version;for(var V in MODES){if(typeof MODES[V]==="object"){deepFreezeEs6(MODES[V])}}Object.assign(e,MODES);e.addPlugin(b);e.addPlugin(mergeHTMLPlugin);e.addPlugin(v);return e};var highlight=HLJS({});var core=highlight;function gherkin(e){return{name:"Gherkin",aliases:["feature"],keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",contains:[{className:"symbol",begin:"\\*",relevance:0},{className:"meta",begin:"@[^@\\s]+"},{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string",begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},e.HASH_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},e.QUOTE_STRING_MODE]}}var gherkin_1=gherkin;core.registerLanguage("gherkin",gherkin_1);var CucumberAddon=function(e,t){var n=e.story;var a;var r=(a=n.parent.parameters)===null||a===void 0?void 0:a.scenario;var s;try{s=core.highlight("gherkin",r)}catch(e){}return h("div",null,h("details",null,h("summary",null,"Specs"),s&&h("pre",{innerHTML:s.value})),t)};var stories=[ShareButton,ShareLink,BigStat,Leaderboard,EmptyState,LeaderboardRank,UseShareLink,UseShareButton,UseBigStat,UseEditProfile,UseLeaderboard,UseCheckboxField,UseDropdownField,UseInputField,Router,PortalFrame,EditProfile,FormMessage,NewPortal,SidebarItem,NavigationSidebar,PortalLogin,PortalRegister,PortalForgotPassword,PortalEmailVerification,PortalResetPassword,PortalVerifyEmail,AssetCard,DividedLayout,ChangePassword,PortalProfile,ReferralTable,ReferralTableCell,ReferralTableRewardsCell,UserName,PasswordField,TaskCard$2,PortalTemplates,Widget,ProgramMenu,PoweredByImg,PortalFooter,Hero,ReferralIframe$1,NameFields$1,CheckboxField,DropdownField,InputField,RewardExchangeList,UseRewardExchangeList,UseTaskCard,UseRewardsTable,ProgramExplainer,ProgramExplainerStep$1,BrandStories,CardFeed,PortalContainer,RewardsTableCell,RewardsTable$1,UseReferralTable,HeroImage,ReferralCard,Timeline,Image$1,TitledSection,Scroll,Tabs,ShareCode$1,CouponCode$1,LogoutCurrentUser,LinkButton,EmailRegistration,CloseButton];var StencilStorybook=function(){function e(e){registerInstance(this,e);this.ignored=true;h$1(this)}e.prototype.disconnectedCallback=function(){};e.prototype.render=function(){var e=y$1(stories,{h:h,title:"Mint Components",addons:[HookStoryAddon,ShadowViewAddon,CucumberAddon]}),t=e.class,n=e.children;var a=useState("Default"),r=a[0],s=a[1];var i=useState(true),o=i[0],l=i[1];var d=Object.keys(Themes);var u=Themes[r];return h(Host,{class:t,onClick:{}},h("div",{style:{position:"absolute",top:"0",right:"0",zIndex:"999999"}},"Branding:",h("select",{onChange:function(e){return s(e.target.value)}},d.map((function(e){return h("option",{selected:e===r},e)}))),h("div",null,h("div",null)),h(ColorScale,null),h("br",null),h("input",{type:"checkbox",id:"checkerboard",onClick:function(){return l(!o)},onChange:function(){return document.documentElement.style.setProperty("--checker-color-1",o?"#ebebeb":"#ffffff00")}}),h("label",{htmlFor:"checkerboard"},"Checkerboard?")),h("style",null,u),h("style",null,ResizerStylesheet),n)};return e}();function ColorScale(){return h("span",null,h(ColorToken,null),h(ColorToken,{type:"success"}),h(ColorToken,{type:"warning"}),h(ColorToken,{type:"danger"}),h(ColorToken,{type:"neutral"}))}function ColorToken(e){var t=e.type,n=t===void 0?"primary":t;return h("span",{style:{background:"var(--sl-color-"+n+"-500)",width:"1em",marginRight:"2px",padding:"0 4px"},title:n},n.charAt(0))}export{StencilStorybook as sqm_stencilbook};var templateObject_1;
1
+ var __makeTemplateObject=this&&this.__makeTemplateObject||function(e,t){if(Object.defineProperty){Object.defineProperty(e,"raw",{value:t})}else{e.raw=t}return e};var __extends=this&&this.__extends||function(){var e=function(t,n){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n))e[n]=t[n]};return e(t,n)};return function(t,n){e(t,n);function a(){this.constructor=t}t.prototype=n===null?Object.create(n):(a.prototype=n.prototype,new a)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++){t=arguments[n];for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]}return e};return __assign.apply(this,arguments)};var __awaiter=this&&this.__awaiter||function(e,t,n,a){function r(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,s){function i(e){try{l(a.next(e))}catch(e){s(e)}}function o(e){try{l(a["throw"](e))}catch(e){s(e)}}function l(e){e.done?n(e.value):r(e.value).then(i,o)}l((a=a.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},a,r,s,i;return i={next:o(0),throw:o(1),return:o(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function o(e){return function(t){return l([e,t])}}function l(i){if(a)throw new TypeError("Generator is already executing.");while(n)try{if(a=1,r&&(s=i[0]&2?r["return"]:i[0]?r["throw"]||((s=r["return"])&&s.call(r),0):r.next)&&!(s=s.call(r,i[1])).done)return s;if(r=0,s)i=[i[0]&2,s.value];switch(i[0]){case 0:case 1:s=i;break;case 4:n.label++;return{value:i[1],done:false};case 5:n.label++;r=i[1];i=[0];continue;case 7:i=n.ops.pop();n.trys.pop();continue;default:if(!(s=n.trys,s=s.length>0&&s[s.length-1])&&(i[0]===6||i[0]===2)){n=0;continue}if(i[0]===3&&(!s||i[1]>s[0]&&i[1]<s[3])){n.label=i[1];break}if(i[0]===6&&n.label<s[1]){n.label=s[1];s=i;break}if(s&&n.label<s[2]){n.label=s[2];n.ops.push(i);break}if(s[2])n.ops.pop();n.trys.pop();continue}i=t.call(e,n)}catch(e){i=[6,e];r=0}finally{a=s=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}};var __spreadArrays=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var a=Array(e),r=0,t=0;t<n;t++)for(var s=arguments[t],i=0,o=s.length;i<o;i++,r++)a[r]=s[i];return a};import{h,r as registerInstance,c as Host}from"./index-17b4da69.js";import{a as commonjsGlobal,u as useMemo,j as useState,f as useEffect,c as createCommonjsModule,m as h$1}from"./stencil-hooks.module-14b87f98.js";import"./global-91edfca0.js";import{h as hn,v as vn,e as setUserIdentity,d as dist,z as ze,k as setProgramId}from"./index.module-99d8522e.js";import"./cjs-bdfb4486.js";import"./mixins-f60a614c.js";import{c as createStyleSheet}from"./JSS-67b5cff8.js";import{G as GenericTableView}from"./GenericTableView-266126f9.js";import"./useChildElements-b945a965.js";import{l as luxon}from"./luxon-f01e85fe.js";import"./utils-334c1e34.js";import"./sqm-text-span-view-8d140661.js";import{A as AssetCardView}from"./sqm-asset-card-view-9d93fbdd.js";import{C as CloseButtonView}from"./sqm-close-button-view-dc65b4e3.js";import{E as EmailRegistrationView}from"./email-registration-view-4a4202e7.js";import{L as LeaderboardRankView}from"./sqm-leaderboard-rank-view-10657658.js";import{L as LogoutCurrentUserView}from"./sqm-logout-current-user-view-2c6122cd.js";import{N as NavigationSidebarView}from"./sqm-navigation-sidebar-view-414bcb19.js";import{N as NavigationSidebarItemView}from"./sqm-navigation-sidebar-item-view-eb765b9c.js";import{P as PortalEmailVerificationView}from"./sqm-portal-email-verification-view-408af676.js";import{P as PortalForgotPasswordView}from"./sqm-portal-forgot-password-view-41afcace.js";import{P as PortalProfileView}from"./sqm-portal-profile-view-efa44888.js";import{P as PortalResetPasswordView}from"./sqm-portal-reset-password-view-0df781f6.js";import{P as PortalVerifyEmailView}from"./sqm-portal-verify-email-view-1db4fae6.js";import{S as ShareButtonView,L as LeaderboardView,C as CopyTextView,B as BigStatView,P as PortalFrameView,E as EditProfileView,u as useShareLink,a as useShareButton,b as useDemoBigStat,c as StatContainerView,d as PortalChangePasswordView,e as PortalLoginView,f as PortalRegisterView,T as TaskCardView,g as ProgressBarView,h as PoweredByImg$1,i as PortalFooterView,H as HeroView,R as ReferralIframeView,N as NameFieldsView,j as CheckboxFieldView,D as DropdownFieldView,I as InputFieldView,k as RewardExchangeView,r as rewardExchangeCustomErrorMsg,l as rewardExchangeLongText,m as rewardExchangeSelected,n as chooseAmountFixed,o as chooseAmountFixedNoDescription,p as chooseAmountVariable,q as chooseAmountVariableNoDescription,s as chooseAmountVariableDisabled,t as chooseAmountVariableUnavailable,v as confirmFixed,w as confirmVariable,x as redemptionError,y as queryError,z as success,A as successVariable,F as loading,G as empty$1,J as rewardExchange,K as CardFeedView,M as CouponCodeView,O as autoColorScaleCss,Q as ShadowViewAddon}from"./ShadowViewAddon-a5b397ce.js";import{P as PortalContainerView,a as PortalSectionView}from"./sqm-portal-container-view-ab89c6cc.js";var INFINITY=1/0;var symbolTag="[object Symbol]";var reAsciiWord=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var reLatin=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;var rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f\\ufe20-\\ufe23",rsComboSymbolsRange="\\u20d0-\\u20f0",rsDingbatRange="\\u2700-\\u27bf",rsLowerRange="a-z\\xdf-\\xf6\\xf8-\\xff",rsMathOpRange="\\xac\\xb1\\xd7\\xf7",rsNonCharRange="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",rsPunctuationRange="\\u2000-\\u206f",rsSpaceRange=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rsUpperRange="A-Z\\xc0-\\xd6\\xd8-\\xde",rsVarRange="\\ufe0e\\ufe0f",rsBreakRange=rsMathOpRange+rsNonCharRange+rsPunctuationRange+rsSpaceRange;var rsApos="['’]",rsAstral="["+rsAstralRange+"]",rsBreak="["+rsBreakRange+"]",rsCombo="["+rsComboMarksRange+rsComboSymbolsRange+"]",rsDigits="\\d+",rsDingbat="["+rsDingbatRange+"]",rsLower="["+rsLowerRange+"]",rsMisc="[^"+rsAstralRange+rsBreakRange+rsDigits+rsDingbatRange+rsLowerRange+rsUpperRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsUpper="["+rsUpperRange+"]",rsZWJ="\\u200d";var rsLowerMisc="(?:"+rsLower+"|"+rsMisc+")",rsUpperMisc="(?:"+rsUpper+"|"+rsMisc+")",rsOptLowerContr="(?:"+rsApos+"(?:d|ll|m|re|s|t|ve))?",rsOptUpperContr="(?:"+rsApos+"(?:D|LL|M|RE|S|T|VE))?",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsEmoji="(?:"+[rsDingbat,rsRegional,rsSurrPair].join("|")+")"+rsSeq,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")";var reApos=RegExp(rsApos,"g");var reComboMark=RegExp(rsCombo,"g");var reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");var reUnicodeWord=RegExp([rsUpper+"?"+rsLower+"+"+rsOptLowerContr+"(?="+[rsBreak,rsUpper,"$"].join("|")+")",rsUpperMisc+"+"+rsOptUpperContr+"(?="+[rsBreak,rsUpper+rsLowerMisc,"$"].join("|")+")",rsUpper+"?"+rsLowerMisc+"+"+rsOptLowerContr,rsUpper+"+"+rsOptUpperContr,rsDigits,rsEmoji].join("|"),"g");var reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboMarksRange+rsComboSymbolsRange+rsVarRange+"]");var reHasUnicodeWord=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var deburredLetters={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"ss"};var freeGlobal=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal;var freeSelf=typeof self=="object"&&self&&self.Object===Object&&self;var root=freeGlobal||freeSelf||Function("return this")();function arrayReduce(e,t,n,a){var r=-1,s=e?e.length:0;if(a&&s){n=e[++r]}while(++r<s){n=t(n,e[r],r,e)}return n}function asciiToArray(e){return e.split("")}function asciiWords(e){return e.match(reAsciiWord)||[]}function basePropertyOf(e){return function(t){return e==null?undefined:e[t]}}var deburrLetter=basePropertyOf(deburredLetters);function hasUnicode(e){return reHasUnicode.test(e)}function hasUnicodeWord(e){return reHasUnicodeWord.test(e)}function stringToArray(e){return hasUnicode(e)?unicodeToArray(e):asciiToArray(e)}function unicodeToArray(e){return e.match(reUnicode)||[]}function unicodeWords(e){return e.match(reUnicodeWord)||[]}var objectProto=Object.prototype;var objectToString=objectProto.toString;var Symbol$1=root.Symbol;var symbolProto=Symbol$1?Symbol$1.prototype:undefined,symbolToString=symbolProto?symbolProto.toString:undefined;function baseSlice(e,t,n){var a=-1,r=e.length;if(t<0){t=-t>r?0:r+t}n=n>r?r:n;if(n<0){n+=r}r=t>n?0:n-t>>>0;t>>>=0;var s=Array(r);while(++a<r){s[a]=e[a+t]}return s}function baseToString(e){if(typeof e=="string"){return e}if(isSymbol(e)){return symbolToString?symbolToString.call(e):""}var t=e+"";return t=="0"&&1/e==-INFINITY?"-0":t}function castSlice(e,t,n){var a=e.length;n=n===undefined?a:n;return!t&&n>=a?e:baseSlice(e,t,n)}function createCaseFirst(e){return function(t){t=toString(t);var n=hasUnicode(t)?stringToArray(t):undefined;var a=n?n[0]:t.charAt(0);var r=n?castSlice(n,1).join(""):t.slice(1);return a[e]()+r}}function createCompounder(e){return function(t){return arrayReduce(words(deburr(t).replace(reApos,"")),e,"")}}function isObjectLike(e){return!!e&&typeof e=="object"}function isSymbol(e){return typeof e=="symbol"||isObjectLike(e)&&objectToString.call(e)==symbolTag}function toString(e){return e==null?"":baseToString(e)}function deburr(e){e=toString(e);return e&&e.replace(reLatin,deburrLetter).replace(reComboMark,"")}var startCase=createCompounder((function(e,t,n){return e+(n?" ":"")+upperFirst(t)}));var upperFirst=createCaseFirst("toUpperCase");function words(e,t,n){e=toString(e);t=n?undefined:t;if(t===undefined){return hasUnicodeWord(e)?unicodeWords(e):asciiWords(e)}return e.match(t)||[]}var lodash_startcase=startCase;function sheetForTag(e){if(e.sheet){return e.sheet}for(var t=0;t<document.styleSheets.length;t++){if(document.styleSheets[t].ownerNode===e){return document.styleSheets[t]}}}function createStyleElement(e){var t=document.createElement("style");t.setAttribute("data-emotion",e.key);if(e.nonce!==undefined){t.setAttribute("nonce",e.nonce)}t.appendChild(document.createTextNode(""));t.setAttribute("data-s","");return t}var StyleSheet=function(){function e(e){var t=this;this._insertTag=function(e){var n;if(t.tags.length===0){n=t.prepend?t.container.firstChild:t.before}else{n=t.tags[t.tags.length-1].nextSibling}t.container.insertBefore(e,n);t.tags.push(e)};this.isSpeedy=e.speedy===undefined?"production"==="production":e.speedy;this.tags=[];this.ctr=0;this.nonce=e.nonce;this.key=e.key;this.container=e.container;this.prepend=e.prepend;this.before=null}var t=e.prototype;t.hydrate=function e(t){t.forEach(this._insertTag)};t.insert=function e(t){if(this.ctr%(this.isSpeedy?65e3:1)===0){this._insertTag(createStyleElement(this))}var n=this.tags[this.tags.length-1];if(this.isSpeedy){var a=sheetForTag(n);try{a.insertRule(t,a.cssRules.length)}catch(e){}}else{n.appendChild(document.createTextNode(t))}this.ctr++};t.flush=function e(){this.tags.forEach((function(e){return e.parentNode.removeChild(e)}));this.tags=[];this.ctr=0};return e}();var e="-ms-";var r="-moz-";var a="-webkit-";var c="comm";var n="rule";var t="decl";var i="@import";var p="@keyframes";var k=Math.abs;var d=String.fromCharCode;function m(e,t){return(((t<<2^z(e,0))<<2^z(e,1))<<2^z(e,2))<<2^z(e,3)}function g(e){return e.trim()}function x(e,t){return(e=t.exec(e))?e[0]:e}function y(e,t,n){return e.replace(t,n)}function j(e,t){return e.indexOf(t)}function z(e,t){return e.charCodeAt(t)|0}function C(e,t,n){return e.slice(t,n)}function A(e){return e.length}function M(e){return e.length}function O(e,t){return t.push(e),e}function S(e,t){return e.map(t).join("")}var q=1;var B=1;var D=0;var E=0;var F=0;var G="";function H(e,t,n,a,r,s,i){return{value:e,root:t,parent:n,type:a,props:r,children:s,line:q,column:B,length:i,return:""}}function I(e,t,n){return H(e,t.root,t.parent,n,t.props,t.children,0)}function J(){return F}function K(){F=E>0?z(G,--E):0;if(B--,F===10)B=1,q--;return F}function L(){F=E<D?z(G,E++):0;if(B++,F===10)B=1,q++;return F}function N(){return z(G,E)}function P(){return E}function Q(e,t){return C(G,e,t)}function R(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function T(e){return q=B=1,D=A(G=e),E=0,[]}function U(e){return G="",e}function V(e){return g(Q(E-1,_(e===91?e+2:e===40?e+1:e)))}function X(e){while(F=N())if(F<33)L();else break;return R(e)>2||R(F)>3?"":" "}function Z(e,t){while(--t&&L())if(F<48||F>102||F>57&&F<65||F>70&&F<97)break;return Q(e,P()+(t<6&&N()==32&&L()==32))}function _(e){while(L())switch(F){case e:return E;case 34:case 39:return _(e===34||e===39?e:F);case 40:if(e===41)_(e);break;case 92:L();break}return E}function ee(e,t){while(L())if(e+F===47+10)break;else if(e+F===42+42&&N()===47)break;return"/*"+Q(t,E-1)+"*"+d(e===47?e:L())}function re(e){while(!R(N()))L();return Q(e,E)}function ae(e){return U(ce("",null,null,null,[""],e=T(e),0,[0],e))}function ce(e,t,n,a,r,s,i,o,l){var u=0;var c=0;var m=i;var h=0;var p=0;var g=0;var f=1;var b=1;var w=1;var v=0;var x="";var C=r;var E=s;var k=a;var T=x;while(b)switch(g=v,v=L()){case 34:case 39:case 91:case 40:T+=V(v);break;case 9:case 10:case 13:case 32:T+=X(g);break;case 92:T+=Z(P()-1,7);continue;case 47:switch(N()){case 42:case 47:O(te(ee(L(),P()),t,n),l);break;default:T+="/"}break;case 123*f:o[u++]=A(T)*w;case 125*f:case 59:case 0:switch(v){case 0:case 125:b=0;case 59+c:if(p>0&&A(T)-m)O(p>32?se(T+";",a,n,m-1):se(y(T," ","")+";",a,n,m-2),l);break;case 59:T+=";";default:O(k=ne(T,t,n,u,c,r,o,x,C=[],E=[],m),s);if(v===123)if(c===0)ce(T,t,k,k,C,s,m,o,E);else switch(h){case 100:case 109:case 115:ce(e,k,k,a&&O(ne(e,k,k,0,0,r,o,x,r,C=[],m),E),r,E,m,o,a?C:E);break;default:ce(T,k,k,k,[""],E,m,o,E)}}u=c=p=0,f=w=1,x=T="",m=i;break;case 58:m=1+A(T),p=g;default:if(f<1)if(v==123)--f;else if(v==125&&f++==0&&K()==125)continue;switch(T+=d(v),v*f){case 38:w=c>0?1:(T+="\f",-1);break;case 44:o[u++]=(A(T)-1)*w,w=1;break;case 64:if(N()===45)T+=V(L());h=N(),c=A(x=T+=re(P())),v++;break;case 45:if(g===45&&A(T)==2)f=0}}return s}function ne(e,t,a,r,s,i,o,l,d,u,c){var m=s-1;var h=s===0?i:[""];var p=M(h);for(var f=0,b=0,w=0;f<r;++f)for(var v=0,x=C(e,m+1,m=k(b=o[f])),E=e;v<p;++v)if(E=g(b>0?h[v]+" "+x:y(x,/&\f/g,h[v])))d[w++]=E;return H(e,t,a,s===0?n:l,d,u,c)}function te(e,t,n){return H(e,t,n,c,d(J()),C(e,2,-2),0)}function se(e,n,a,r){return H(e,n,a,t,C(e,0,r),C(e,r+1,-1),r)}function ue(t,n){switch(m(t,n)){case 5103:return a+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return a+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return a+t+r+t+e+t+t;case 6828:case 4268:return a+t+e+t+t;case 6165:return a+t+e+"flex-"+t+t;case 5187:return a+t+y(t,/(\w+).+(:[^]+)/,a+"box-$1$2"+e+"flex-$1$2")+t;case 5443:return a+t+e+"flex-item-"+y(t,/flex-|-self/,"")+t;case 4675:return a+t+e+"flex-line-pack"+y(t,/align-content|flex-|-self/,"")+t;case 5548:return a+t+e+y(t,"shrink","negative")+t;case 5292:return a+t+e+y(t,"basis","preferred-size")+t;case 6060:return a+"box-"+y(t,"-grow","")+a+t+e+y(t,"grow","positive")+t;case 4554:return a+y(t,/([^-])(transform)/g,"$1"+a+"$2")+t;case 6187:return y(y(y(t,/(zoom-|grab)/,a+"$1"),/(image-set)/,a+"$1"),t,"")+t;case 5495:case 3959:return y(t,/(image-set\([^]*)/,a+"$1"+"$`$1");case 4968:return y(y(t,/(.+:)(flex-)?(.*)/,a+"box-pack:$3"+e+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+a+t+t;case 4095:case 3583:case 4068:case 2532:return y(t,/(.+)-inline(.+)/,a+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(A(t)-1-n>6)switch(z(t,n+1)){case 109:if(z(t,n+4)!==45)break;case 102:return y(t,/(.+:)(.+)-([^]+)/,"$1"+a+"$2-$3"+"$1"+r+(z(t,n+3)==108?"$3":"$2-$3"))+t;case 115:return~j(t,"stretch")?ue(y(t,"stretch","fill-available"),n)+t:t}break;case 4949:if(z(t,n+1)!==115)break;case 6444:switch(z(t,A(t)-3-(~j(t,"!important")&&10))){case 107:return y(t,":",":"+a)+t;case 101:return y(t,/(.+:)([^;!]+)(;|!.+)?/,"$1"+a+(z(t,14)===45?"inline-":"")+"box$3"+"$1"+a+"$2$3"+"$1"+e+"$2box$3")+t}break;case 5936:switch(z(t,n+11)){case 114:return a+t+e+y(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return a+t+e+y(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return a+t+e+y(t,/[svh]\w+-[tblr]{2}/,"lr")+t}return a+t+e+t+t}return t}function ie(e,t){var n="";var a=M(e);for(var r=0;r<a;r++)n+=t(e[r],r,e,t)||"";return n}function fe(e,a,r,s){switch(e.type){case i:case t:return e.return=e.return||e.value;case c:return"";case n:e.value=e.props.join(",")}return A(r=ie(e.children,s))?e.return=e.value+"{"+r+"}":""}function oe(e){var t=M(e);return function(n,a,r,s){var i="";for(var o=0;o<t;o++)i+=e[o](n,a,r,s)||"";return i}}function le(e){return function(t){if(!t.root)if(t=t.return)e(t)}}function ve(s,i,o,l){if(!s.return)switch(s.type){case t:s.return=ue(s.value,s.length);break;case p:return ie([I(y(s.value,"@","@"+a),s,"")],l);case n:if(s.length)return S(s.props,(function(t){switch(x(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return ie([I(y(t,/:(read-\w+)/,":"+r+"$1"),s,"")],l);case"::placeholder":return ie([I(y(t,/:(plac\w+)/,":"+a+"input-$1"),s,""),I(y(t,/:(plac\w+)/,":"+r+"$1"),s,""),I(y(t,/:(plac\w+)/,e+"input-$1"),s,"")],l)}return""}))}}function memoize(e){var t=Object.create(null);return function(n){if(t[n]===undefined)t[n]=e(n);return t[n]}}var toRules=function e(t,n){var a=-1;var r=44;do{switch(R(r)){case 0:if(r===38&&N()===12){n[a]=1}t[a]+=re(E-1);break;case 2:t[a]+=V(r);break;case 4:if(r===44){t[++a]=N()===58?"&\f":"";n[a]=t[a].length;break}default:t[a]+=d(r)}}while(r=L());return t};var getRules=function e(t,n){return U(toRules(T(t),n))};var fixedElements=new WeakMap;var compat=function e(t){if(t.type!=="rule"||!t.parent||!t.length){return}var n=t.value,a=t.parent;var r=t.column===a.column&&t.line===a.line;while(a.type!=="rule"){a=a.parent;if(!a)return}if(t.props.length===1&&n.charCodeAt(0)!==58&&!fixedElements.get(a)){return}if(r){return}fixedElements.set(t,true);var s=[];var i=getRules(n,s);var o=a.props;for(var l=0,d=0;l<i.length;l++){for(var u=0;u<o.length;u++,d++){t.props[d]=s[l]?i[l].replace(/&\f/g,o[u]):o[u]+" "+i[l]}}};var removeLabel=function e(t){if(t.type==="decl"){var n=t.value;if(n.charCodeAt(0)===108&&n.charCodeAt(2)===98){t["return"]="";t.value=""}}};var defaultStylisPlugins=[ve];var createCache=function e(t){var n=t.key;if(n==="css"){var a=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(a,(function(e){var t=e.getAttribute("data-emotion");if(t.indexOf(" ")===-1){return}document.head.appendChild(e);e.setAttribute("data-s","")}))}var r=t.stylisPlugins||defaultStylisPlugins;var s={};var i;var o=[];{i=t.container||document.head;Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),(function(e){var t=e.getAttribute("data-emotion").split(" ");for(var n=1;n<t.length;n++){s[t[n]]=true}o.push(e)}))}var l;var d=[compat,removeLabel];{var u;var c=[fe,le((function(e){u.insert(e)}))];var m=oe(d.concat(r,c));var h=function e(t){return ie(ae(t),m)};l=function e(t,n,a,r){u=a;h(t?t+"{"+n.styles+"}":n.styles);if(r){p.inserted[n.name]=true}}}var p={key:n,sheet:new StyleSheet({key:n,container:i,nonce:t.nonce,speedy:t.speedy,prepend:t.prepend}),nonce:t.nonce,inserted:s,registered:{},insert:l};p.sheet.hydrate(o);return p};function murmur2(e){var t=0;var n,a=0,r=e.length;for(;r>=4;++a,r-=4){n=e.charCodeAt(a)&255|(e.charCodeAt(++a)&255)<<8|(e.charCodeAt(++a)&255)<<16|(e.charCodeAt(++a)&255)<<24;n=(n&65535)*1540483477+((n>>>16)*59797<<16);n^=n>>>24;t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16)}switch(r){case 3:t^=(e.charCodeAt(a+2)&255)<<16;case 2:t^=(e.charCodeAt(a+1)&255)<<8;case 1:t^=e.charCodeAt(a)&255;t=(t&65535)*1540483477+((t>>>16)*59797<<16)}t^=t>>>13;t=(t&65535)*1540483477+((t>>>16)*59797<<16);return((t^t>>>15)>>>0).toString(36)}var unitlessKeys={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var hyphenateRegex=/[A-Z]|^ms/g;var animationRegex=/_EMO_([^_]+?)_([^]*?)_EMO_/g;var isCustomProperty=function e(t){return t.charCodeAt(1)===45};var isProcessableValue=function e(t){return t!=null&&typeof t!=="boolean"};var processStyleName=memoize((function(e){return isCustomProperty(e)?e:e.replace(hyphenateRegex,"-$&").toLowerCase()}));var processStyleValue=function e(t,n){switch(t){case"animation":case"animationName":{if(typeof n==="string"){return n.replace(animationRegex,(function(e,t,n){cursor={name:t,styles:n,next:cursor};return t}))}}}if(unitlessKeys[t]!==1&&!isCustomProperty(t)&&typeof n==="number"&&n!==0){return n+"px"}return n};function handleInterpolation(e,t,n){if(n==null){return""}if(n.__emotion_styles!==undefined){return n}switch(typeof n){case"boolean":{return""}case"object":{if(n.anim===1){cursor={name:n.name,styles:n.styles,next:cursor};return n.name}if(n.styles!==undefined){var a=n.next;if(a!==undefined){while(a!==undefined){cursor={name:a.name,styles:a.styles,next:cursor};a=a.next}}var r=n.styles+";";return r}return createStringFromObject(e,t,n)}case"function":{if(e!==undefined){var s=cursor;var i=n(e);cursor=s;return handleInterpolation(e,t,i)}break}}if(t==null){return n}var o=t[n];return o!==undefined?o:n}function createStringFromObject(e,t,n){var a="";if(Array.isArray(n)){for(var r=0;r<n.length;r++){a+=handleInterpolation(e,t,n[r])+";"}}else{for(var s in n){var i=n[s];if(typeof i!=="object"){if(t!=null&&t[i]!==undefined){a+=s+"{"+t[i]+"}"}else if(isProcessableValue(i)){a+=processStyleName(s)+":"+processStyleValue(s,i)+";"}}else{if(s==="NO_COMPONENT_SELECTOR"&&"production"!=="production"){throw new Error("Component selectors can only be used in conjunction with @emotion/babel-plugin.")}if(Array.isArray(i)&&typeof i[0]==="string"&&(t==null||t[i[0]]===undefined)){for(var o=0;o<i.length;o++){if(isProcessableValue(i[o])){a+=processStyleName(s)+":"+processStyleValue(s,i[o])+";"}}}else{var l=handleInterpolation(e,t,i);switch(s){case"animation":case"animationName":{a+=processStyleName(s)+":"+l+";";break}default:{a+=s+"{"+l+"}"}}}}}}return a}var labelPattern=/label:\s*([^\s;\n{]+)\s*(;|$)/g;var cursor;var serializeStyles=function e(t,n,a){if(t.length===1&&typeof t[0]==="object"&&t[0]!==null&&t[0].styles!==undefined){return t[0]}var r=true;var s="";cursor=undefined;var i=t[0];if(i==null||i.raw===undefined){r=false;s+=handleInterpolation(a,n,i)}else{s+=i[0]}for(var o=1;o<t.length;o++){s+=handleInterpolation(a,n,t[o]);if(r){s+=i[o]}}labelPattern.lastIndex=0;var l="";var d;while((d=labelPattern.exec(s))!==null){l+="-"+d[1]}var u=murmur2(s)+l;return{name:u,styles:s,next:cursor}};var isBrowser="object"!=="undefined";function getRegisteredStyles(e,t,n){var a="";n.split(" ").forEach((function(n){if(e[n]!==undefined){t.push(e[n]+";")}else{a+=n+" "}}));return a}var insertStyles=function e(t,n,a){var r=t.key+"-"+n.name;if((a===false||isBrowser===false)&&t.registered[r]===undefined){t.registered[r]=n.styles}if(t.inserted[n.name]===undefined){var s=n;do{var i=t.insert(n===s?"."+r:"",s,t.sheet,true);s=s.next}while(s!==undefined)}};function insertWithoutScoping(e,t){if(e.inserted[t.name]===undefined){return e.insert("",t,e.sheet,true)}}function merge(e,t,n){var a=[];var r=getRegisteredStyles(e,a,n);if(a.length<2){return n}return r+t(a)}var createEmotion=function e(t){var n=createCache(t);n.sheet.speedy=function(e){this.isSpeedy=e};n.compat=true;var a=function e(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++){a[r]=arguments[r]}var s=serializeStyles(a,n.registered,undefined);insertStyles(n,s,false);return n.key+"-"+s.name};var r=function e(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++){a[r]=arguments[r]}var s=serializeStyles(a,n.registered);var i="animation-"+s.name;insertWithoutScoping(n,{name:s.name,styles:"@keyframes "+i+"{"+s.styles+"}"});return i};var s=function e(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++){a[r]=arguments[r]}var s=serializeStyles(a,n.registered);insertWithoutScoping(n,s)};var i=function e(){for(var t=arguments.length,r=new Array(t),s=0;s<t;s++){r[s]=arguments[s]}return merge(n.registered,a,classnames(r))};return{css:a,cx:i,injectGlobal:s,keyframes:r,hydrate:function e(t){t.forEach((function(e){n.inserted[e]=true}))},flush:function e(){n.registered={};n.inserted={};n.sheet.flush()},sheet:n.sheet,cache:n,getRegisteredStyles:getRegisteredStyles.bind(null,n.registered),merge:merge.bind(null,n.registered,a)}};var classnames=function e(t){var n="";for(var a=0;a<t.length;a++){var r=t[a];if(r==null)continue;var s=void 0;switch(typeof r){case"boolean":break;case"object":{if(Array.isArray(r)){s=e(r)}else{s="";for(var i in r){if(r[i]&&i){s&&(s+=" ");s+=i}}}break}default:{s=r}}if(s){n&&(n+=" ");n+=s}}return n};var _createEmotion=createEmotion({key:"css"}),css=_createEmotion.css;function i$1(){return(i$1=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}function a$1(e,t){return t||(t=e.slice(0)),e.raw=t,e}var l,s,u,c$1=css(l||(l=a$1(['\n width: 100vw;\n height: 100vh;\n\n .story-book-outer-div {\n .story-div {\n font-family: "Arial", sans-serif;\n font-size: 12px;\n }\n padding-bottom: 500px;\n }\n\n .story-div {\n position: fixed;\n box-sizing: border-box;\n top: 0;\n width: 250px;\n height: 100vh;\n z-index: 999;\n overflow-y: scroll;\n background: white;\n margin-bottom: 32px;\n }\n\n .header {\n padding: 24px 0 16px 16px;\n margin-bottom: 24px;\n color: white;\n background: #333;\n cursor: pointer;\n\n h2 {\n letter-spacing: 3px;\n font-weight: 400;\n }\n }\n\n .parentStoryList {\n list-style: none;\n padding-left: 16px;\n\n summary {\n margin-bottom: 4px;\n }\n }\n .parentStory {\n cursor: pointer;\n }\n .parentStory.selected {\n font-weight: bold;\n }\n\n .subStory {\n font-size: 12px;\n cursor: pointer;\n line-height: 1.5em;\n margin-top: 4px;\n\n a {\n display: block;\n padding: 4px 4px 4px 16px;\n }\n }\n .subStory:hover {\n background-color: #eee;\n }\n .subStory.selected {\n background-color: lightgreen;\n }\n\n .component {\n padding: 24px 16px;\n }\n\n h4.group-header {\n margin: 8px 0;\n text-transform: uppercase;\n font-weight: 600;\n font-size: 14px;\n color: #575757;\n }\n\n .group-wrapper {\n margin-bottom: 24px;\n }\n\n .dynamic-display-wrapper {\n position: fixed;\n display: flex;\n flex-direction: column;\n bottom: 0;\n left: 100%;\n padding: 16px;\n z-index: 1000;\n background: white;\n transform: translateX(-100%);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n\n & > :not(:first-child) {\n margin-top: 12px;\n }\n\n p {\n font-size: 12px;\n margin: 0;\n padding: 0;\n }\n\n .button-wrapper {\n display: flex;\n\n & > :not(:first-child) {\n margin-left: 12px;\n }\n }\n\n & button {\n border: 1px solid #eaeaea;\n background: white;\n border-radius: 4px;\n color: #777;\n padding: 4px 12px;\n justify-content: center;\n align-items: center;\n text-align: center;\n\n &.active {\n background: #555;\n border-color: #555;\n color: white;\n }\n }\n }\n'])));function d$1(e,t){var n,a=t.story.title.split("/"),r=a[1]?a[0]:"_";return i$1({},e,((n={})[r]=[].concat(e[r]||[],[{story:i$1({},t.story,{title:a[1]||a[0]}),subs:t.subs}]).sort((function(e,t){return e.story.title.localeCompare(t.story.title)})),n))}function p$1(e){return{story:e.default,subs:function(e,t){if(null==e)return{};var n,a,r={},s=Object.keys(e);for(a=0;a<s.length;a++)t.indexOf(n=s[a])>=0||(r[n]=e[n]);return r}(e,["default"])}}function f(e,t){var n,a;if(e){var r=decodeURIComponent(e).split("-"),s=r[1],i=r[2],o=null==t||null==(n=t[r[0]])?void 0:n.find((function(e){return e.story.title===s})),l=null==o||null==(a=o.subs)?void 0:a[i],d={key:e,story:l,parent:null==o?void 0:o.story,label:null==l?void 0:l.name};return d.key&&d.story&&d.parent&&d.label?d:void 0}}function y$1(e,t){var n=t.h,a=void 0===n?h:n,r=t.title,i=void 0===r?"Stencilbook":r,o=t.homepage,l=void 0===o?a("h3",null,"Select a story!"):o,d=t.addons,c=void 0===d?[]:d,m=useMemo((function(){return e.map(p$1).reduce(d$1,{_:[]})}),e),p=decodeURIComponent(window.location.hash).replace("#",""),g=useState(f(p,m)),b=g[0],w=g[1],v=null==b?void 0:b.key,x=useState(!0),y=x[0],C=x[1],E=useState(!1),k=E[0],A=E[1],T=function(){return a("div",{class:"dynamic-display-wrapper"},a("button",{class:k?"active":"",onClick:function(){return A((function(e){return!e}))}},"Toggle Dark Background"),a("button",{class:y?"active":"",onClick:function(){return C((function(e){return!e}))}},"Toggle Sidebar"))},q=css(s||(s=a$1(["\n max-width: ",";\n margin-left: ",";\n "])),"1124px",y?"250px":"0px"),R=css(u||(u=a$1(["\n display: none;\n "])));document.body.style.backgroundColor=k?"#232323":"#fafafa";var D=function(e){var t=e.selected,n=c.reduce((function(e,n){return function(){return a(n,{story:i$1({},t)},a(e,null))}}),null==t?void 0:t.story);return a(n,null)},_=function(){return a("div",{class:"story-book-outer-div"},a("div",{class:"story-div "+(y?"":R)},a("div",{class:"header",onClick:function(){w(void 0)}},a("h2",null,i)),a("ul",{class:"parentStoryList"},Object.keys(m).sort().map((function(e){return a("div",{class:"group-wrapper"},"_"!==e&&a("h4",{class:"group-header"},e),m[e].map((function(t){return a("li",{class:"parentStory"},a("details",{style:{marginBottom:"10px"}},a("summary",{style:{outline:"none"}},t.story.title),t.subs&&Object.keys(t.subs).map((function(n){var r=e+"-"+t.story.title+"-"+n,s=t.subs[n].storyName||lodash_startcase(n);return a("div",{class:"subStory "+(v===r?"selected":"")},a("a",{onClick:function(){return function(e){window.location.hash=encodeURIComponent(e),w(f(e,m))}(r)}},s))}))))})))})))),a(T,null),a("div",{class:"component "+q},!v&&l,v&&a("div",null,a("h3",null,b.label),a(D,{selected:b}))))};return{class:c$1,children:a(_,null),View:_,selected:b}}var scenario='@author:noah\n@owner:noah\nFeature: Share Button\n\n The share button redirects users to a platform where they can share their referral link\n\n @motivating\n @ui\n Scenario Outline: Share button displays for various platforms\n Given the share button\'s medium prop is "<medium>"\n And the button\'s child is text saying "BUTTON_TEXT"\n When the share button is rendered\n Then the button has text "BUTTON_TEXT"\n And the button is <colour>\n And it displays an <icon> beside the text\n And clicking the button redirects to an appropriate link\n Examples:\n | medium | colour | icon |\n | facebook | #1877f2 | facebook logo |\n | twitter | #1da1f2 | twitter logo |\n | email | #666666 | envelope |\n | direct | brand colour | paper plane |\n | linkedin | #0077b5 | linkedIn logo |\n | sms | #34DA50 | chat bubble |\n | fbmessenger | #0084ff | messenger logo |\n | whatsapp | #25d366 | whatsapp logo |\n | linemessenger | #00B300 | linemessenger logo |\n | pinterest | #e60023 | pinterest logo |\n\n @minutia\n @ui\n Scenario Outline: Default icons can be overwritten\n Given a share button for any medium with <iconPropValue>\n When the share button is rendered\n Then it displays a <iconPropValue> instead of the share mediums default icon\n Examples:\n | iconPropValue |\n | basket |\n | bluetooth |\n | bandaid |\n\n @motivating\n @ui\n Scenario Outline: Default share medium colours can be overwritten\n Given a share button for any medium with <backgroundColourPropValue>\n When the share button is rendered\n Then the share button is <backgroundColourPropValue>\n Examples:\n | backgroundColourPropValue |\n | blue |\n | black |\n | green |\n\n @minutia\n @ui\n Scenario Outline: Share medium icons and text can be hidden\n Given a share button with <prop> <value>\n When the share button is rendered\n Then <element> is hidden\n Examples:\n | prop | value | element |\n | hideicon | true | icon |\n | hidetext | true | text |\n\n @minutia\n @ui\n Scenario Outline: Icons can be on either side of the text\n Given a share button with <iconslotPropValue>\n When the share button is rendered\n Then the icon is displayed to the <direction> of the text\n Examples:\n | iconslotPropValue | direction |\n | suffix | right |\n | prefix | left |\n | prefix | left |\n\n @minutia\n Scenario: Unsupported browsers hide native share buttons\n Given the share button\'s medium prop is "direct"\n And your browser does not support the Web Share API\n Then the share button is hidden\n\n @minutia\n Scenario: SMS share buttons are hidden on non Android and iOS devices\n Given the share button\'s medium is "sms"\n And the share button is being viewed on a device which is not an Android or iOS device\n Then the share button is hidden\n\n @motivating\n Scenario: Facebook share buttons uses SquatchAndroid sharing features\n Given the share button\'s medium is "facebook"\n And the share button is being viewed in a web view with the SquatchAndroid API\n And the Facebook app is available\n Then tapping the share button opens the phone\'s Facebook app\n And a share activity is opened with the share link prefilled\n\n @motivating\n Scenario: SquatchAndroid falls back to the Facebook website if no app is available\n Given the share button\'s medium is "facebook"\n And the share button is being viewed in a web view with the SquatchAndroid API\n And the Facebook app is not available\n Then tapping the share button opens the the Facebook mobile site in the device\'s browser\n And a share activity is opened with the share link prefilled\n\n @minutia\n Scenario: A supplied program ID is used if available\n Given the program id is supplied to the component in the "programId" prop\n Then the program ID in the "programId" prop is used to retrieve share links\n\n @minutia\n Scenario: The program ID is automatically fetched from context\n Given the program id is not supplied to the component in the "programId" prop\n Then the program ID is retrieved from context';var ShareButton_stories={title:"Components/Share Button",parameters:{scenario:scenario}};var WithIconPrefix=function(){var e={medium:"whatsapp",iconslot:"prefix"};return h(ShareButtonView,Object.assign({},e),"Share")};var WithIconSuffix=function(){var e={medium:"whatsapp",iconslot:"suffix"};return h(ShareButtonView,Object.assign({},e),"Share")};var WithIconOverride=function(){var e={medium:"facebook",icon:"person-badge"};return h(ShareButtonView,Object.assign({},e),"Share")};var TextStyle=function(){var e={medium:"facebook",type:"text"};return h(ShareButtonView,Object.assign({},e),"Share")};var WithoutIcon=function(){var e={medium:"facebook",hideicon:true};return h(ShareButtonView,Object.assign({},e),"Share")};var WithoutText=function(){var e={medium:"facebook",hidetext:true};return h(ShareButtonView,Object.assign({},e),"Share")};var TextStyleWithoutIcon=function(){var e={medium:"facebook",type:"text",hideicon:true};return h(ShareButtonView,Object.assign({},e),"Share")};var WithCustomColors=function(){var e={medium:"facebook",type:"text",backgroundcolor:"red",textcolor:"yellow",iconslot:"prefix"};return h(ShareButtonView,Object.assign({},e),"Facebook")};var WithCustomBorderRadius=function(){var e={medium:"facebook",type:"text",borderradius:8,iconslot:"prefix"};return h(ShareButtonView,Object.assign({},e),"Facebook")};var FullStackIcon=function(){return h("div",null,h("sqm-share-button",{medium:"facebook"},h("span",null,"Facebook")),h("br",null),h("sqm-share-button",{medium:"email"},h("span",null,"Email")))};var AllMediums=function(){return h("div",null,h("sqm-share-button",{medium:"facebook"},h("span",null,"Facebook")),h("br",null),h("sqm-share-button",{medium:"email"},h("span",null,"Email")),h("br",null),h("sqm-share-button",{medium:"whatsapp"},h("span",null,"WhatsApp")),h("br",null),h("sqm-share-button",{medium:"linkedin"},h("span",null,"Linkedin")),h("br",null),h("sqm-share-button",{medium:"twitter"},h("span",null,"Twitter")),h("br",null),h("sqm-share-button",{medium:"pinterest"},h("span",null,"Pinterest")),h("br",null),h("sqm-share-button",{medium:"fbmessenger"},h("span",null,"Messenger")),h("br",null),h("sqm-share-button",{medium:"sms"},h("span",null,"SMS")),h("br",null),h("sqm-share-button",{medium:"linemessenger"},h("span",null,"Line Messenger")),h("br",null),h("sqm-share-button",{medium:"direct"},h("span",null,"Share")))};var ShareButton=Object.freeze({__proto__:null,default:ShareButton_stories,WithIconPrefix:WithIconPrefix,WithIconSuffix:WithIconSuffix,WithIconOverride:WithIconOverride,TextStyle:TextStyle,WithoutIcon:WithoutIcon,WithoutText:WithoutText,TextStyleWithoutIcon:TextStyleWithoutIcon,WithCustomColors:WithCustomColors,WithCustomBorderRadius:WithCustomBorderRadius,FullStackIcon:FullStackIcon,AllMediums:AllMediums});var scenario$1='@author:derek\n@owner:derek\nFeature: Empty State\n\n The sqm-empty component acts as a universal template for the empty states that are used accross our mint components.\n\n @motivating\n @ui\n Scenario: The empty state displays an image, a header and description text\n Given a empty component with the following props\n | prop | value |\n | empty-state-image | https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png |\n | empty-state-header | My Custom Empty State |\n | empty-state-text | Description about why this empty state is being shown! |\n And it is wrapped by a component with an "empty" slot\n When a user views a component using the empty state\n Then it is displayed in the "empty" slot\n And they see an image\n And below they see "My Custom Empty State"\n And below they see "Description about why this empty state is being shown!"\n And the images/text are centered aligned';var EmptyState_stories={title:"Components/Empty State",parameters:{scenario:scenario$1}};var defaultStyles={usersheading:"TOP REFERRERS",statsheading:"NEW CUSTOMERS"};var Empty=function(){return h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"})};var defaultElements={empty:h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"}),loadingstate:h("slot",{name:"loading"},h("table",null,__spreadArrays(Array(10)).map((function(){return h("tr",null,h("td",null,h("sl-skeleton",null)))}))))};var SlottedIntoComponent=function(){var e={states:{loading:false,hasLeaders:false,styles:__assign({},defaultStyles)},data:{rankType:"rowNumber",leaderboard:[],showUser:true,rowNumber:10,userRank:{firstName:"Kutay",lastInitial:"C",value:8,rowNumber:11,rank:23}},elements:__assign({},defaultElements)};return h(LeaderboardView,Object.assign({},e))};var EmptyState=Object.freeze({__proto__:null,default:EmptyState_stories,Empty:Empty,SlottedIntoComponent:SlottedIntoComponent});var scenario$2='@author:johan\n@owner:johan\nFeature: Share Link\n\n The share link component is a box that allows users to see and copy their share link for a given program\n\n Background: Environment\n Given there is a valid program ID in the environment\n And there is a valid user ID and account ID in the environment\n\n @motivating\n Scenario: A Users sharelink can be copied to their clipboard\n Given tooltipText is "hello tooltip"\n When the component renders\n Then there is a textbox with the user\'s share link\n When the clipboard icon is clicked\n Then the link is copied to clipboard\n And a tooltip appears for ~1 second\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip\'s lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip appears for ~2 seconds\n\n @minutia\n Scenario: Demo\n Given isDemo() returns true\n Then the share link is "https://www.example.com/sharelink/abc"\n And the component won\'t be interactive\n And the tooltip is hidden\n\n @minutia\n Scenario: Program ID can be sourced from prop\n Given the programId prop is set to "program-a"\n And window.widgetIdent.programId is set to "program-b"\n When the component renders\n Then the share link is for "program-a"\n\n @minutia\n Scenario: Program ID can be sourced from window\n Given the programId prop is unset\n And window.widgetIdent.programId is set to "program-b"\n When the component renders\n Then the share link is for "program-b"\n\n @minutia\n Scenario: An analytic event is fired when a user copies their sharelink\n Given a user viewing the share link component\n And the component is rendered for "program-a"\n When they click to copy their link\n Then an "USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT" analytic event is fired\n And it is for "program-a"\n And it has share medium "DIRECT"\n\n\n @ui\n Scenario Outline: user can edit the alignment of the share link text\n Given a user is editing the share link component\n Then they see "Align text" props\n And the default value is "left"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the share link component\n Then they see "Style" props\n And the default value is "icon"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n';var ShareLink_stories={title:"Components/Share Link",parameters:{scenario:scenario$2}};var Default=function(){var e={copyString:"https://noah.example.com",open:false,tooltiptext:"Copied!"};return h(CopyTextView,Object.assign({},e))};var Tooltip=function(){var e={copyString:"https://noah.example.com",tooltiptext:"Some text for the tooltip",open:true};return h(CopyTextView,Object.assign({},e))};var Disabled=function(){var e={copyString:"https://noah.example.com",disabled:true,open:true,tooltiptext:"Copied!"};return h(CopyTextView,Object.assign({},e))};var Error$1=function(){var e={copyString:"https://noah.example.com",disabled:true,open:true,tooltiptext:"Copied!",error:true};return h(CopyTextView,Object.assign({},e))};var TextAlignCenter=function(){return h("sqm-share-link",{textAlign:"center"})};var TextAlignRight=function(){return h("sqm-share-link",{textAlign:"right"})};var CopyButton=function(){return h(CopyTextView,Object.assign({},{copyString:"https://noah.example.com",open:false,tooltiptext:"Copied!",isCopyIcon:false}))};var CopyButtonBelow=function(){return h(CopyTextView,Object.assign({},{copyString:"https://noah.example.com",open:false,tooltiptext:"Copied!",buttonStyle:"button-below"}))};var FullStack=function(){return h("sqm-share-link",null)};var ShareLink=Object.freeze({__proto__:null,default:ShareLink_stories,Default:Default,Tooltip:Tooltip,Disabled:Disabled,Error:Error$1,TextAlignCenter:TextAlignCenter,TextAlignRight:TextAlignRight,CopyButton:CopyButton,CopyButtonBelow:CopyButtonBelow,FullStack:FullStack});var scenario$3='@author:sam\n@owner:sam\nFeature: Big Stat\n\n Big stat is a component for displaying a statistic as a large number with a label\n\n @minutia\n Scenario: Demo hook retrieves label using stat pattern\n Given isDemo() returns true\n And the component renders with props:\n | type |\n | /referralsCount |\n Then the label is: "REFERRALS - COUNT"\n And the value is: "12345"\n\n @minutia\n Scenario: Demo hook falls back to default label on invalid path\n Given isDemo() returns true\n And the component renders with props:\n | type |\n | a bad path |\n Then the label is: "Demo Label"\n And the value is: "12345"\n\n @motivating\n Scenario: Displays error on unrecognized path\n Given isDemo() returns false\n And the component renders with props:\n | type |\n | /(doesNotExistNopeNotHere) |\n Then the label is: "BAD PROP TYPE"\n And the value is: "!!!"\n\n @motivating\n Scenario Outline: Label displays correctly\n Given the type prop is set to <type>\n When the component renders\n Then the label is <label>\n Given isDemo() returns true\n When the component renders\n Then the label is <inferredLabel>\n Examples:\n | path | label | inferredLabel |\n | rewardsAssigned | Rewards Earned | Rewards Assigned |\n | rewardsRedeemed | Rewards Paid | Rewards Redeemed |\n | rewardsAvailable | Rewards Available | Rewards Available |\n | referralsCount | Referrals - Count | Referrals Count |\n | referralsMonth | Referrals - This Month | Referrals Month |\n | referralsWeek | Referrals - This Week | Referrals Week |\n | rewardsCount | Rewards - Count | Rewards Count |\n | rewardsMonth | Rewards - This Month | Rewards Month |\n | rewardsWeek | Rewards - This Week | Rewards Week |\n | rewardBalance | Balance - Credit Earned | Reward Balance |\n | customField | Custom Fields | Custom Fields |\n | programGoals | Program Goals | Program Goals |\n\n @motivating\n Scenario: Display user\'s credit\n Given isDemo() returns false\n And the user has earned 34 COFFEE from the program\n And the component renders with props:\n | type |\n | /rewardBalance/CREDIT/COFFEE/prettyValue |\n Then the label is: "Balance - Credit Earned"\n And the value is: "34 COFFEE"\n\n @minutia\n Scenario: Memoizes most recent query\n Given isDemo() returns false\n And the component\'s type prop is set to a variable named PATH\n And PATH is "/referralsWeek"\n Then the component shows a loading state before showing the result\n When the component reloads given some external reload\n Then the component doesn\'t show a loading state\n When PATH is set to "/rewardsWeek"\n Then the component shows a loading state before showing the result\n When PATH is set to "/referralsWeek"\n Then the component shows a loading state before showing the result\n\n @motivating\n Scenario: Stat has a loading state\n Given isDemo() returns false\n And the component\'s stat type prop is valid\n When the component renders\n Then The stat value displays "..."\n And when the stat query is completed\n And the stat value displays a value\n\n @motivating\n Scenario Outline: Program Goal stat requires metricType and goalId\n Given the statType prop is <statType>\n When the component renders\n Then the label is <label>\n And the stat value is <InvalidStatValue>\n Examples:\n | statType | label | InvalidStatValue |\n | /programGoals | BAD PROP TYPE | true |\n | /programGoals/count | BAD PROP TYPE | true |\n | /programGoals/conversionCount | BAD PROP TYPE | true |\n | /programGoals/My-Goal | BAD PROP TYPE | true |\n | /programGoals/count/My-Goal | Program Goals | false |\n | /programGoals/conversionCount/My-Goal | Program Goals | false |\n\n @motivating\n Scenario Outline: rewardCountFiltered supports many formats\n Given the statType begins with "/rewardCountFiltered"\n When the component renders with <statType>\n Then the stat <mayRender> a value\n Examples:\n | statType | mayRender |\n | /rewardsCountFiltered | renders |\n | /rewardsCountFiltered/COFFEE | doesn\'t render |\n | /rewardsCountFiltered/global | renders |\n | /rewardsCountFiltered/INTEGRATION | renders |\n | /rewardsCountFiltered/INTEGRATION/global | renders |\n | /rewardsCountFiltered/PCT_DISCOUNT | renders |\n | /rewardsCountFiltered/PCT_DISCOUNT/global | renders |\n | /rewardsCountFiltered/CREDIT | renders |\n | /rewardsCountFiltered/CREDIT/COFFEE | renders |\n | /rewardsCountFiltered/CREDIT/global | renders |\n | /rewardsCountFiltered/CREDIT/COFFEE/PENDING | renders |\n | /rewardsCountFiltered/CREDIT/COFFEE/AVAILABLE | renders |\n | /rewardsCountFiltered/CREDIT/CASH%2FUSD | renders |\n | /rewardsCountFiltered/CREDIT/CASH%2FUSD/global | renders |\n | /rewardsCountFiltered/CREDIT/CASH%2FUSD/PENDING | renders |\n | /rewardsCountFiltered/CREDIT/CASH%2FUSD/PENDING/global | renders |\n\n @motivating\n Scenario Outline: Program Goals and Reward units with currencies must be encoded\n Given the statType is <statType>\n When the stat is queried\n Then the stat is filtered by <decodedFilter>\n And a value <mayBe> rendered\n Examples:\n | statType | decodedFilter | may |\n | /rewardBalance/CREDIT/COFFEE | COFFEE | is |\n | /rewardBalance/CREDIT/CENTS | CENTS | is |\n | /rewardBalance/CREDIT/COFFEE%2FUSD | COFFEE/USD | is |\n | /rewardBalance/CREDIT/COFFEE/USD | COFFEE | is |\n | /rewardBalance/CREDIT/CASH | CASH | is |\n | /rewardBalance/CREDIT/CASH/USD | CASH | is |\n | /rewardBalance/CREDIT/CASH%2FUSD | CASH/USD | is |\n | /programGoals/count/My-Goal | My-Goal | is |\n | /programGoals/count/My-Goal/referrals | | isn\'t |\n | /programGoals/count/My-Goal%2Freferrals | My-Goal/referrals | is |\n\n @motivating\n Scenario Outline: User custom fields can be queried\n Given the StatType is <statType>\n When the stat is queried\n Then the value matches that of the users <customField>\n Examples:\n | statType | customField |\n | /customFields/videosShared | videosShared |\n | /customFields/totalPurchaseCount | totalPurchaseCount |\n\n @motivating\n Scenario Outline: Some stats can use a global value instead of filtered by program\n Given the stat <statName>\n Then the global value <mayBe> available\n Examples:\n | statName | mayBe |\n | referralsCount | isn\'t |\n | referralsMonth | isn\'t |\n | referralsWeek | isn\'t |\n | rewardsCount | is |\n | rewardsCountFiltered | is |\n | integrationRewardsCountFiltered | is |\n | rewardsMonth | is |\n | rewardsWeek | is |\n | rewardsAssigned | is |\n | rewardsRedeemed | is |\n | rewardsRedeemedWeek | is |\n | rewardsRedeemedMonth | is |\n | rewardsPending | is |\n | rewardsAvailable | is |\n | rewardBalance | is |\n\n @motivating\n Scenario Outline: referralsCount stat can be filtered by Converted and Started\n Given statType prop is <statType>\n Then the stat returned has a <filter>\n Examples:\n | statType | filter |\n | /referralsCount | { programId_eq: programId } |\n | /referralsCount/converted | { programId_eq: programId, dateConverted_exists: true } |\n | /referralsCount/started | { programId_eq: programId, dateConverted_exists: false } |\n\n @motivating\n Scenario: Program context is used by default to source the programId used for queries\n Given a valid "statType"\n And its not a global stat\n And the stat is loaded in an environment for "program-a"\n And the "program-id" prop is not used\n When the stat is queried\n Then the query is filtered by "{ programId_eq: \'program-a\' }"\n And only results from "program-a" are returned\n\n @motivating\n Scenario Outline: ProgramId can be specified to overwrite the program context default\n Given a valid "statType"\n And its not a global stat\n And the "program-id" prop has <value>\n When the stat is queried\n Then the query has a <filter>\n And only results from <value> are returned\n Examples:\n | value | filter |\n | program-b | { programId_eq: "program-b" } |\n | program-c | { programId_eq: "program-c" } |\n\n\n @motivating\n Scenario: "/rewardsReedemedWeek" stat shows rewards that have been redeemed this week\n Given a user reeemed the following rewards\n | reward | dateRedeemed | programId |\n | $1.00 USD | 2023-08-18 | A |\n | $1.00 CAD | 2023-08-18 | A |\n | $1.00 AUD | 2023-08-18 | A |\n | $1.00 USD | 2023-08-10 | A |\n | $20.00 USD | 2023-08-18 | B |\n | $20.00 CAD | 2023-08-18 | B |\n | $20.00 AUD | 2023-08-18 | B |\n | $20.00 USD | 2023-08-01 | B |\n | $20.00 GBP | 2023-08-01 | B |\n | $20.00 GBP | 2023-08-20 | |\n And the current date is "2023-08-22"\n And the program of the stat is <programId>\n And the statType is <statType>\n Then the stat displays <statValue>\n | programId | statType | statValue |\n | A | /rewardsReedemedWeek/CREDIT/USD | USD1.00 |\n | A | /rewardsReedemedWeek/CREDIT/CAD | CAD1.00 |\n | A | /rewardsReedemedWeek/CREDIT/AUD | AUD1.00 |\n | B | /rewardsReedemedWeek/CREDIT/USD | USD20.00 |\n | B | /rewardsReedemedWeek/CREDIT/CAD | CAD20.00 |\n | B | /rewardsReedemedWeek/CREDIT/AUD | AUD20.00 |\n | N/A | /rewardsReedemedWeek/CREDIT/USD/global | USD21.00 |\n | N/A | /rewardsReedemedWeek/CREDIT/CAD/global | CAD21.00 |\n | N/A | /rewardsReedemedWeek/CREDIT/GBP/global | GBP20.00 |\n\n @motivating\n Scenario: "/rewardsReedemedMonth" stat shows rewards that have been redeemed this month\n Given a user reeemed the following rewards\n | reward | dateRedeemed | programId |\n | $1.00 USD | 2023-08-18 | A |\n | $1.00 CAD | 2023-08-18 | A |\n | $1.00 AUD | 2023-08-18 | A |\n | $1.00 USD | 2023-07-31 | A |\n | $20.00 USD | 2023-08-18 | B |\n | $20.00 CAD | 2023-08-18 | B |\n | $20.00 AUD | 2023-08-18 | B |\n | $20.00 USD | 2023-08-01 | B |\n | $20.00 GBP | 2023-08-01 | B |\n | $20.00 GBP | 2023-08-20 | |\n | $20.00 GBP | 2023-07-31 | |\n And the current date is "2023-08-22"\n And the program of the stat is <programId>\n And the statType is <statType>\n Then the stat displays <statValue>\n | programId | statType | statValue |\n | A | /rewardsReedemedMonth/CREDIT/USD | USD1.00 |\n | A | /rewardsReedemedMonth/CREDIT/CAD | CAD1.00 |\n | A | /rewardsReedemedMonth/CREDIT/AUD | AUD1.00 |\n | B | /rewardsReedemedMonth/CREDIT/USD | USD20.00 |\n | B | /rewardsReedemedMonth/CREDIT/CAD | CAD20.00 |\n | B | /rewardsReedemedMonth/CREDIT/AUD | AUD20.00 |\n | N/A | /rewardsReedemedMonth/CREDIT/USD/global | USD41.00 |\n | N/A | /rewardsReedemedMonth/CREDIT/CAD/global | CAD21.00 |\n | N/A | /rewardsReedemedMonth/CREDIT/GBP/global | GBP40.00 |\n\n\n @landmine\n Scenario Outline: Rewards redeemed by week and month stats only include rewards that have been fully redeemed\n Given statType prop is <statType>\n And the user has fully redeemed a $50.00 USD reward\n And the user has redeemed <amountRedeemed> of a $50.00 USD reward\n Then the stat displays <statValue>\n Examples:\n | statType | amountRedeemed | statValue |\n | /rewardsRedeemed/CREDIT/USD/global | $0.00 | $50.00 |\n | /rewardsRedeemedWeek/CREDIT/USD/global | $0.00 | $50.00 |\n | /rewardsRedeemedMonth/CREDIT/USD/global | $0.00 | $50.00 |\n | /rewardsRedeemed/CREDIT/USD/global | $25.00 | $75.00 |\n | /rewardsRedeemedWeek/CREDIT/USD/global | $25.00 | $50.00 |\n | /rewardsRedeemedMonth/CREDIT/USD/global | $25.00 | $50.00 |\n | /rewardsRedeemed/CREDIT/USD/global | $50.00 | $100.00 |\n | /rewardsRedeemedWeek/CREDIT/USD/global | $50.00 | $100.00 |\n | /rewardsRedeemedMonth/CREDIT/USD/global | $50.00 | $100.00 |\n\n @landmine\n Scenario Outline: Rewards redeemed by week and month stats can only count up to 1000 redeemed rewards during the period\n Given statType prop is <statType>\n And the user has fully redeemed 1001 $1.00 USD rewards in the past <timeframe>\n Then the stat displays <statValue>\n Examples:\n | statType | timeframe | statValue |\n | /rewardsRedeemed/CREDIT/USD/global | N/A | $1001.00 |\n | /rewardsRedeemedWeek/CREDIT/USD/global | week | $1000.00 |\n | /rewardsRedeemedMonth/CREDIT/USD/global | month | $1000.00 |\n';var BigStat_stories={title:"Components/Big Stat",parameters:{scenario:scenario$3}};var Default$1=function(){var e={value:99e4,statvalue:"9.900,00",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var LeftAlign=function(){var e={value:500,statvalue:"500",alignment:"left",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var RightAlign=function(){var e={value:500,statvalue:"500",alignment:"right",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var FlexReverse=function(){var e={value:500,statvalue:"500",flexReverse:true,loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var FlexReverseRight=function(){var e={value:500,statvalue:"500",flexReverse:true,alignment:"right",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var FlexReverseLeft=function(){var e={value:500,statvalue:"500",flexReverse:true,alignment:"left",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var NoStatValue=function(){var e={value:0,statvalue:"...",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var InvalidStatValue=function(){var e={value:0,statvalue:"!!!",loading:false};return h(BigStatView,Object.assign({},e),"Big stat")};var MultipleStats=function(){return h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/referralsCount"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance"))))};var BigStat=Object.freeze({__proto__:null,default:BigStat_stories,Default:Default$1,LeftAlign:LeftAlign,RightAlign:RightAlign,FlexReverse:FlexReverse,FlexReverseRight:FlexReverseRight,FlexReverseLeft:FlexReverseLeft,NoStatValue:NoStatValue,InvalidStatValue:InvalidStatValue,MultipleStats:MultipleStats});var scenario$4='@owner:noah\n@author:noah\nFeature: Leaderboard\n\n\tThe leaderboard supports three main cases\n\t- Top Started Referrers\n\t- Top Converted Referrers\n\t- Top Point Earners\n\tTo display these different types of leaderboards it uses the backends pre-canned options.\n\tThe backend supports filtering on programId and interval, programId is sourced from program context.\n\n\tBackground: A user exists\n\t\tGiven a user\n\t\tAnd they are viewing the leaderboard\n\n\t@motivating\n\tScenario Outline: Two types of referrals leaderboards can be displayed\n\t\tGiven a leaderboard has prop "leaderboard-type" with <value>\n\t\tAnd there are started referrals on the tenant\n\t\tAnd there are started converted on the tenant\n\t\tWhen the user views the leaderboard\n\t\tThen they see the referral <referralType> leaderboard\n\t\tExamples:\n\t\t\t| value | referralType |\n\t\t\t| topStartedReferrers | started |\n\t\t\t| topConvertedReferrers | converted |\n\n\t@motivating\n\tScenario: The top point earners leaderboard can be displayed\n\t\tGiven a leaderboard has prop "leaderboard-type" with value "topPointEarners"\n\t\tAnd there are users with points\n\t\tWhen the user views the leaderboard\n\t\tThen they see the top point earners leaderboard\n\t\tAnd text values are displayed for point counts\n\n\t@minutia\n\tScenario Outline: Reward pretty value is used on the top point earners leaderboard\n\t\tGiven top point earners leaderboard\n\t\tAnd the "POINT" reward unit has a pretty value for the following locales\n\t\t\t| locale |\n\t\t\t| en |\n\t\t\t| fr |\n\t\t\t| tr |\n\t\tWhen the user views the leaderboard\n\t\tAnd they have <locale>\n\t\tThen they see the translated pretty value in the stat value column\n\n\t@motivating\n\tScenario Outline: Program Context is used by default to filter leaderboard results\n\t\tGiven a <leaderboardType> leaderboard loaded with program context for "my-program"\n\t\tWhen the user views the leaderboard\n\t\tThen they only see <results> from "my-program"\n\t\tExamples:\n\t\t\t| leaderboardType | results |\n\t\t\t| topStartedReferrers | started referrals |\n\t\t\t| topConvertedReferrers | converted referrals |\n\t\t\t| topPointEarners | points earned |\n\n\t@motivating\n\tScenario Outline: Program Id context can be overwritten with a prop\n\t\tGiven a <leaderboardType> leaderboard has prop "program-Id" with value "my-test-program"\n\t\tWhen the user views the leaderboard\n\t\tThen they only see <results> from "my-test-program"\n\t\tExamples:\n\t\t\t| leaderboardType | results |\n\t\t\t| topStartedReferrers | started referrals |\n\t\t\t| topConvertedReferrers | converted referrals |\n\t\t\t| topPointEarners | points earned |\n\n\t@motivating\n\tScenario Outline: Global leaderboards can be displayed by clearing program context\n\t\t#This is important for clients with use cases like StaffTracks global points leaderboard\n\t\t#This can also be done with a program section in a similar manner\n\t\tGiven a <leaderboardType> leaderboard has prop "program-Id" with value ""\n\t\tWhen the user views the leaderboard\n\t\tThen they see global <results>\n\t\tExamples:\n\t\t\t| leaderboardType | results |\n\t\t\t| topStartedReferrers | started referrals |\n\t\t\t| topConvertedReferrers | converted referrals |\n\t\t\t| topPointEarners | points earned |\n\n\t@motivating\n\tScenario: Leaderboard results are shown in descending order\n\t\tGiven there are leaderboard results\n\t\tWhen the user views the leaderboard\n\t\tThen they see up to the 10 top leaderboard results\n\t\tAnd leaderboard is in descending order\n\n\t@motivating\n\tScenario Outline: Leaderboard results can be filtered with a time interval\n\t\tGiven a <leaderboardType> leaderboard\n\t\tAnd it has prop "interval" with value "2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z"\n\t\tWhen the user views the leaderboard\n\t\tThen they only see <results> from within "2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z"\n\t\tExamples:\n\t\t\t| leaderboardType | results |\n\t\t\t| topStartedReferrers | started referrals |\n\t\t\t| topConvertedReferrers | converted referrals |\n\t\t\t| topPointEarners | points earned |\n\n\t@motivating\n\tScenario Outline: Leaderboard rank type can be configured\n\t\tGiven a leaderboard has prop "rank-type" with <value>\n\t\tWhen the user views the leaderboard\n\t\tThen their leaderboard rank is their <rank>\n\t\tExamples:\n\t\t\t| value | rank |\n\t\t\t| rowNumber | row number |\n\t\t\t| denseRank | dense rank |\n\t\t\t| rank | rank |\n\n\t@minutia\n\tScenario Outline: The max number of leaderboard rows displayed can be configured but defaults to 10\n\t\tGiven a leaderboard has prop "max-rows" with <value>\n\t\tAnd the leaderboard has <resultCount>\n\t\tWhen the user views the leaderboard\n\t\tThen they see <number> rows\n\t\tExamples:\n\t\t\t| value | resultCount | number |\n\t\t\t| | 10 | 10 |\n\t\t\t| 5 | 10 | 5 |\n\t\t\t| 3 | 1 | 1 |\n\t\t\t| 25 | 15 | 15 |\n\n\t@minutiae\n\t@ui\n\tScenario: Leaderboards with no results show an empty state\n\t\tGiven a leaderboard has no results\n\t\tWhen the user views the leaderboard\n\t\tThen an empty state is dislayed\n\t\tAnd they see an image of a leaderboard\n\t\tAnd below they see "View your rank in the leaderboard"\n\t\tAnd below they see "Be the first to refer a friend and reach the top of the leaderboard"\n\t\tAnd the text is center aligned\n\n\t@minutiae\n\t@ui\n\tScenario: A custom empty state can be provided\n\t\tGiven a leaderboard has no results\n\t\tWhen the user views the leaderboard\n\t\tThen the contents of the "empty" slot are displayed\n\n\t@minutiae\n\t@ui\n\tScenario: Leaderboard headings can be customized\n\t\tGiven a leaderboard\n\t\tAnd it has the following props\n\t\t\t| prop | value |\n\t\t\t| rankheading | Place |\n\t\t\t| usersheading | Customer |\n\t\t\t| statsheading | Referral Count |\n\t\t\t| show-rank | true |\n\t\tWhen the user views the leaderboard\n\t\tThen they see the following columns with headings\n\t\t\t| column | heading |\n\t\t\t| rank | Place |\n\t\t\t| user | Customer |\n\t\t\t| stat | Referral Count |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Leaderboard rank can be hidden or shown\n\t\tGiven a leaderboard\n\t\tAnd it has prop "show-rank" with <propValue>\n\t\tWhen the user views the leaderboard\n\t\tThen they <maySee> the rank column\n\t\tExamples:\n\t\t\t| propValue | maySee |\n\t\t\t| true | see |\n\t\t\t| false | don\'t see |\n\t\t\t| | don\'t see |\n\n\t@motivating\n\t@ui\n\tScenario: Users in the top 10 of the leaderboard results see their leaderboard row highlighted\n\t\tGiven a user in the top 10 of the leaderboard results\n\t\tWhen they view the leaderboard\n\t\tThen they see the row with their name highlighted with brand colour\n\n\t@motivating\n\t@ui\n\tScenario Outline: Users not in the top 10 leaderboard results can see their progress at the bottom of the leaderboard\n\t\tGiven a user <mayHave> completed actions counted by the leaderboard\n\t\tAnd they are not in the top 10 leaderboard results\n\t\tAnd the leaderboard has prop "show-user" with <value>\n\t\tWhen they view the leaderboard\n\t\tThen they <maySee> "..." under the top 10 leaderboard results\n\t\tAnd under "..." they <maySee> a row highlighted with brand colour\n\t\tAnd they <maySee> their name\n\t\tAnd they <maySee> their leaderboard value\n\t\tAnd they <maySeeRank>\n\t\tExamples:\n\t\t\t| mayHave | value | maySee | maySeeRank |\n\t\t\t| has | true | see | see their rank |\n\t\t\t| hasn\'t | true | see | don\'t see their rank |\n\t\t\t| N/A | false | don\'t see | don\'t see their rank |\n\t\t\t| hasn\'t | | see | don\'t see their rank |\n\n\t@minutiae\n\tScenario: Users without names are displayed as an "Anonymous User"\n\t\tGiven a user\n\t\tAnd they do not have a first name\n\t\tAnd they do not have a last initial\n\t\tWhen they view the leaderboard\n\t\tThen they see the user displayed as "Anonymous User"\n\n\t@minutiae\n\tScenario Outline: If a user only has a first or last name, then only that is displayed\n\t\tGiven a user\n\t\tAnd they only have a <name>\n\t\tWhen they view the leaderboard\n\t\tThen they only see their <name>\n\t\tExamples:\n\t\t\t| name |\n\t\t\t| firstName |\n\t\t\t| lastName |';var Leaderboard_stories={title:"Components/Leaderboard",parameters:{scenario:scenario$4}};var users=[{firstName:"",lastInitial:"",textValue:"82",rank:1,rowNumber:1},{firstName:"MF",lastInitial:"D",textValue:"73",rank:2,rowNumber:2},{firstName:"Freddie",lastInitial:"G",textValue:"64",rank:3,rowNumber:3},{firstName:"Benny",lastInitial:"B",textValue:"55",rank:4,rowNumber:4},{firstName:"Mos",lastInitial:"D",textValue:"46",rank:5,rowNumber:5},{firstName:"Joe",lastInitial:"S",textValue:"42",rank:6,rowNumber:6},{firstName:"Zach",lastInitial:"H",textValue:"41",rank:7,rowNumber:7},{firstName:"Sarah",lastInitial:"S",textValue:"39",rank:8,rowNumber:8},{firstName:"James",lastInitial:"",textValue:"33",rank:9,rowNumber:9},{firstName:"",lastInitial:"J",textValue:"29",rank:10,rowNumber:10}];var pointsUsers=[{firstName:"",lastInitial:"",textValue:"82 Points",rank:1,rowNumber:1},{firstName:"MF",lastInitial:"D",textValue:"73 Points",rank:2,rowNumber:2},{firstName:"Freddie",lastInitial:"G",textValue:"64 Points",rank:3,rowNumber:3},{firstName:"Benny",lastInitial:"B",textValue:"55 Points",rank:4,rowNumber:4},{firstName:"Mos",lastInitial:"D",textValue:"46 Points",rank:5,rowNumber:5},{firstName:"Joe",lastInitial:"S",textValue:"42 Points",rank:6,rowNumber:6},{firstName:"Zach",lastInitial:"H",textValue:"41 Points",rank:7,rowNumber:7},{firstName:"Sarah",lastInitial:"S",textValue:"39 Points",rank:8,rowNumber:8},{firstName:"James",lastInitial:"",textValue:"33 Points",rank:9,rowNumber:9},{firstName:"",lastInitial:"J",textValue:"29 Points",rank:10,rowNumber:10}];var defaultStyles$1={usersheading:"User",statsheading:"Referrals",rankheading:"Rank",anonymousUser:"Anonymous User"};var defaultElements$1={empty:h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"}),loadingstate:h("slot",{name:"loading"},h("table",null,__spreadArrays(Array(10)).map((function(){return h("tr",null,h("td",null,h("sl-skeleton",null)))}))))};var Empty$1=function(){var e={states:{loading:false,hasLeaders:false,styles:__assign({},defaultStyles$1)},data:{rankType:"rowNumber",leaderboard:[],rowNumber:10,viewerRank:{firstName:"Kutay",lastInitial:"C",textValue:"8",rowNumber:11,rank:23}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var Loading=function(){var e={states:{loading:true,hasLeaders:false,styles:__assign({},defaultStyles$1)},data:{rankType:"rowNumber",rowNumber:10,leaderboard:[]},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var One=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign({},defaultStyles$1)},data:{rankType:"rowNumber",rowNumber:1,leaderboard:[{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1}],viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var Five=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign({},defaultStyles$1)},data:{rankType:"rowNumber",rowNumber:5,leaderboard:[{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1},{firstName:"MF",lastInitial:"D",textValue:"73",rank:2,rowNumber:2},{firstName:"Freddie",lastInitial:"G",textValue:"64",rank:3,rowNumber:3},{firstName:"Benny",lastInitial:"B",textValue:"55",rank:4,rowNumber:4},{firstName:"Mos",lastInitial:"D",textValue:"46",rank:5,rowNumber:5}],viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var ReferralLeaderboard=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign(__assign({},defaultStyles$1),{rankheading:"Rank",usersheading:"User",statsheading:"Referrals",showRank:false})},data:{rankType:"rowNumber",leaderboard:users,rowNumber:10,viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var PointsLeaderboard=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign(__assign({},defaultStyles$1),{rankheading:"Rank",usersheading:"User",statsheading:"Points",showRank:false})},data:{rankType:"rowNumber",leaderboard:pointsUsers,rowNumber:10,viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82 Points",rank:1,rowNumber:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var TenWithRank=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign(__assign({},defaultStyles$1),{showRank:true})},data:{rankType:"rowNumber",leaderboard:users,rowNumber:10,viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82",rank:1,rowNumber:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var ViewerOutside=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign(__assign({},defaultStyles$1),{showRank:true})},data:{rankType:"rowNumber",leaderboard:users,rowNumber:10,viewerRank:{firstName:"Kutay",lastInitial:"C",textValue:"8",rowNumber:11,rank:23}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var ViewerAnonymous=function(){var e={states:{loading:false,hasLeaders:true,styles:__assign(__assign({},defaultStyles$1),{showRank:true})},data:{rankType:"rowNumber",leaderboard:users,rowNumber:10,viewerRank:null},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var HideViewer=function(){var e={states:{loading:false,hasLeaders:true,rowNumber:10,styles:__assign(__assign({},defaultStyles$1),{showRank:true,hideViewer:true})},data:{rankType:"rowNumber",leaderboard:users,rowNumber:10,viewerRank:{firstName:"Viktor",lastInitial:"V",textValue:"82",rowNumber:1,rank:1}},elements:__assign({},defaultElements$1)};return h(LeaderboardView,Object.assign({},e))};var Leaderboard=Object.freeze({__proto__:null,default:Leaderboard_stories,Empty:Empty$1,Loading:Loading,One:One,Five:Five,ReferralLeaderboard:ReferralLeaderboard,PointsLeaderboard:PointsLeaderboard,TenWithRank:TenWithRank,ViewerOutside:ViewerOutside,ViewerAnonymous:ViewerAnonymous,HideViewer:HideViewer});var HookStoryAddon=function(e,t){var n=e.story;var a;var r=(a=n.story.parameters)===null||a===void 0?void 0:a.hookStory;if(!r){return t}var s=Math.round(Math.random()*1e5);var i="sqm-hook-story-container-"+s;return h(i,null,h("sqm-hook-story-container",{hookStory:r}))};function createHookStory(e){var t=function(){return h("div",null)};t.parameters={hookStory:e};return t}var Router_stories={title:"Tests/Router"};var templates='\n <template path="/foo"><h1>foo</h1>\n \n <p>These elements don\'t produce a specific box by themselves. They are replaced by their pseudo-box and their child boxes. Please note that the CSS Display Level 3 spec defines how the contents value should affect "unusual elements" — elements that aren’t rendered purely by CSS box concepts such as replaced elements. See Appendix B: Effects of display: contents on Unusual Elements for more details.\n\n Due to a bug in browsers this will currently remove the element from the accessibility tree — screen readers will not look at what\'s inside. See the Accessibility concerns section below for more details.</p>\n </template>\n <template path="/bar"><h2>bar</h2>\n \n <p>Turns off the display of an element so that it has no effect on layout (the document is rendered as though the element did not exist). All descendant elements also have their display turned off.\n To have an element take up the space that it would normally take, but without actually rendering anything, use the visibility property instead.</p>\n </template>\n <template path="/baz/bang"><h3>baz/bang</h3>\n <pre>\n ▄▄▄▄▄▄▄░▄▄▄▄▄▄▄░▄▄▄▄▄▄░▄▄▄▄▄\n ░░▀███░░░░▀██░░░░██▀░░░░██░░\n ░░░▀██░░░░░▀██░░▄█░░░░░▄█░░░\n ░░░░███░░░░░▀██▄█░░░░░░█░░░░\n ░░░░░███░░░░░▀██░░░░░░█▀░░░░\n ░░░░░░███░░░░▄███░░░░█▀░░░░░\n ░░░░░░░██▄░░▄▀░███░░█▀░░░░░░\n ░░░░░░░▀██▄█▀░░░███▄▀░░░░░░░\n ░░░░░░░░▀██▀░░░░░███░░░░░░░░\n ░░░░░░░░░▀▀░░░░░░░▀░░░░░░░░░\n </pre>\n </template>\n <template path="/refer/:page"><h3>/refer/:page</h3>\n <pre>\n refer/:page\n </pre>\n </template>\n';var routes='\n <sqm-route path="/foo"><h1>foo</h1>\n \n <p>These elements don\'t produce a specific box by themselves. They are replaced by their pseudo-box and their child boxes. Please note that the CSS Display Level 3 spec defines how the contents value should affect "unusual elements" — elements that aren’t rendered purely by CSS box concepts such as replaced elements. See Appendix B: Effects of display: contents on Unusual Elements for more details.\n\n Due to a bug in browsers this will currently remove the element from the accessibility tree — screen readers will not look at what\'s inside. See the Accessibility concerns section below for more details.</p>\n </sqm-route>\n <sqm-route path="/bar"><h2>bar</h2>\n <p>Turns off the display of an element so that it has no effect on layout (the document is rendered as though the element did not exist). All descendant elements also have their display turned off.\n To have an element take up the space that it would normally take, but without actually rendering anything, use the visibility property instead.</p>\n </sqm-route>\n <sqm-route path="/baz/bang"><h3>baz/bang</h3>\n <pre>\n ▄▄▄▄▄▄▄░▄▄▄▄▄▄▄░▄▄▄▄▄▄░▄▄▄▄▄\n ░░▀███░░░░▀██░░░░██▀░░░░██░░\n ░░░▀██░░░░░▀██░░▄█░░░░░▄█░░░\n ░░░░███░░░░░▀██▄█░░░░░░█░░░░\n ░░░░░███░░░░░▀██░░░░░░█▀░░░░\n ░░░░░░███░░░░▄███░░░░█▀░░░░░\n ░░░░░░░██▄░░▄▀░███░░█▀░░░░░░\n ░░░░░░░▀██▄█▀░░░███▄▀░░░░░░░\n ░░░░░░░░▀██▀░░░░░███░░░░░░░░\n ░░░░░░░░░▀▀░░░░░░░▀░░░░░░░░░\n </pre>\n </sqm-route>\n <sqm-route path="/refer/:page"><h3>/refer/:page</h3>\n <pre>\n refer/:page\n </pre>\n </sqm-route>\n';var TemplateNavigation=createHookStory((function(){return h("div",null,h("button",{onClick:function(){return hn.push("/")}},"/"),h("button",{onClick:function(){return hn.push("/foo")}},"/foo"),h("button",{onClick:function(){return hn.push("/bar")}},"/bar"),h("button",{onClick:function(){return hn.push("/baz/bang")}},"/baz/bang"),h("button",{onClick:function(){return hn.push("/refer")}},"/refer"),h("button",{onClick:function(){return hn.push("/refer/1")}},"/refer/1"),h("button",{onClick:function(){return hn.push("/refer/2")}},"/refer/2"),h("button",{onClick:function(){return hn.back()}},"Back"),h("button",{onClick:function(){return hn.forward()}},"Forward"),h("hr",null),h("sqm-router",{innerHTML:templates}))}));var RouteNavigation=createHookStory((function(){return h("div",null,h("button",{onClick:function(){return hn.push("/")}},"/"),h("button",{onClick:function(){return hn.push("/foo")}},"/foo"),h("button",{onClick:function(){return hn.push("/bar")}},"/bar"),h("button",{onClick:function(){return hn.push("/baz/bang")}},"/baz/bang"),h("button",{onClick:function(){return hn.push("/refer")}},"/refer"),h("button",{onClick:function(){return hn.push("/refer/1")}},"/refer/1"),h("button",{onClick:function(){return hn.push("/refer/2")}},"/refer/2"),h("button",{onClick:function(){return hn.back()}},"Back"),h("button",{onClick:function(){return hn.forward()}},"Forward"),h("hr",null),h("sqm-router",{innerHTML:routes}))}));var Styling=createHookStory((function(){return h("div",null,h("button",{onClick:function(){return hn.push("/")}},"/"),h("button",{onClick:function(){return hn.push("/foo")}},"/foo"),h("hr",null),h("div",{style:{display:"flex",justifyContent:"space-around"}},h("sqm-router",{innerHTML:'<template path="/">\n \n <div>Column 1</div>\n <div>Column 2 </div>\n </template>'})))}));function useTemplate(e){var t=useState(e),n=t[0],a=t[1];var r=useState(e),s=r[0],i=r[1];function o(e){hn.push(e.target.value)}return{states:{previewTemplate:s,editedTemplate:n},callbacks:{setEditedTemplate:a,setPreviewTemplate:i,setPath:o}}}var defaultRouter='\n<sqm-router>\n <template path="/">\n <div>hello world</div>\n </template>\n</sqm-router>\n';function TemplateView(e){var t=e.states,n=e.callbacks;return[h("textarea",{style:{width:"100%",height:"300px"},onChange:function(e){return n.setEditedTemplate(e.target.value)}},t.editedTemplate),h("button",{onClick:function(){return n.setPreviewTemplate(t.editedTemplate)}},"Update Preview"),h("label",null,"Current path:",h("input",{onInput:n.setPath,value:"/"})),h("div",{innerHTML:t.previewTemplate})]}var RouterPlayground=createHookStory((function(){var e=useTemplate(defaultRouter),t=e.states,n=e.callbacks;return h(TemplateView,{states:t,callbacks:n})}));var Router=Object.freeze({__proto__:null,default:Router_stories,TemplateNavigation:TemplateNavigation,RouteNavigation:RouteNavigation,Styling:Styling,RouterPlayground:RouterPlayground});var scenario$5='@owner:noah\n@author:noah\nFeature: Leaderboard Rank\n\n The leaderboard rank components displays the current users rank on the leaderboard.\n\n @minutiae\n Scenario: Users without a rank are shown a generic message\n Given a user has no rank\n Then the component displays a generic message\n And the message is the string from the prop "unrankedText"\n\n @motivating\n Scenario: Users with a rank are shown a message containing their rank\n Given a user has a valid rank\n And the prop "rankText" is an ICU message\n Then the ICU message is parsed to include the user\'s rank\n And the parsed message is displayed to the users\n\n @motivating\n Scenario Outline: Ranks from any of the three standard leaderboards can be displayed\n Given a leaderboard rank component with <leaderboardType>\n And a user has a valid rank\n When they view the leaderboard rank component\n Then they see their rank for <leaderboardType>\n Examples:\n | leaderboardType |\n | topStartedReferrers |\n | topConvertedReferrers |\n | topPointEarners |\n\n @motivating\n Scenario Outline: Leaderboard rank can be filtered with a time interval\n Given a leaderboard rank component with <leaderboardType>\n And it has prop "interval" with value "2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z"\n When they view the leaderboard rank component\n Then they see their rank for <results> from within "2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z"\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario Outline: Program Context is used by default to filter leaderboard rank\n Given a <leaderboardType> leaderboard rank component loaded with program context for "my-program"\n When they view the leaderboard rank component\n Then they see their rank for <leaderboardType> from "my-program"\n Examples:\n | leaderboardType |\n | topStartedReferrers |\n | topConvertedReferrers |\n | topPointEarners |\n\n @motivating\n Scenario Outline: Program Id context can be overwritten with a prop\n Given a <leaderboardType> leaderboard rank component has prop "program-Id" with value "my-test-program"\n When they view the leaderboard rank component\n Then they see their rank for <leaderboardType> from "my-test-program"\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario Outline: Global leaderboards ranks can be displayed by clearing program context\n #This can also be done with a program section in a similar manner\n Given a <leaderboardType> leaderboard rank component has prop "program-Id" with value ""\n When they view the leaderboard rank component\n Then they see global <results> rank\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario: Rank calculation is controlled by the "rankType" prop\n Given the current user is User C\n And User C has <points>\n And User A has <points>\n And User B has <points>\n And the value of the "rankType" prop is <rankType>\n Then the rank of the current user is <rank>\n Examples:\n | user | points | rankType | rank |\n | User A | 5 | rowNumber | 3 |\n | User B | 10 | rowNumber | 1 |\n | User C | 10 | rowNumber | 2 |\n\n | user | points | rankType | rank |\n | User A | 10 | rank | 1 |\n | User B | 10 | rank | 1 |\n | User C | 5 | rank | 3 |\n\n | user | points | rankType | rank |\n | User A | 10 | denseRank | 1 |\n | User B | 10 | denseRank | 1 |\n | User C | 5 | denseRank | 2 |';var LeaderboardRank_stories={title:"Components/Leaderboard Rank",parameters:{scenario:scenario$5}};var First=function(){var e={data:{rank:"1st"}};return h("p",null,"Your rank is ",h(LeaderboardRankView,Object.assign({},e))," on the leaderboard")};var Second=function(){var e={data:{rank:"2nd"}};return h("p",null,"Your rank is ",h(LeaderboardRankView,Object.assign({},e))," on the leaderboard")};var Unranked=function(){var e={data:{rank:"unranked"}};return h("p",null,"You are currently ",h(LeaderboardRankView,Object.assign({},e)),", refer a friend!")};var LeaderboardRank=Object.freeze({__proto__:null,default:LeaderboardRank_stories,First:First,Second:Second,Unranked:Unranked});function setupGraphQL(){var e="worried-camera@uexwltgh.mailosaur.net";var t=e;var n="a-referral-program";window.SquatchAndroid=true;window.widgetIdent={tenantAlias:"test_as36zjtpfy7oo",appDomain:"https://staging.referralsaasquatch.com",token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6IndvcnJpZWQtY2FtZXJhQHVleHdsdGdoLm1haWxvc2F1ci5uZXQiLCJpZCI6IndvcnJpZWQtY2FtZXJhQHVleHdsdGdoLm1haWxvc2F1ci5uZXQifX0.-WGV4_bzGCFp-OTIO-h-yp0MlgtkdufT_GgI4T691OY",userId:e,accountId:t,programId:n};return{id:e,accountId:t}}function setupLoggedOut(){var e="a-referral-program";window.SquatchAndroid=true;window.widgetIdent={tenantAlias:"test_as36zjtpfy7oo",appDomain:"https://staging.referralsaasquatch.com",programId:e}}var PortalFrame_stories={title:"Components/Portal Frame"};var defaultProps={data:{footer:h("span",null,"example@example.com"),header:h("div",{slot:"header",style:{display:"flex",flexDirection:"column"}},h("span",{style:{fontSize:"var(--sl-font-size-large)",fontWeight:"bold"}},"Portal Header"),h("span",{style:{fontSize:"var(--sl-font-size-small)"}},"A description for the portal"))},callbacks:{rerender:function(){}},ref:{current:undefined}};var FrameWithMenu=function(){var e=__assign({},defaultProps);return h(PortalFrameView,Object.assign({},e),h("sqm-navigation-menu",{"menu-label":"Menu"},h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/widget"},"Dashboard"),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/editProfile"},"Edit Profile"),h("sl-menu-divider",null),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/logout"},"Logout")))};var FrameWithoutMenu=function(){var e=__assign({},defaultProps);return h(PortalFrameView,Object.assign({},e))};var FullStackFrame=function(){var e;setupGraphQL();return h("div",null,h("sqm-portal-frame",null,h("div",{slot:"header",style:{display:"flex",flexDirection:"column"}},h("span",{style:{fontSize:"var(--sl-font-size-large)",fontWeight:"bold"}},"Portal Header"),h("span",{style:{fontSize:"var(--sl-font-size-small)"}},"A description for the portal")),h("a",{slot:"footer",class:"FooterEmail",href:"mailto:referrals@servicetitan.com"},"referrals@servicetitan.com"),h("sqm-navigation-menu",{"menu-label":"Menu"},h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/widget"},"Dashboard"),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/editProfile"},"Edit Profile"),h("sl-menu-divider",null),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/logout"},"Logout")),h("h1",null,"Something")),h("p",null,"Current path:"," ",h("code",null,h("strong",null,(e=vn())===null||e===void 0?void 0:e.pathname))),h("button",{onClick:hn.back},"Go Back"))};var FullStackFrameLoggedOut=function(){var e;setupLoggedOut();return h("div",null,h("sqm-portal-frame",null,h("div",{slot:"header",style:{display:"flex",flexDirection:"column"}},h("span",{style:{fontSize:"var(--sl-font-size-large)",fontWeight:"bold"}},"Portal Header"),h("span",{style:{fontSize:"var(--sl-font-size-small)"}},"A description for the portal")),h("span",{slot:"footer"},"sample@example.com"),h("sqm-navigation-menu",{"menu-label":"Menu"},h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/widget"},"Dashboard"),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/editProfile"},"Edit Profile"),h("sl-menu-divider",null),h("sl-menu-item",{exportparts:"base: menuitem-base",value:"/logout"},"Logout")),h("h1",null,"Something")),h("p",null,"Current path:"," ",h("code",null,h("strong",null,(e=vn())===null||e===void 0?void 0:e.pathname))),h("button",{onClick:hn.back},"Go Back"))};var PortalFrame=Object.freeze({__proto__:null,default:PortalFrame_stories,FrameWithMenu:FrameWithMenu,FrameWithoutMenu:FrameWithoutMenu,FullStackFrame:FullStackFrame,FullStackFrameLoggedOut:FullStackFrameLoggedOut});var EditProfileForm_stories={title:"Components/Edit Profile Form"};var defaultProps$1={states:{loading:false,submitDisabled:false,formState:{currentRegion:"Canada",firstName:"Bill",lastName:"Bob",errors:{},error:"An error string"},user:{firstName:"Bill",lastName:"Bob",email:"billbob@example.com"},showEdit:false,text:{editprofileheader:"Edit Profile",editprofiletext:"Update your profile.",firstnametext:"Bill",lastnametext:"Bob",canceltext:"Cancel",updatetext:"Update",currentregiontext:"Canada"}},callbacks:{onSubmit:function(e){console.log(e)},resetForm:function(){console.log("reset")},onChange:function(){console.log("change")},setShowEdit:function(e){console.log(e)}}};var EditProfileFormDisabled=function(){var e=defaultProps$1;return h(EditProfileView,Object.assign({},e))};var EditProfileFormEnabled=function(){var e=__assign(__assign({},defaultProps$1),{states:__assign(__assign({},defaultProps$1.states),{showEdit:true})});return h(EditProfileView,Object.assign({},e))};var FullStackFrameWithMenu=function(){return h("sqm-edit-profile",{editprofileheader:"Edit Profile",editprofiletext:"Update your profile.",firstnametext:"Bill",lastnametext:"Bob",canceltext:"Cancel",updatetext:"Update",currentregiontext:"Current Region",showregion:true})};var EditProfile=Object.freeze({__proto__:null,default:EditProfileForm_stories,EditProfileFormDisabled:EditProfileFormDisabled,EditProfileFormEnabled:EditProfileFormEnabled,FullStackFrameWithMenu:FullStackFrameWithMenu});var UseShareLink_stories={title:"Hooks / useShareLink"};function setupGraphQL$1(){var e="zach.harrison@referralsaasquatch.com";var t=e;var n="klip-referral-program";window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoiemFjaC5oYXJyaXNvbkByZWZlcnJhbHNhYXNxdWF0Y2guY29tIiwiYWNjb3VudElkIjoiemFjaC5oYXJyaXNvbkByZWZlcnJhbHNhYXNxdWF0Y2guY29tIn19.Wi8Vd5r64g5n8VNhiY-v5cqFcLwGxPG3Wi3dVSfkFZI"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[])}var BareBonesView=createHookStory((function(){setupGraphQL$1();var e=useShareLink({programId:"klip-referral-program",tooltiplifespan:0,tooltiptext:""});return h("div",null,"Sharelink:"," ",h("code",{style:{borderStyle:"solid",borderWidth:"1px",padding:"2px"}},e.copyString))}));var RegularView=createHookStory((function(){setupGraphQL$1();return h(CopyTextView,Object.assign({},useShareLink({programId:"klip-referral-program",tooltiptext:"Copied to clipboard",tooltiplifespan:1e3})))}));var FastTooltip=createHookStory((function(){setupGraphQL$1();return h(CopyTextView,Object.assign({},useShareLink({programId:"klip-referral-program",tooltiptext:"⠀⠀⠀⠀⠀⠀⠀⠀⠀HELLO THERE!!!\n⠀⠀⠀⡯⡯⡾⠝⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢊⠘⡮⣣⠪⠢⡑⡌\n⠀⠀⠀⠟⠝⠈⠀⠀⠀⠡⠀⠠⢈⠠⢐⢠⢂⢔⣐⢄⡂⢔⠀⡁⢉⠸⢨⢑⠕⡌\n⠀⠀⡀⠁⠀⠀⠀⡀⢂⠡⠈⡔⣕⢮⣳⢯⣿⣻⣟⣯⣯⢷⣫⣆⡂⠀⠀⢐⠑⡌\n⢀⠠⠐⠈⠀⢀⢂⠢⡂⠕⡁⣝⢮⣳⢽⡽⣾⣻⣿⣯⡯⣟⣞⢾⢜⢆⠀⡀⠀⠪\n⣬⠂⠀⠀⢀⢂⢪⠨⢂⠥⣺⡪⣗⢗⣽⢽⡯⣿⣽⣷⢿⡽⡾⡽⣝⢎⠀⠀⠀⢡\n⣿⠀⠀⠀⢂⠢⢂⢥⢱⡹⣪⢞⡵⣻⡪⡯⡯⣟⡾⣿⣻⡽⣯⡻⣪⠧⠑⠀⠁⢐\n⣿⠀⠀⠀⠢⢑⠠⠑⠕⡝⡎⡗⡝⡎⣞⢽⡹⣕⢯⢻⠹⡹⢚⠝⡷⡽⡨⠀⠀⢔\n⣿⡯⠀⢈⠈⢄⠂⠂⠐⠀⠌⠠⢑⠱⡱⡱⡑⢔⠁⠀⡀⠐⠐⠐⡡⡹⣪⠀⠀⢘\n⣿⣽⠀⡀⡊⠀⠐⠨⠈⡁⠂⢈⠠⡱⡽⣷⡑⠁⠠⠑⠀⢉⢇⣤⢘⣪⢽⠀⢌⢎\n⣿⢾⠀⢌⠌⠀⡁⠢⠂⠐⡀⠀⢀⢳⢽⣽⡺⣨⢄⣑⢉⢃⢭⡲⣕⡭⣹⠠⢐⢗\n⣿⡗⠀⠢⠡⡱⡸⣔⢵⢱⢸⠈⠀⡪⣳⣳⢹⢜⡵⣱⢱⡱⣳⡹⣵⣻⢔⢅⢬⡷\n⣷⡇⡂⠡⡑⢕⢕⠕⡑⠡⢂⢊⢐⢕⡝⡮⡧⡳⣝⢴⡐⣁⠃⡫⡒⣕⢏⡮⣷⡟\n⣷⣻⣅⠑⢌⠢⠁⢐⠠⠑⡐⠐⠌⡪⠮⡫⠪⡪⡪⣺⢸⠰⠡⠠⠐⢱⠨⡪⡪⡰\n⣯⢷⣟⣇⡂⡂⡌⡀⠀⠁⡂⠅⠂⠀⡑⡄⢇⠇⢝⡨⡠⡁⢐⠠⢀⢪⡐⡜⡪⡊\n⣿⢽⡾⢹⡄⠕⡅⢇⠂⠑⣴⡬⣬⣬⣆⢮⣦⣷⣵⣷⡗⢃⢮⠱⡸⢰⢱⢸⢨⢌\n⣯⢯⣟⠸⣳⡅⠜⠔⡌⡐⠈⠻⠟⣿⢿⣿⣿⠿⡻⣃⠢⣱⡳⡱⡩⢢⠣⡃⠢⠁\n⡯⣟⣞⡇⡿⣽⡪⡘⡰⠨⢐⢀⠢⢢⢄⢤⣰⠼⡾⢕⢕⡵⣝⠎⢌⢪⠪⡘⡌⠀\n⡯⣳⠯⠚⢊⠡⡂⢂⠨⠊⠔⡑⠬⡸⣘⢬⢪⣪⡺⡼⣕⢯⢞⢕⢝⠎⢻⢼⣀⠀\n⠁⡂⠔⡁⡢⠣⢀⠢⠀⠅⠱⡐⡱⡘⡔⡕⡕⣲⡹⣎⡮⡏⡑⢜⢼⡱⢩⣗⣯⣟\n⢀⢂⢑⠀⡂⡃⠅⠊⢄⢑⠠⠑⢕⢕⢝⢮⢺⢕⢟⢮⢊⢢⢱⢄⠃⣇⣞⢞⣞⢾\n⢀⠢⡑⡀⢂⢊⠠⠁⡂⡐⠀⠅⡈⠪⠪⠪⠣⠫⠑⡁⢔⠕⣜⣜⢦⡰⡎⡯⡾⡽",tooltiplifespan:500})))}));var UseShareLink=Object.freeze({__proto__:null,default:UseShareLink_stories,BareBonesView:BareBonesView,RegularView:RegularView,FastTooltip:FastTooltip});var UseShareButton_stories={title:"Hooks / useShareButton"};function setupGraphQL$2(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[])}var BareBonesView$1=createHookStory((function(){setupGraphQL$2();var e="sam-partner-test-2";var t=[useShareButton({programId:e,medium:"facebook"}),useShareButton({programId:e,medium:"twitter"}),useShareButton({programId:e,medium:"email"}),useShareButton({programId:e,medium:"direct"}),useShareButton({programId:e,medium:"sms"})];return h("div",null,t.map((function(e){return h("div",null,h("button",{onClick:e.onClick},"Share link (",e.medium,")"))})))}));var RegularView$1=createHookStory((function(){setupGraphQL$2();var e="sam-partner-test-2";var t=["facebook","twitter","email","direct","sms"];return h("div",null,t.map((function(t){return h("div",null,h("sqm-share-button",Object.assign({},{programId:e,medium:t}),"BUTTON_TEXT"))})))}));var UseShareButton=Object.freeze({__proto__:null,default:UseShareButton_stories,BareBonesView:BareBonesView$1,RegularView:RegularView$1});var UseBigStat_stories={title:"Hooks / useBigStat"};function setupGraphQL$3(){var e="zach.harrison@referralsaasquatch.com";var t=e;var n="klip-referral-program";window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoiemFjaC5oYXJyaXNvbkByZWZlcnJhbHNhYXNxdWF0Y2guY29tIiwiYWNjb3VudElkIjoiemFjaC5oYXJyaXNvbkByZWZlcnJhbHNhYXNxdWF0Y2guY29tIn19.Wi8Vd5r64g5n8VNhiY-v5cqFcLwGxPG3Wi3dVSfkFZI"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[])}var View=function(e,t,n){setupGraphQL$3();return h("div",null,h("b",null,"Stat format:"),h("pre",null,t),h("br",null),h("b",null,"Stat selected:")," ",h("pre",{style:{color:"green"}},e),h("sqm-big-stat",{"stat-type":e},n))};var DemoView=function(){var e=useState("/someRandomThing/with/someArguments/1234"),t=e[0],n=e[1];var a=useDemoBigStat({statType:t,render:function(){},disconnectedCallback:function(){},ignored:true}),r=a.props,s=a.label;return h("div",null,h("div",null,"Stat type:"," ",h("input",{style:{width:"300px"},type:"text",value:t,onInput:function(e){return n(e.target.value)}})),h("hr",null),h("div",null,h(BigStatView,Object.assign({},r),s)))};var Demo=createHookStory(DemoView);var ReferralsCount=createHookStory((function(){return View("/referralsCount","/(referralsCount)/:status?")}));var referralsConvertedCount=createHookStory((function(){return View("/referralsCount/converted","/(referralsCount)/:status?")}));var referralsStartedCount=createHookStory((function(){return View("/referralsCount/started","/(referralsCount)/:status?")}));var ReferralsMonth=createHookStory((function(){return View("/referralsMonth","/(referralsMonth)")}));var ReferralsWeek=createHookStory((function(){return View("/referralsWeek","/(referralsWeek)")}));var RewardsCount=createHookStory((function(){return View("/rewardsCount","/(rewardsCount)/:global?")}));var GlobalRewardsCount=createHookStory((function(){return View("/rewardsCount/global","/(rewardsCount)/:global")}));var GlobalRewardsCountFiltered=createHookStory((function(){return View("/rewardsCountFiltered/global","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalRewardsCountPctDiscount=createHookStory((function(){return View("/rewardsCountFiltered/PCT_DISCOUNT/global","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalRewardsCountPctDiscountPending=createHookStory((function(){return View("/rewardsCountFiltered/PCT_DISCOUNT/PENDING/global","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var RewardsCountByUnit=createHookStory((function(){return View("/rewardsCountFiltered/CREDIT/COFFEE","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalRewardsCountByUnit=createHookStory((function(){return View("/rewardsCountFiltered/CREDIT/COFFEE/global","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalPendingRewardsCount=createHookStory((function(){return View("/rewardsCountFiltered/CREDIT/COFFEE/PENDING/global","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var RewardsAvailableCount=createHookStory((function(){return View("/rewardsCountFiltered/AVAILABLE","/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalRewardsCountByIntegration=createHookStory((function(){return View("/integrationRewardsCountFiltered/AVAILABLE/global","/(integrationRewardsCountFiltered)/:format([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var GlobalRewardsCountByPendingIntegration=createHookStory((function(){return View("/integrationRewardsCountFiltered/PENDING/global","/(integrationRewardsCountFiltered)/:format([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?")}));var RewardsMonth=createHookStory((function(){return View("/rewardsMonth","/(rewardsMonth)/:global?")}));var RewardsWeek=createHookStory((function(){return View("/rewardsWeek","/(rewardsWeek)/:global?")}));var RewardsAssigned=createHookStory((function(){return View("/rewardsAssigned/CREDIT/COFFEE","/(rewardsAssigned)/:statType/:unit/:global?")}));var RewardsAssignedCashUSD=createHookStory((function(){return View("/rewardsAssigned/CREDIT/CASH%2FUSD","/(rewardsAssigned)/:statType/:unit/:global?")}));var RewardsPending=createHookStory((function(){return View("/rewardsPending/CREDIT/USD","/(rewardsPending)/:statType/:unit/:global?")}));var RewardsPendingGlobal=createHookStory((function(){return View("/rewardsPending/CREDIT/USD/global","/(rewardsPending)/:statType/:unit/:global?")}));var RewardsRedeemed=createHookStory((function(){return View("/rewardsRedeemed/CREDIT/USD","/(rewardsRedeemed)/:statType/:unit/:global?")}));var RewardsRedeemedWeek=createHookStory((function(){return View("/rewardsRedeemedWeek/CREDIT/USD","/(rewardsRedeemedWeek)/:statType/:unit/:global?")}));var RewardsRedeemedMonth=createHookStory((function(){return View("/rewardsRedeemedMonth/CREDIT/USD","/(rewardsRedeemedMonth)/:statType/:unit/:global?")}));var RewardsRedeemedGlobal=createHookStory((function(){return View("/rewardsRedeemed/CREDIT/USD/global","/(rewardsRedeemed)/:statType/:unit/:global?")}));var RewardsRedeemedWeekGlobal=createHookStory((function(){return View("/rewardsRedeemedWeek/CREDIT/USD/global","/(rewardsRedeemedWeek)/:statType/:unit/:global?")}));var RewardsRedeemedMonthGlobal=createHookStory((function(){return View("/rewardsRedeemedMonth/CREDIT/USD/global","/(rewardsRedeemedMonth)/:statType/:unit/:global?")}));var RewardsAvailable=createHookStory((function(){return View("/rewardsAvailable/CREDIT/COFFEE","/(rewardsAvailable)/:statType/:unit/:global?")}));var RewardsAvailableWithSlash=createHookStory((function(){return View("/rewardsAvailable/CREDIT/CASH%2FUSD","/(rewardsAvailable)/:statType/:unit/:global?")}));var RewardBalance=createHookStory((function(){return View("/rewardBalance/CREDIT/COFFEE/prettyValue","/(rewardBalance)/:statType/:unit/:format([prettyValue|value]*)?/:global?")}));var RewardBalanceCashUSD=createHookStory((function(){var e=encodeURIComponent("CASH/USD");return View("/rewardBalance/CREDIT/"+e+"/prettyValue","/(rewardBalance)/:statType/:unit/:format([prettyValue|value]*)?/:global?")}));var ProgramGoals=createHookStory((function(){var e=encodeURIComponent("Paid-Member-Goal/referrals");return View("/programGoals/count/"+e,"/(programGoals)/:metricType/:goalId")}));var CustomField=createHookStory((function(){return View("/customFields/thingCount","/(customFields)/:customField")}));var CustomFieldWithLabel=createHookStory((function(){return View("/customFields/thingCount","/(customFields)/:customField",h("sqm-text",null,"Thing Count"))}));var CustomFieldWithEmptyLabel=createHookStory((function(){return View("/customFields/thingCount","/(customFields)/:customField"," ")}));var CustomFieldWithEmptySpaceLabel=createHookStory((function(){return View("/customFields/thingCount","/(customFields)/:customField","\n ")}));var CustomFieldWithTextLabel=createHookStory((function(){return View("/customFields/thingCount","/(customFields)/:customField","Thing Count")}));var Traffic=createHookStory((function(){return View("/traffic","/(traffic)")}));var TrafficTwo=createHookStory((function(){return View("/userStats/traffic","/(userStat)/:statId","Traffic")}));var Referrals=createHookStory((function(){return View("/userStats/referrals","/(userStat)/:statId","Referrals")}));var Conversions=createHookStory((function(){return View("/userStats/conversions","/(userStat)/:statId","Conversions")}));var Goals=createHookStory((function(){return View("/userStats/goals","/(userStat)/:statId","Goals")}));var Rewards=createHookStory((function(){return View("/userStats/rewards","/(userStat)/:statId","Rewards")}));var WidgetLoads=createHookStory((function(){return View("/userStats/widgetLoads","/(userStat)/:statId","Widget Loads")}));var Revenue=createHookStory((function(){return View("/userStats/revenue","/(userStat)/:statId","Revenue")}));var GeneratedRevenue=createHookStory((function(){return View("/userStats/generatedRevenue","/(userStat)/:statId","Generated Revenue")}));var ReferredRevenue=createHookStory((function(){return View("/userStats/referredRevenue","/(userStat)/:statId","Referred Revenue")}));var UseBigStat=Object.freeze({__proto__:null,default:UseBigStat_stories,Demo:Demo,ReferralsCount:ReferralsCount,referralsConvertedCount:referralsConvertedCount,referralsStartedCount:referralsStartedCount,ReferralsMonth:ReferralsMonth,ReferralsWeek:ReferralsWeek,RewardsCount:RewardsCount,GlobalRewardsCount:GlobalRewardsCount,GlobalRewardsCountFiltered:GlobalRewardsCountFiltered,GlobalRewardsCountPctDiscount:GlobalRewardsCountPctDiscount,GlobalRewardsCountPctDiscountPending:GlobalRewardsCountPctDiscountPending,RewardsCountByUnit:RewardsCountByUnit,GlobalRewardsCountByUnit:GlobalRewardsCountByUnit,GlobalPendingRewardsCount:GlobalPendingRewardsCount,RewardsAvailableCount:RewardsAvailableCount,GlobalRewardsCountByIntegration:GlobalRewardsCountByIntegration,GlobalRewardsCountByPendingIntegration:GlobalRewardsCountByPendingIntegration,RewardsMonth:RewardsMonth,RewardsWeek:RewardsWeek,RewardsAssigned:RewardsAssigned,RewardsAssignedCashUSD:RewardsAssignedCashUSD,RewardsPending:RewardsPending,RewardsPendingGlobal:RewardsPendingGlobal,RewardsRedeemed:RewardsRedeemed,RewardsRedeemedWeek:RewardsRedeemedWeek,RewardsRedeemedMonth:RewardsRedeemedMonth,RewardsRedeemedGlobal:RewardsRedeemedGlobal,RewardsRedeemedWeekGlobal:RewardsRedeemedWeekGlobal,RewardsRedeemedMonthGlobal:RewardsRedeemedMonthGlobal,RewardsAvailable:RewardsAvailable,RewardsAvailableWithSlash:RewardsAvailableWithSlash,RewardBalance:RewardBalance,RewardBalanceCashUSD:RewardBalanceCashUSD,ProgramGoals:ProgramGoals,CustomField:CustomField,CustomFieldWithLabel:CustomFieldWithLabel,CustomFieldWithEmptyLabel:CustomFieldWithEmptyLabel,CustomFieldWithEmptySpaceLabel:CustomFieldWithEmptySpaceLabel,CustomFieldWithTextLabel:CustomFieldWithTextLabel,Traffic:Traffic,TrafficTwo:TrafficTwo,Referrals:Referrals,Conversions:Conversions,Goals:Goals,Rewards:Rewards,WidgetLoads:WidgetLoads,Revenue:Revenue,GeneratedRevenue:GeneratedRevenue,ReferredRevenue:ReferredRevenue});function setupGraphQL$4(){var e="worried-camera@uexwltgh.mailosaur.net";var t=e;var n="a-referral-program";window.widgetIdent={tenantAlias:"test_as36zjtpfy7oo",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6IndvcnJpZWQtY2FtZXJhQHVleHdsdGdoLm1haWxvc2F1ci5uZXQiLCJpZCI6IndvcnJpZWQtY2FtZXJhQHVleHdsdGdoLm1haWxvc2F1ci5uZXQiLCJmaXJzdE5hbWUiOiJ0ZXN0IiwibGFzdE5hbWUiOiJ0ZXN0In19.ziDWbdCwsTo1ijxl8d2__Ga-6iFOVShaJUPp2ZBMeO0"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[])}var UseEditProfile_stories={title:"Hooks / useEditProfile"};var RegularView$2=createHookStory((function(){setupGraphQL$4();return h("sqm-edit-profile",Object.assign({},{editprofileheader:"HEADER",editprofiletext:"TEXT",firstnametext:"FIRST NAME",lastnametext:"LAST NAME",canceltext:"CANCEL",updatetext:"UPDATE",currentregiontext:"CURRENT REGION TEXT"}))}));var UseEditProfile=Object.freeze({__proto__:null,default:UseEditProfile_stories,RegularView:RegularView$2});var UseLeaderboard_stories={title:"Hooks / useLeaderboard"};function setupGraphQL$5(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[])}function setupOtherGraphQL(){var e="sam+klip@saasquat.ch";var t=e;var n="klip-referral-program";var a="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbStrbGlwQHNhYXNxdWF0LmNoIiwiaWQiOiJzYW0ra2xpcEBzYWFzcXVhdC5jaCIsImVtYWlsIjoic2FtK2tsaXBAc2Fhc3F1YXQuY2giLCJsb2NhbGUiOiJlbiJ9fQ.a2nYYrSJ81FHXlCU-Sqp_-wquQizinHBhzwzULDzimg";window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:a});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}var View$1=function(e){var t=__assign({"leaderboard-type":"topConvertedReferrers",showRank:true,"rank-type":"rowNumber",usersheading:"Top Referrers",statsheading:"Completed Referrals",interval:""},e);var n=t.leaderboardType,a=t.rankType;return h("div",{style:{marginBottom:"20px"}},h("sqm-divided-layout",{direction:"row"},h("div",{style:{padding:"10px"}},h("b",null,"Leaderboard Type"),h("pre",null,n)),h("div",{style:{padding:"10px"}},h("b",null,"Rank Type"),h("pre",null,a))),h("sqm-leaderboard",Object.assign({},t),h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"})),h("hr",null))};var TopConvertedReferrers=createHookStory((function(){setupGraphQL$5();return[View$1({}),View$1({rankType:"rank"}),View$1({rankType:"denseRank"})]}));var TopStartedReferrers=createHookStory((function(){setupGraphQL$5();return[View$1({leaderboardType:"topStartedReferrers",statsheading:"New Referrals"}),View$1({leaderboardType:"topStartedReferrers",rankType:"rank",statsheading:"New Referrals"}),View$1({leaderboardType:"topStartedReferrers",rankType:"denseRank",statsheading:"New Referrals"})]}));var topPointEarners=createHookStory((function(){setupGraphQL$5();return[View$1({leaderboardType:"topPointEarners",statsheading:"Points",usersheading:"Top Earners"}),View$1({leaderboardType:"topPointEarners",rankType:"rank",statsheading:"Points",usersheading:"Top Earners"}),View$1({leaderboardType:"topPointEarners",rankType:"denseRank",statsheading:"Points",usersheading:"Top Earners"})]}));var globalLeaderboards=createHookStory((function(){setupGraphQL$5();return[View$1({leaderboardType:"topPointEarners",rankType:"rank",statsheading:"Points",usersheading:"Top Earners",programId:""}),View$1({leaderboardType:"topStartedReferrers",rankType:"rank",statsheading:"Referrals",programId:""}),View$1({leaderboardType:"topConvertedReferrers",rankType:"rank",statsheading:"Referrals",programId:""})]}));var FiveResults=createHookStory((function(){setupGraphQL$5();return[View$1({leaderboardType:"topStartedReferrers",maxRows:5,statsheading:"Referrals"})]}));var EmptyLeaderboard=createHookStory((function(){setupOtherGraphQL();return[View$1({leaderboardType:"topStartedReferrers",statsheading:"New Referrals",interval:"2021-02-11T08:00:00.000Z/2021-02-13T08:00:00.000Z"}),View$1({leaderboardType:"topStartedReferrers",rankType:"rank",statsheading:"New Referrals",interval:"2021-02-11T08:00:00.000Z/2021-02-13T08:00:00.000Z"}),View$1({leaderboardType:"topStartedReferrers",rankType:"denseRank",statsheading:"New Referrals",interval:"2021-02-11T08:00:00.000Z/2021-02-13T08:00:00.000Z"})]}));var DemoHook=createHookStory((function(){return h("sqm-leaderboard",{usersheading:"Referrer",statsheading:"Referrals","rank-type":"rank","leaderboard-type":"topStartedReferrers",rankheading:"Rank","show-rank":"true"},h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"}))}));var DemoHookEmpty=createHookStory((function(){return h("sqm-leaderboard",{usersheading:"Referrer",statsheading:"Referrals","rank-type":"rank","leaderboard-type":"topStartedReferrers",rankheading:"Rank","show-rank":"true",demoData:{data:{rankType:"rank",leaderboard:[]},states:{loading:false,hasLeaders:false,styles:{usersheading:"Top referrers",statsheading:"New customers",rankheading:"Rank",anonymousUser:"Anonymous User",showRank:true}}}},h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png","empty-state-header":"View your rank in the leaderboard","empty-state-text":"Be the first to refer a friend and reach the top of the leaderboard"}))}));var UseLeaderboard=Object.freeze({__proto__:null,default:UseLeaderboard_stories,TopConvertedReferrers:TopConvertedReferrers,TopStartedReferrers:TopStartedReferrers,topPointEarners:topPointEarners,globalLeaderboards:globalLeaderboards,FiveResults:FiveResults,EmptyLeaderboard:EmptyLeaderboard,DemoHook:DemoHook,DemoHookEmpty:DemoHookEmpty});var FormMessage_stories={title:"Components/Form Message"};var SuccessAlert=function(){return h("sqm-form-message",{type:"success"},h("div",null,"This is a success message."))};var ErrorAlert=function(){return h("sqm-form-message",{type:"error"},h("div",null,"This is an error message"))};var WarningAlert=function(){return h("sqm-form-message",{type:"warning"},h("div",null,"This is an error message"))};var InfoAlert=function(){return h("sqm-form-message",{type:"info"},h("div",null,"This is an info message"))};var FullStackSuccess=function(){return h("sqm-form-message",{type:"success",exportparts:"successalert-icon"},h("div",{class:"AlertContent"},h("div",{part:"successalert-text"},"Title"),h("div",{part:"successalert-subtext"},"Body text."),h("sl-button",{type:"default",exportparts:"base: defaultbutton-base",onClick:function(){console.log("click")}},"Primary Action"),h("sl-button",{class:"SecondaryTextButton",type:"text",onClick:function(){console.log("click")}},"Secondary Action")))};var FormMessage=Object.freeze({__proto__:null,default:FormMessage_stories,SuccessAlert:SuccessAlert,ErrorAlert:ErrorAlert,WarningAlert:WarningAlert,InfoAlert:InfoAlert,FullStackSuccess:FullStackSuccess});var EXCHANGE=dist.gql(templateObject_1||(templateObject_1=__makeTemplateObject(["\n mutation exchange($exchangeRewardInput: ExchangeRewardInput!) {\n exchangeReward(exchangeRewardInput: $exchangeRewardInput) {\n reward {\n id\n }\n }\n }\n"],["\n mutation exchange($exchangeRewardInput: ExchangeRewardInput!) {\n exchangeReward(exchangeRewardInput: $exchangeRewardInput) {\n reward {\n id\n }\n }\n }\n"])));var UseRewardExchangeList_stories={title:"Hooks / useRewardExchange"};function setupGraphQL$6(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}function useExchangeButton(){var e=setupGraphQL$6(),t=e.id,n=e.accountId;var a=useState(10),r=a[0],s=a[1];var i=useState(100),o=i[0],l=i[1];var d=ze(EXCHANGE),u=d[0],c=d[1],m=c.data,h=c.errors;return{states:{points:r,rate:o},data:{id:t,accountId:n,data:m,errors:h},callbacks:{exchange:u,setPoints:s,setRate:l}}}var DefaultView=function(e){var t=e.states,n=e.data,a=e.callbacks;return h("div",null,h("div",null,h("label",null,"Rate:"),h("input",{value:t.rate,onInput:function(e){return a.setRate(e.target.value)}})),h("input",{value:t.points,onInput:function(e){return a.setPoints(e.target.value)}}),h("button",{onClick:function(){return a.exchange(e.input)}},"Exchange"),h("details",null,h("summary",null,"response"),h("h4",null,"data"),h("div",{style:{maxWidth:"500px"}},h("pre",{style:{width:"500px",whiteSpace:"pre-wrap"}},JSON.stringify(n.data))),h("h4",null,"errors"),h("div",{style:{maxWidth:"500px"}},h("pre",{style:{maxWidth:"500px",whiteSpace:"pre-wrap"}},JSON.stringify(n.errors)))))};var RewardList=createHookStory((function(){setupGraphQL$6();return h("sqm-reward-exchange-list",{"list-type":"something"})}));var FixedGlobalReward=createHookStory((function(){var e=useExchangeButton(),t=e.states,n=e.data,a=e.callbacks;return h(DefaultView,{states:t,data:n,callbacks:a,input:{exchangeRewardInput:{userId:n.id,accountId:n.accountId,redeemCreditInput:{amount:t.points,unit:"POINT"},globalRewardKey:"gc1"}}})}));var VariableGlobalReward=createHookStory((function(){var e=useExchangeButton(),t=e.states,n=e.data,a=e.callbacks;return h(DefaultView,{states:t,data:n,callbacks:a,input:{exchangeRewardInput:{userId:n.id,accountId:n.accountId,redeemCreditInput:{amount:t.points,unit:"POINT"},globalRewardKey:"gc1",rewardInput:{valueInCents:Math.ceil(t.points*t.rate)}}}})}));var VariableCreditReward=createHookStory((function(){var e=useExchangeButton(),t=e.states,n=e.data,a=e.callbacks;return h(DefaultView,{states:t,data:n,callbacks:a,input:{exchangeRewardInput:{userId:n.id,accountId:n.accountId,redeemCreditInput:{amount:t.points,unit:"POINT"},rewardInput:{type:"CREDIT",unit:"foo",assignedCredit:Math.ceil(t.points*t.rate)}}}})}));var UseRewardExchangeList=Object.freeze({__proto__:null,default:UseRewardExchangeList_stories,RewardList:RewardList,FixedGlobalReward:FixedGlobalReward,VariableGlobalReward:VariableGlobalReward,VariableCreditReward:VariableCreditReward});var UseRewardsTable_stories={title:"Hooks / useRewardsTable"};function setupGraphQL$7(){var e="testestest";var t=e;window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com"};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}function setupGraphQLKlip(e){var t=e.token,n=e.id;var a=n;window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com"};useEffect((function(){setUserIdentity({accountId:a,id:n,jwt:t});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:n,accountId:a}}var RewardTableDemoHook=createHookStory((function(){return h("sqm-rewards-table",{"per-page":"4"},h("sqm-rewards-table-reward-column",null),h("sqm-rewards-table-source-column",null),h("sqm-rewards-table-status-column",null),h("sqm-rewards-table-date-column",null))}));var RewardsTableWithProgram=createHookStory((function(){setupGraphQL$7();setProgramId("sam-partner-test-2");return h("sqm-rewards-table",null,h("sqm-rewards-table-reward-column",null),h("sqm-rewards-table-status-column",null),h("sqm-rewards-table-source-column",null),h("sqm-rewards-table-date-column",null))}));var RewardsTableNoProgram=createHookStory((function(){setupGraphQL$7();setProgramId(undefined);return h("sqm-rewards-table",null,h("sqm-rewards-table-reward-column",null),h("sqm-rewards-table-status-column",null),h("sqm-rewards-table-source-column",null),h("sqm-rewards-table-date-column",null))}));var RewardsTableEn=createHookStory((function(){setupGraphQLKlip({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbWVuZ2xpc2giLCJpZCI6InNhbWVuZ2xpc2gifX0._6OTVF3gcipu_ibgthUNr5UHwC-2E_lhCENI5HpYvcw",id:"samenglish"});setProgramId(undefined);return h("sqm-rewards-table",{"per-page":"4"},h("sqm-rewards-table-reward-column",null),h("sqm-rewards-table-status-column",null),h("sqm-rewards-table-source-column",null),h("sqm-rewards-table-date-column",null))}));var RewardsTableTr=createHookStory((function(){setupGraphQLKlip({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbXR1cmtleSIsImlkIjoic2FtdHVya2V5In19.usSMe0RWg8W5FtwcvJayvAlxTw6vMxjTyWXaP8jI8_U",id:"samturkey"});setProgramId(undefined);return h("sqm-rewards-table",{"per-page":"4","more-label":"Daha","prev-label":"Öncesi","empty-state-text":"Henüz Referans Yok"},h("sqm-rewards-table-reward-column",{"column-title":"Ödüller","redeemed-text":"{redeemedAmount} kullanıldı","available-text":"{availableAmount} mevcut"}),h("sqm-rewards-table-source-column",{"column-title":"Kullanıcılar","anonymous-user":"Anonim Kullanıcı","deleted-user":"Silinmiş Kullanıcı","reward-exchange-text":"Ödülleri Kulannın","referral-text":"{rewardSource, select, FRIEND_SIGNUP {Referans} REFERRED {Yönlendiren} other {}}","reward-source-text":"{rewardSource, select, MANUAL {Manuel} AUTOMATED {Otomatik} other {}}"}),h("sqm-rewards-table-status-column",{"column-title":"Statut","status-text":"{status, select, AVAILABLE {Mevcut} PENDING {Bekleniyor} EXPIRED {Geçmiş} REDEEMED {Kullanılmış} CANCELED {İptal Edildi} other {Kullanılamaz} }","expiry-text":"Bitiyor "}),h("sqm-rewards-table-date-column",{"column-title":"Tarih"}))}));var RewardsTableFr=createHookStory((function(){setupGraphQLKlip({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbWZyZW5jaCIsImlkIjoic2FtZnJlbmNoIn19.cwhasHpfU5MLV4vGbCQcazb6p19iSw5pD2zyrVHgePg",id:"samfrench"});setProgramId(undefined);return h("sqm-rewards-table",{"per-page":"4","more-label":"Plus","prev-label":"Précédent","empty-state-text":"Aucune Récompenses Maintenant"},h("sqm-rewards-table-reward-column",{"column-title":"Récompenses","redeemed-text":"{redeemedAmount} rachetée","available-text":"{availableAmount} disponible"}),h("sqm-rewards-table-source-column",{"column-title":"Utilisateur","anonymous-user":"Utilisateur Anonyme","deleted-user":"Utilisateur Supprimé","reward-exchange-text":"Échange de Récompenses","referral-text":"{rewardSource, select, FRIEND_SIGNUP {Référence à} REFERRED {Référencé par} other {}}","reward-source-text":"{rewardSource, select, MANUAL {Manuel} AUTOMATED {Automatique} other {}}"}),h("sqm-rewards-table-status-column",{"column-title":"Statut","status-text":"{status, select, AVAILABLE {Disponible} PENDING {Pendant} EXPIRED {Expiré} REDEEMED {Racheté} CANCELED {Annulé} other {Indisponible} }","expiry-text":"Expire sur "}),h("sqm-rewards-table-date-column",{"column-title":"Date de Réception"}))}));var UseRewardsTable=Object.freeze({__proto__:null,default:UseRewardsTable_stories,RewardTableDemoHook:RewardTableDemoHook,RewardsTableWithProgram:RewardsTableWithProgram,RewardsTableNoProgram:RewardsTableNoProgram,RewardsTableEn:RewardsTableEn,RewardsTableTr:RewardsTableTr,RewardsTableFr:RewardsTableFr});var JWT="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbStrbGlwQHNhYXNxdWF0LmNoIiwiaWQiOiJzYW0ra2xpcEBzYWFzcXVhdC5jaCIsImVtYWlsIjoic2FtK2tsaXBAc2Fhc3F1YXQuY2giLCJsb2NhbGUiOiJlbiJ9fQ.a2nYYrSJ81FHXlCU-Sqp_-wquQizinHBhzwzULDzimg";var UseTaskCard_stories={title:"Hooks / useTaskCard"};function setupGraphQL$8(){var e="sam+klip@saasquat.ch";var t=e;var n="klip-referral-program";window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:JWT});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}var TaskCard=createHookStory((function(){setupGraphQL$8();return h("sqm-task-card",{"card-title":"Comment on 5 articles","button-text":"Start reading",goal:5,steps:true,"show-progress-bar":true,"event-key":"testEvent","open-new-tab":true})}));var TaskCardFeed=createHookStory((function(){setupGraphQL$8();return h("sqm-card-feed",null,h("sqm-task-card",{"reward-amount":"75","card-title":"Refer a Friend",description:"Invite a friend to Klip and get 75 points when they signup for a free trial or contact our us about an enterprise license.","button-text":"Start referring","button-link":"https://klip-staging.vercel.app/app/klip-rewards",goal:1,repeatable:true,"completed-text":"",demoData:"","ended-message":"","event-key":"","expiry-message":"","progress-bar-unit":"","reward-duration":"2022-01-04T08:00:00.000Z/2022-01-20T08:00:00.000Z","reward-unit":"","starts-on-message":"","stat-type":"","display-duration":"2022-01-04T08:00:00.000Z/2022-01-05T08:00:00.000Z"}),h("sqb-program-section",{"program-id":"klip-loyalty"},h("sqm-task-card",{"reward-amount":"50","card-title":"Follow Us on Twitter",description:"Earn 50 points when you follow us on Twitter!","button-text":"Follow","button-link":"https://twitter.com/",goal:1,"stat-type":"/programGoals/count/Follow-on-Social-Media","open-new-tab":"true","event-key":"socialFollow"})),h("sqm-task-card",{"reward-amount":"250",goal:500,"show-progress-bar":"true","card-title":"Spend $500 on Klip Products",description:"Earn 250 points when you spend $500 or more on Klip products.","button-text":"See plans","button-link":"https://klip-staging.vercel.app/app/plans","stat-type":"/customFields/purchaseTotal","open-new-tab":"false"}),h("sqb-program-section",{"program-id":"klip-loyalty"},h("sqm-task-card",{"reward-amount":"25",goal:1,"card-title":"Upload Your First Video",description:"Earn 25 points for exploring the Klip platform when you upload your first video.","button-text":"Upload","button-link":"https://klip-staging.vercel.app/app","stat-type":"/programGoals/count/Record-First-Video","open-new-tab":"false"})),h("sqm-task-card",{"reward-amount":"100",goal:5,repeatable:true,"show-progress-bar":"true",steps:true,"card-title":"Share 5 Videos",description:"Earn 100 points for collaborating each time you share 5 videos.","button-text":"Share","button-link":"https://klip-staging.vercel.app/app","stat-type":"/customFields/videosShared","open-new-tab":"false"}),h("sqb-program-section",{"program-id":"klip-loyalty"},h("sqm-task-card",{"reward-amount":"1","reward-unit":"Free Month",goal:1,"card-title":"Upgrade Your Plan",description:"Buy a Business or Enterprise plan and get 1 free month of Klip for being a committed customer.","button-text":"Upgrade","button-link":"https://klip-staging.vercel.app/app/plans","stat-type":"/programGoals/count/Upgrade-Plan","open-new-tab":"false"})),h("sqm-task-card",{"reward-amount":"200",goal:5,"show-progress-bar":"","card-title":"Purchase 5 Seats",description:"Earn 200 points when you expand your Klip Team by purchasing 5 or more seats.","button-text":"Purchase seats","button-link":"https://klip-staging.vercel.app/app/plans","stat-type":"/customFields/seatCount"}),h("sqm-task-card",{"reward-amount":"250",goal:1,"show-progress-bar":"","card-title":"Upload 1 Hour of Video",description:"Record and upload an hour of video and get 250 points for being a super user.","button-text":"Upload","button-link":"https://klip-staging.vercel.app/app","stat-type":"/customFields/videoHoursCount","progress-bar-unit":"","reward-unit":"Points"}),h("sqb-program-section",{"program-id":"klip-loyalty"},h("sqm-task-card",{"reward-amount":"100",goal:1,"card-title":"Complete an NPS Survey",description:"Fill out our NPS survey and get 100 points for giving us honest feedback. Be sure to use your Klip account email when completing the survey.","button-text":"Complete survey","button-link":"https://y5tqgj96plv.typeform.com/to/p6N7lHUk","stat-type":"/programGoals/count/NPS-Survey","reward-unit":"Points","open-new-tab":"true"})),h("sqb-conditional-section",{condition:"'champion' in user.segments"},h("sqb-program-section",{"program-id":"klip-loyalty"},h("sqm-task-card",{"reward-amount":"$100",goal:1,"card-title":"Complete a Case Study",description:"Write a Klip case study and earn a $100 Visa Gift Card for letting us know how Klip has helped your team succeed.","button-text":"Complete case study","button-link":"https://y5tqgj96plv.typeform.com/to/CPhkFBBW","stat-type":"/programGoals/count/Case-Study","reward-unit":"Visa Gift Card","open-new-tab":"true"}))))}));var UseTaskCard=Object.freeze({__proto__:null,default:UseTaskCard_stories,TaskCard:TaskCard,TaskCardFeed:TaskCardFeed});var NewPortal_stories={title:"New Portal"};var style={HeaderSubtitleBold:{"font-weight":500,"text-decoration":"underline"}};var sheet=createStyleSheet(style);var styleString=sheet.toString();var item1Props={states:{active:false},data:{label:"Dashboard",icon:"house",path:"/"}};var item2Props={states:{active:true},data:{label:"Activity",icon:"bar-chart",path:"/"}};var Sidebar=function(){return h(NavigationSidebarView,null,h(NavigationSidebarItemView,Object.assign({},item1Props)),h(NavigationSidebarItemView,Object.assign({},item2Props)))};var Dashboard=function(){var e={copyString:"https://ssqt.co/johnsmithrox",open:false,disabled:false,tooltiptext:"Share link copied",onClick:function(){return console.log("Share link copied")}};var t={copyString:"JOHNSMITH1",open:false,disabled:false,tooltiptext:"Share code copied",onClick:function(){return console.log("Share code copied")}};var n={medium:"twitter",loading:false,disabled:false,pill:true,type:"default",size:"medium",icon:"twitter",hideicon:false,iconslot:"prefix",onClick:function(){return"Facebook share clicked"},hide:false};var a={medium:"facebook",loading:false,disabled:false,pill:true,type:"default",size:"medium",icon:"facebook",hideicon:false,iconslot:"prefix",onClick:function(){return"Facebook share clicked"},hide:false};var r={medium:"linkedin",loading:false,disabled:false,pill:true,type:"default",size:"medium",icon:"linkedin",hideicon:false,iconslot:"prefix",onClick:function(){return"Facebook share clicked"},hide:false};return h("sqm-divided-layout",{direction:"row"},h("style",{type:"text/css"},styleString),h(Sidebar,null),h("sqm-divided-layout",{direction:"column"},h(PortalContainerView,Object.assign({},{direction:"column",padding:"xxx-large",gap:"xxx-large"}),h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("p",null,"Welcome back,")),content:h("sqm-text",null,h("h1",null,"John Smith"))})),h(StatContainerView,Object.assign({},{space:"64px"}),h(BigStatView,Object.assign({},{statvalue:"2,345",value:234500,loading:false}),"Clicks"),h(BigStatView,Object.assign({},{statvalue:"58",value:58,loading:false}),"Referrals"),h(BigStatView,Object.assign({},{statvalue:"$10,540",value:1054e3,loading:false}),"Earned"),h(BigStatView,Object.assign({},{statvalue:"$2,305",value:230500,loading:false}),"Awaiting Payout"))),h(PortalContainerView,Object.assign({},{direction:"column",padding:"xxx-large",gap:"xxx-large"}),h(PortalSectionView,Object.assign({},{labelMargin:"x-large",padding:"none",label:h("sqm-text",null,h("h2",null,"Partner and Profit")),content:h("sqm-text",null,h("p",null,"Get rewarded for referring potential customers to MyCompany. Earn commission for each successful lead you send our way"))})),h(PortalSectionView,Object.assign({},{labelMargin:"small",padding:"none",label:h("sqm-text",null,h("h3",null,"Share your referral link")),content:h(CopyTextView,Object.assign({},e))})),h(PortalSectionView,Object.assign({},{labelMargin:"small",padding:"none",label:h("sqm-text",null,h("h3",null,"Share your referral code")),content:h(CopyTextView,Object.assign({},t))})),h(PortalSectionView,Object.assign({},{labelMargin:"small",padding:"none",label:h("sqm-text",null,h("h3",null,"Share via social media")),content:h(PortalContainerView,Object.assign({},{direction:"row",padding:"large",gap:"xxx-large",minWidth:"150px"}),h(ShareButtonView,Object.assign({},n),"Tweet about us"),h(ShareButtonView,Object.assign({},a),"Share on Facebook"),h(ShareButtonView,Object.assign({},r),"Post on Linkedin"))})))))};var EditProfile$1=function(){return h("sqm-divided-layout",{direction:"row"},h("style",{type:"text/css"},styleString),h(Sidebar,null),h("sqm-divided-layout",{direction:"column"},h(PortalProfileView,Object.assign({},{states:{success:false,loading:false,submitDisabled:false,showCountry:false,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}})),h(PortalChangePasswordView,Object.assign({},{states:{open:true,error:"",loading:false,success:false,content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(){return console.log("open")},submit:function(){return console.log("submit")}}}))))};var Commissions=function(){return h("sqm-divided-layout",{direction:"row"},h("style",{type:"text/css"},styleString),h(Sidebar,null),h("sqm-divided-layout",{direction:"column"},h(PortalContainerView,Object.assign({},{direction:"column",padding:"xxx-large",gap:"xxx-large"}),h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("h2",null,"Commissions")),content:h("sqm-text",null,h("p",null,"for the"," ",h("span",{class:sheet.classes.HeaderSubtitleBold},"Partner Program #1")," ","program"))})),h(StatContainerView,Object.assign({},{space:"64px"}),h(BigStatView,Object.assign({},{statvalue:"$ 1,000",value:1e5,loading:false}),"Total Earned"),h(BigStatView,Object.assign({},{statvalue:"$ 800",value:8e4,loading:false}),"Available"),h(BigStatView,Object.assign({},{statvalue:"$ 180",value:18e3,loading:false}),"Pending"),h(BigStatView,Object.assign({},{statvalue:"$ 20",value:2e3,loading:false}),"Redeemed")))))};var Activity=function(){return h("sqm-divided-layout",{direction:"row"},h("style",{type:"text/css"},styleString),h(Sidebar,null),h("sqm-divided-layout",{direction:"column"},h(PortalContainerView,Object.assign({},{direction:"column",padding:"xxx-large",gap:"xxx-large"}),h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("h2",null,"Activity")),content:h("sqm-text",null,h("p",null,"for the"," ",h("span",{class:sheet.classes.HeaderSubtitleBold},"Partner Program #1")," ","program"))})),h(PortalSectionView,Object.assign({},{labelMargin:"x-large",padding:"none",label:h("sqm-text",null,h("h3",null,"Referral Activity")),content:h(StatContainerView,Object.assign({},{space:"64px"}),h(BigStatView,Object.assign({},{statvalue:"1,000",value:1e5,loading:false}),"Total Referrals"),h(BigStatView,Object.assign({},{statvalue:"800",value:800,loading:false}),"Converted"),h(BigStatView,Object.assign({},{statvalue:"180",value:180,loading:false}),"Pending"),h(BigStatView,Object.assign({},{statvalue:"20",value:20,loading:false}),"Disqualified"))}))),h(PortalSectionView,Object.assign({},{labelMargin:"x-large",padding:"xxx-large",label:h("sqm-text",null,h("h3",null,"Traffic Generated")),content:h(StatContainerView,Object.assign({},{space:"64px"}),h(BigStatView,Object.assign({},{statvalue:"1,000",value:1e3,loading:false}),"Clicks"),h(BigStatView,Object.assign({},{statvalue:"800",value:800,loading:false}),"From share link"),h(BigStatView,Object.assign({},{statvalue:"180",value:180,loading:false}),"From share mediums"))}))))};var NewPortal=Object.freeze({__proto__:null,default:NewPortal_stories,Dashboard:Dashboard,EditProfile:EditProfile$1,Commissions:Commissions,Activity:Activity});var referralWidget='<sqm-brand brand-color="#4225c4" brand-font="Nunito Sans">\n <sqm-portal-container\n direction="column"\n padding="small"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n background-color="#ffffff"\n >\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-hero-image\n image-url="https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png"\n header="MyCompany Rewards"\n description="Refer a friend and earn up to $1200 in rewards"\n layout="columns"\n image-pos="right"\n background-color="#F9F9F9"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n max-width="770px"\n center\n display="grid"\n >\n <sqm-stat-container space="xxx-large" display="flex">\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/integrationRewardsCountFiltered/AVAILABLE/global"\n >\n <p>Giftcards</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqm-portal-container\n gap="large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="xxx-small"\n padding="none"\n >\n <h3 slot="label">Get rewarded when your friend uses our product</h3>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment="start">\n <sqm-portal-container\n gap="large"\n slot="left"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon="circle">\n <sqm-timeline-entry\n reward="$50"\n unit="visa giftcard"\n desc="Your friend purchases a Business plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$200"\n unit="visa giftcard"\n desc="Our sales team qualifies your friend as a good fit for our Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$1000"\n unit="visa giftcard"\n desc="Your friend purchases an Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n slot="right"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>>Choose how you want to share</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text="Copied to Clipboard"\n tooltip-lifespan="1000"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap="x-small"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-share-button\n medium="email"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium="linkedin"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium="twitter"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n padding="none"\n text-align="center"\n label-margin="xx-small"\n >\n <h3 slot="label">Referral History</h3>\n </sqm-titled-section>\n <sqm-referral-table\n per-page="4"\n hidden-columns="2"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n ></sqm-empty>\n </sqm-referral-table>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email="support@example.com"\n terms-link="https:\\/\\/example.com"\n faq-link="https:\\/\\/example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n';var monoWidget='<sqm-brand brand-color="#4225c4" brand-font="Nunito Sans">\n <sqm-portal-container\n direction="column"\n padding="small"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n background-color="#ffffff"\n >\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-hero-image\n image-url="https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png"\n header="MyCompany Rewards"\n description="Refer friends and complete tasks to earn rewards"\n layout="columns"\n image-pos="right"\n background-color="#F9F9F9"\n image-mobile-pos="top"\n image-percentage="50"\n padding-image="none"\n padding-text="xxxx-large"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n max-width="770px"\n center\n display="grid"\n >\n <sqm-stat-container space="xxx-large" display="flex">\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/integrationRewardsCountFiltered/AVAILABLE/global"\n >\n <p>Giftcards Earned</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/POINT/value/global"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqm-portal-container\n gap="xx-large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="xxx-small"\n padding="none"\n >\n <h3 slot="label">Share $50 with friends</h3>\n <p slot="content">\n They’ll get a $50 credit towards a new account and you’ll get up to\n $1200\n </p>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment="start">\n <sqm-portal-container\n gap="large"\n slot="left"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon="circle">\n <sqm-timeline-entry\n reward="$50"\n unit="visa giftcard"\n desc="Your friend purchases a Business plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$200"\n unit="visa giftcard"\n desc="Our sales team qualifies your friend as a good fit for our Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$1000"\n unit="visa giftcard"\n desc="Your friend purchases an Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n slot="right"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>Choose how you want to share:</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text="Copied to Clipboard"\n tooltip-lifespan="1000"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap="x-small"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-share-button\n medium="email"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium="linkedin"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium="twitter"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n <sqm-portal-container\n gap="xx-large"\n direction="column"\n display="grid"\n max-width="100%"\n min-width=""\n padding="none"\n >\n <sqm-titled-section text-align="center" label-margin="xxx-small">\n <h3 slot="label">Earn more rewards</h3>\n <p slot="content">\n Get points while using our product. Use those points to redeem\n rewards like one free month of Enterprise or two plane tickets to\n anywhere in North America\n </p>\n </sqm-titled-section>\n <sqm-card-feed gap="24" width="347">\n <sqm-task-card\n reward-amount="20"\n goal="1"\n card-title="Complete a Survey"\n description="Fill out our NPS survey and get 20 points for giving us honest feedback."\n button-text="Take survey"\n reward-unit="Points"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="250"\n goal="500"\n show-progress-bar\n card-title="Spend $500"\n description="Earn 250 points when you spend $500 or more."\n button-text="See plans"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n progress-bar-unit="$"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n goal="1"\n reward-amount="50"\n card-title="Follow Us on Twitter"\n description="Earn 50 points when you follow us on Twitter!"\n button-text="Follow"\n button-link="https://twitter.com/"\n open-new-tab="true"\n event-key="socialFollow"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="1"\n reward-unit="Free Month"\n goal="1"\n card-title="Upgrade Your Plan"\n description="Receive one free month for being a committed customer when you upgrade your plan."\n button-text="Upgrade"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n open-new-tab="false"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n </sqm-card-feed>\n </sqm-portal-container>\n <sqm-tabs>\n <sqm-tab header="Referral history">\n <sqm-referral-table\n per-page="4"\n hidden-columns="2"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty>\n </sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n per-page="4"\n program-id=""\n hidden-columns="0"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-tab>\n </sqm-tabs>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email="support@example.com"\n terms-link="https:\\/\\/example.com"\n faq-link="https:\\/\\/example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n';var loyaltyWidget='<sqm-brand brand-color="#4225c4" brand-font="Nunito Sans">\n <sqm-portal-container\n direction="column"\n padding="small"\n gap="xxxx-large"\n display="grid"\n max-width="100%"\n background-color="#ffffff"\n >\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-hero-image\n image-url="https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png"\n header="MyCompany Rewards"\n description="Complete tasks to earn rewards"\n layout="overlay"\n padding-image="xxxx-large"\n padding-text="xxx-large"\n image-pos="center"\n overlay-color="#5e5669"\n overlay-opacity="0.9"\n >\n </sqm-hero-image>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n max-width="770px"\n center\n display="grid"\n >\n <sqm-program-explainer header="How it works">\n <sqm-program-explainer-step\n description="Complete tasks like uploading your first video or sharing videos with friends"\n header="Earn points for using our product"\n icon="cash-stack"\n text-color="#000000"\n >\n </sqm-program-explainer-step>\n <sqm-program-explainer-step\n description="Redeem rewards like one free month of Enterprise or two plane tickets to anywhere in North America"\n header="Redeem rewards with your points"\n icon="people"\n text-color="#000000"\n >\n </sqm-program-explainer-step>\n </sqm-program-explainer>\n <sqm-portal-container\n center\n direction="row"\n display="flex"\n justify-content="space-between"\n gap="xxx-large"\n max-width="100%"\n padding="none"\n >\n <sqm-stat-container space="xxx-large" display="flex">\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsRedeemed/CREDIT/POINTS"\n >\n <p>Points Redeemed</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/POINT/value/global"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n </sqm-portal-container>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-titled-section\n label-margin="small"\n padding="none"\n text-align="center"\n >\n <h3 slot="label">Earn points</h3>\n </sqm-titled-section>\n <sqm-card-feed gap="24" width="347">\n <sqm-task-card\n reward-amount="20"\n goal="1"\n card-title="Complete a Survey"\n description="Fill out our NPS survey and get 20 points for giving us honest feedback."\n button-text="Take survey"\n reward-unit="Points"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="250"\n goal="500"\n show-progress-bar\n card-title="Spend $500"\n description="Earn 250 points when you spend $500 or more."\n button-text="See plans"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n progress-bar-unit="$"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n goal="1"\n reward-amount="50"\n card-title="Follow Us on Twitter"\n description="Earn 50 points when you follow us on Twitter!"\n button-text="Follow"\n button-link="https://twitter.com/"\n open-new-tab="true"\n event-key="socialFollow"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="1"\n reward-unit="Free Month"\n goal="1"\n card-title="Upgrade Your Plan"\n description="Receive one free month for being a committed customer when you upgrade your plan."\n button-text="Upgrade"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n open-new-tab="false"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n </sqm-card-feed>\n <sqm-portal-container\n gap="large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n padding="none"\n text-align="center"\n label-margin="xx-small"\n >\n <h3 slot="label">Reward History</h3>\n </sqm-titled-section>\n <sqm-rewards-table\n per-page="4"\n hidden-columns="0"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-portal-container>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email="support@example.com"\n terms-link="https:\\/\\/example.com"\n faq-link="https:\\/\\/example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n';var instantAccessReferrerShareWidget='<sqm-hero\n background="https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png"\n columns="2"\n padding-size="medium"\n wrap-direction="wrap"\n secondary-background="#FFFFFF"\n min-height="200"\n ><sqm-referral-card\n vertical-alignment="start"\n slot="secondary-column"\n padding-bottom="small"\n padding-left="x-large"\n padding-right="x-large"\n padding-top="small"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="none"\n padding="none"\n slot="header"\n ><h1 slot="label">Invite your friends to unlock rewards!</h1>\n <p slot="content">\n They&#x2019;ll get a &#x24;50 credit towards a new account and\n you&#x2019;ll get a &#x24;50 in credit for each friend you refer.\n </p></sqm-titled-section\n >\n <sqm-portal-container\n gap="small"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n slot="left"\n >\n <p style="margin: 0">Choose how you want to share:</p>\n <sqm-share-link\n tooltip-text="Copied to Clipboard"\n tooltip-lifespan="1000"\n >\n </sqm-share-link>\n <sqm-share-button\n medium="email"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium="linkedin"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium="twitter"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Tweet about us\n </sqm-share-button> </sqm-portal-container\n ><sqm-portal-container\n display="flex"\n slot="footer"\n gap="small"\n justify-content="center"\n >\n <sqm-logout-current-user\n user-identification-text="{email}"\n switch-user-link="#"\n switch-user-text="not you?"\n ></sqm-logout-current-user>\n <sqm-portal-footer\n support-email="support@example.com"\n show-powered-by="true"\n padding-bottom="x-small"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n hide-support-text\n terms-text="Terms And Conditions"\n terms-link="https://example.com"\n ></sqm-portal-footer></sqm-portal-container\n ></sqm-referral-card>\n</sqm-hero>\n';var instantAccessFriendCouponWidget='<sqm-hero\n background="https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png"\n columns="2"\n padding-size="medium"\n wrap-direction="wrap"\n secondary-background="#FFFFFF"\n>\n <sqm-referral-card\n vertical-alignment="start"\n padding-bottom="small"\n padding-left="x-large"\n padding-right="x-large"\n padding-top="small"\n slot="secondary-column"\n >\n <sqm-portal-container\n gap="large"\n direction="column"\n display="flex"\n justify-content="center"\n max-width="100%"\n padding="none"\n slot="header"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="xxx-small"\n padding="none"\n >\n <h1 slot="label">You got &#x24;50 off thanks to a friend!</h1>\n <p slot="content">\n <span> Use this reward to get &#x24;50 off your next purchase. </span>\n </p>\n </sqm-titled-section>\n\n <sqm-coupon-code copy-button-style="button-outside"></sqm-coupon-code>\n </sqm-portal-container>\n\n <sqm-portal-footer\n slot="footer"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n hide-support-text\n terms-text="Terms And Conditions"\n terms-link="https://example.com"\n ></sqm-portal-footer>\n </sqm-referral-card>\n</sqm-hero>\n';var instantAccessReferrerRegistrationWidget='<sqm-hero\n background="https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png"\n columns="2"\n padding-size="medium"\n wrap-direction="wrap"\n secondary-background="#FFFFFF"\n ><sqm-instant-access-registration\n padding-bottom="small"\n padding-left="x-large"\n padding-right="x-large"\n padding-top="small"\n slot="secondary-column"\n ><sqm-titled-section\n text-align="center"\n label-margin="small"\n padding="none"\n slot="top"\n ><div slot="label"><h1>Invite your friends to unlock rewards!</h1></div>\n\n <p slot="content">\n They&#x2019;ll get a &#x24;50 credit towards a new account and\n you&#x2019;ll get a &#x24;50 in credit for each friend you refer.\n </p> </sqm-titled-section\n ><sqm-portal-footer\n slot="bottom"\n support-email="support@example.com"\n show-powered-by="true"\n padding-bottom="x-small"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n hide-support-text\n terms-text="Terms And Conditions"\n terms-link="https://example.com"\n ></sqm-portal-footer\n ></sqm-instant-access-registration>\n</sqm-hero>\n';var instantAccessFriendRegistrationWidget='<sqm-hero\n background="https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png"\n columns="2"\n padding-size="medium"\n wrap-direction="wrap"\n secondary-background="#FFFFFF"\n ><sqm-referred-registration\n slot="secondary-column"\n register-label="Get $50 off"\n padding-bottom="small"\n padding-left="x-large"\n padding-right="x-large"\n padding-top="small"\n ><sqm-titled-section\n text-align="center"\n label-margin="small"\n padding="none"\n slot="top"\n ><h1 slot="label">You got &#x24;50 off thanks to a friend!</h1>\n <p slot="content">\n <span>Use this reward to get &#x24;50 off your next purchase.</span>\n </p>\n </sqm-titled-section>\n <div slot="bottom">\n <p style="text-align: center">*Valid on purchases of &#x24;75 or more</p>\n <sqm-portal-footer\n slot="footer"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n hide-support-text\n terms-text="Terms And Conditions"\n terms-link="https://example.com"\n ></sqm-portal-footer>\n </div> </sqm-referred-registration\n></sqm-hero>\n';var paypalReferralWidget='<sqm-brand brand-color="#4225c4" brand-font="Nunito Sans">\n <sqm-portal-container\n direction="column"\n padding="small"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n background-color="#ffffff"\n >\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-hero-image\n image-url="https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png"\n header="MyCompany Rewards"\n description="Refer a friend and earn up to $1200 in rewards"\n layout="columns"\n image-pos="right"\n background-color="#F9F9F9"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n max-width="770px"\n center\n display="grid"\n >\n <sqm-stat-container space="xxx-large" display="flex">\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/integrationRewardsCountFiltered/AVAILABLE/global"\n >\n <p>Giftcards</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqp-account-details\n schedule-header-text="Schedule"\n integration-alert-text="Looks like this feature is turned off at the moment. Come back later to see if it’s enabled. "\n integration-alert-header="PayPal payouts are currently disabled"\n details-header-text="Payout details"\n pay-pal-account-header-text="PayPal account"\n connect-pay-pal-description-text="Connect your PayPal account to automatically receive payments/cash rewards."\n connect-pay-pal-account-button-text="Connect account"\n w-9-tax-label="Awaiting W-9 tax form"\n upcoming-payment-label="Upcoming"\n recent-payment-label="Recent payment"\n other-currencies-label="other currencies"\n next-payout-label="Next payout"\n next-payment-label="Next payment"\n header-text="PayPal account"\n edit-text="Edit"\n account-label="Account"\n success-message="Success!"\n submit-pay-pal-account-button-text="Connect account"\n pay-pal-email-label-help-text="Enter the email used for your PayPal account."\n pay-pal-email-label="PayPal email"\n modal-connect-pay-pal-account-header="Connect PayPal account"\n disconnect-account-header-text="Disconnect account"\n disconnect-account-description-text="You will not be able to receive payments if you disconnect your PayPal account."\n ></sqp-account-details>\n <sqm-portal-container\n gap="large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="xxx-small"\n padding="none"\n >\n <h3 slot="label">Get rewarded when your friend uses our product</h3>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment="start">\n <sqm-portal-container\n gap="large"\n slot="left"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon="circle">\n <sqm-timeline-entry\n reward="$50"\n unit="visa giftcard"\n desc="Your friend purchases a Business plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$200"\n unit="visa giftcard"\n desc="Our sales team qualifies your friend as a good fit for our Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$1000"\n unit="visa giftcard"\n desc="Your friend purchases an Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n slot="right"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>>Choose how you want to share</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text="Copied to Clipboard"\n tooltip-lifespan="1000"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap="x-small"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-share-button\n medium="email"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium="linkedin"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium="twitter"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n padding="none"\n text-align="center"\n label-margin="xx-small"\n >\n <h3 slot="label">Referral History</h3>\n </sqm-titled-section>\n <sqm-referral-table\n per-page="4"\n hidden-columns="2"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqp-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-blocked-text="Payout blocked on {date}."\n reward-on-hold-text="Payout on hold and in review since {date}."\n reward-paid-out-text="Paid out on {date}."\n reward-payout-failed-text="This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on {date}."\n reward-payout-in-progress-text="Payout processing started on {date}."\n reward-received-text="Reward received on"\n reward-refunded-text="Payout refunded on {date}."\n reward-returned-text="The email you provided does not link to an existing PayPal account. Payout expired on {date}."\n reward-reversed-text="Payout reversed on {date}."\n reward-unclaimed-text="The email you provided does not link to an existing PayPal account. Payout expires on {date}."\n status-long-text="{status, select, INPROGRESS {In Progress} TRANSFERRED {Transferred} AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} REDEEMED {Redeemed on} PENDING {Available on} EXPIRED {Reward expired on} SUCCESS {Paid out on} FAILED {This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on} PAYPAL_PENDING {Payout process started on} UNCLAIMED {The email you provided does not link to an existing PayPal account. Payout expires on} ONHOLD {Payout on hold and in review since} REFUNDED {Payout refunded on} RETURNED {Payout returned on} REVERSED {Payout reversed on} BLOCKED {Payout blocked on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} EXPIRED {Expired} REDEEMED {Redeemed} PENDING {Pending} SUCCESS {Paid Out} FAILED {Failed} PAYPAL_PENDING {In progress} UNCLAIMED {Unclaimed} ONHOLD {In progress} REFUNDED {Refunded} RETURNED {Returned} REVERSED {Reversed} BLOCKED {Blocked} other {Not available} }"\n ></sqp-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n ></sqm-empty>\n </sqm-referral-table>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email="support@example.com"\n terms-link="https:\\/\\/example.com"\n faq-link="https:\\/\\/example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n';var paypalMonoWidget='<sqm-brand brand-color="#4225c4" brand-font="Nunito Sans">\n <sqm-portal-container\n direction="column"\n padding="small"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n background-color="#ffffff"\n >\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n display="grid"\n max-width="100%"\n >\n <sqm-hero-image\n image-url="https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png"\n header="MyCompany Rewards"\n description="Refer friends and complete tasks to earn rewards"\n layout="columns"\n image-pos="right"\n background-color="#F9F9F9"\n image-mobile-pos="top"\n image-percentage="50"\n padding-image="none"\n padding-text="xxxx-large"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction="column"\n padding="none"\n gap="xxx-large"\n max-width="770px"\n center\n display="grid"\n >\n <sqm-stat-container space="xxx-large" display="flex">\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/integrationRewardsCountFiltered/AVAILABLE/global"\n >\n <p>Giftcards Earned</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/POINT/value/global"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqp-account-details\n schedule-header-text="Schedule"\n integration-alert-text="Looks like this feature is turned off at the moment. Come back later to see if it’s enabled. "\n integration-alert-header="PayPal payouts are currently disabled"\n details-header-text="Payout details"\n pay-pal-account-header-text="PayPal account"\n connect-pay-pal-description-text="Connect your PayPal account to automatically receive payments/cash rewards."\n connect-pay-pal-account-button-text="Connect account"\n w-9-tax-label="Awaiting W-9 tax form"\n upcoming-payment-label="Upcoming"\n recent-payment-label="Recent payment"\n other-currencies-label="other currencies"\n next-payout-label="Next payout"\n next-payment-label="Next payment"\n header-text="PayPal account"\n edit-text="Edit"\n account-label="Account"\n success-message="Success!"\n submit-pay-pal-account-button-text="Connect account"\n pay-pal-email-label-help-text="Enter the email used for your PayPal account."\n pay-pal-email-label="PayPal email"\n modal-connect-pay-pal-account-header="Connect PayPal account"\n disconnect-account-header-text="Disconnect account"\n disconnect-account-description-text="You will not be able to receive payments if you disconnect your PayPal account."\n ></sqp-account-details>\n <sqm-portal-container\n gap="xx-large"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-titled-section\n text-align="center"\n label-margin="xxx-small"\n padding="none"\n >\n <h3 slot="label">Share $50 with friends</h3>\n <p slot="content">\n They’ll get a $50 credit towards a new account and you’ll get up to\n $1200\n </p>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment="start">\n <sqm-portal-container\n gap="large"\n slot="left"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon="circle">\n <sqm-timeline-entry\n reward="$50"\n unit="visa giftcard"\n desc="Your friend purchases a Business plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$200"\n unit="visa giftcard"\n desc="Our sales team qualifies your friend as a good fit for our Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward="$1000"\n unit="visa giftcard"\n desc="Your friend purchases an Enterprise plan"\n icon="circle"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap="large"\n slot="right"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <p>Choose how you want to share:</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text="Copied to Clipboard"\n tooltip-lifespan="1000"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap="x-small"\n direction="column"\n display="grid"\n max-width="100%"\n padding="none"\n >\n <sqm-share-button\n medium="email"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium="linkedin"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium="twitter"\n icon-slot="prefix"\n size="medium"\n type="default"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n <sqm-portal-container\n gap="xx-large"\n direction="column"\n display="grid"\n max-width="100%"\n min-width=""\n padding="none"\n >\n <sqm-titled-section text-align="center" label-margin="xxx-small">\n <h3 slot="label">Earn more rewards</h3>\n <p slot="content">\n Get points while using our product. Use those points to redeem\n rewards like one free month of Enterprise or two plane tickets to\n anywhere in North America\n </p>\n </sqm-titled-section>\n <sqm-card-feed gap="24" width="347">\n <sqm-task-card\n reward-amount="20"\n goal="1"\n card-title="Complete a Survey"\n description="Fill out our NPS survey and get 20 points for giving us honest feedback."\n button-text="Take survey"\n reward-unit="Points"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="250"\n goal="500"\n show-progress-bar\n card-title="Spend $500"\n description="Earn 250 points when you spend $500 or more."\n button-text="See plans"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n progress-bar-unit="$"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n goal="1"\n reward-amount="50"\n card-title="Follow Us on Twitter"\n description="Earn 50 points when you follow us on Twitter!"\n button-text="Follow"\n button-link="https://twitter.com/"\n open-new-tab="true"\n event-key="socialFollow"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n finite="0"\n reward-unit="Points"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount="1"\n reward-unit="Free Month"\n goal="1"\n card-title="Upgrade Your Plan"\n description="Receive one free month for being a committed customer when you upgrade your plan."\n button-text="Upgrade"\n completed-text="Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}"\n ended-message="Ended {endDate}"\n expiry-message="Ends {endDate}"\n open-new-tab="false"\n finite="0"\n starts-on-message="Starts {startDate}"\n >\n </sqm-task-card>\n </sqm-card-feed>\n </sqm-portal-container>\n <sqm-tabs>\n <sqm-tab header="Referral history">\n <sqm-referral-table\n per-page="4"\n hidden-columns="2"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqp-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-blocked-text="Payout blocked on {date}."\n reward-on-hold-text="Payout on hold and in review since {date}."\n reward-paid-out-text="Paid out on {date}."\n reward-payout-failed-text="This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on {date}."\n reward-payout-in-progress-text="Payout processing started on {date}."\n reward-received-text="Reward received on"\n reward-refunded-text="Payout refunded on {date}."\n reward-returned-text="The email you provided does not link to an existing PayPal account. Payout expired on {date}."\n reward-reversed-text="Payout reversed on {date}."\n reward-unclaimed-text="The email you provided does not link to an existing PayPal account. Payout expires on {date}."\n status-long-text="{status, select, INPROGRESS {In Progress} TRANSFERRED {Transferred} AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} REDEEMED {Redeemed on} PENDING {Available on} EXPIRED {Reward expired on} SUCCESS {Paid out on} FAILED {This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on} PAYPAL_PENDING {Payout process started on} UNCLAIMED {The email you provided does not link to an existing PayPal account. Payout expires on} ONHOLD {Payout on hold and in review since} REFUNDED {Payout refunded on} RETURNED {Payout returned on} REVERSED {Payout reversed on} BLOCKED {Payout blocked on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} EXPIRED {Expired} REDEEMED {Redeemed} PENDING {Pending} SUCCESS {Paid Out} FAILED {Failed} PAYPAL_PENDING {In progress} UNCLAIMED {Unclaimed} ONHOLD {In progress} REFUNDED {Refunded} RETURNED {Returned} REVERSED {Reversed} BLOCKED {Blocked} other {Not available} }"\n ></sqp-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty>\n </sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n per-page="4"\n program-id=""\n hidden-columns="0"\n more-label="Next"\n prev-label="Prev"\n sm-breakpoint="599"\n md-breakpoint="799"\n >\n <sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqp-status-column\n column-title="Status"\n expiry-text="Expires on "\n pending-scheduled="Until"\n pending-unhandled="Fulfillment error"\n pending-us-tax="W-9 required"\n reward-blocked-text="Payout blocked on"\n reward-on-hold-text="Payout on hold and in review since"\n reward-paid-out-text="Paid out on"\n reward-payout-failed-text="This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on"\n reward-payout-in-progress-text="Payout processing started on"\n reward-refunded-text="Payout refunded on"\n reward-returned-text="The email you provided does not link to an existing PayPal account. Payout expired on"\n reward-reversed-text="Payout reversed on"\n reward-unclaimed-text="The email you provided does not link to an existing PayPal account. Payout expires on"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} EXPIRED {Expired} REDEEMED {Redeemed} PENDING {Pending} SUCCESS {Paid Out} FAILED {Failed} PAYPAL_PENDING {In progress} UNCLAIMED {Unclaimed} ONHOLD {In progress} REFUNDED {Refunded} RETURNED {Returned} REVERSED {Reversed} BLOCKED {Blocked} other {Not available} }"\n ></sqp-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot="empty"\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-tab>\n </sqm-tabs>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n padding-bottom="none"\n padding-left="none"\n padding-right="none"\n padding-top="none"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n';function Buttons(e){var t=e.callbacks,n=e.states,a=e.template;return h("div",null,h("button",{onClick:function(){return t.setPreviewTemplate(n.editedTemplate)}},"Update Preview"),h("button",{style:{marginLeft:"10px"},onClick:function(){return t.setPreviewTemplate(a)}},"Preview Dashboard"))}function DefaultTemplateView(e){var t=e.states,n=e.callbacks;return h("div",{style:{height:"50vh"}},h("textarea",{style:{width:"100%",height:"300px"},onChange:function(e){return n.setEditedTemplate(e.target.value)}},t.editedTemplate),h(Buttons,{states:t,callbacks:n,template:e.template}),h("h2",null,"Navigation"),h("div",{style:{display:"grid",gridTemplateColumns:"repeat(9, 80px)",gridGap:"10px"}},h("button",{onClick:function(){return hn.push("/")}},"Dashboard"),e.leadSubmit&&h("button",{onClick:function(){return hn.push("/refer")}},"Submit a Referral"),h("button",{onClick:function(){return hn.push("/activity")}},"Activity"),h("button",{onClick:function(){return hn.push("/editProfile")}},"Edit Profile"),h("button",{onClick:function(){return hn.push("/login")}},"Login"),h("button",{onClick:function(){return hn.push("/register")}},"Register"),h("button",{onClick:function(){return hn.push("/emailVerification")}},"Email Verification"),h("button",{onClick:function(){return hn.push("/verifyEmail")}},"Verify Email"),h("button",{onClick:function(){return hn.push("/forgotPassword")}},"Forgot Password"),h("button",{onClick:function(){return hn.push("/resetPassword")}},"Reset Password")),h("br",null),h("div",{innerHTML:t.previewTemplate}))}var marked=createCommonjsModule((function(e,t){(function(t,n){e.exports=n()})(commonjsGlobal,(function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||false;a.configurable=true;if("value"in a)a.writable=true;Object.defineProperty(e,a.key,a)}}function t(t,n,a){if(n)e(t.prototype,n);if(a)e(t,a);return t}function n(e,t){if(!e)return;if(typeof e==="string")return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor)n=e.constructor.name;if(n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}function a(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function r(e,t){var a=typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(a)return(a=a.call(e)).next.bind(a);if(Array.isArray(e)||(a=n(e))||t&&e&&typeof e.length==="number"){if(a)e=a;var r=0;return function(){if(r>=e.length)return{done:true};return{done:false,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s={exports:{}};function i(){return{baseUrl:null,breaks:false,extensions:null,gfm:true,headerIds:true,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:true,pedantic:false,renderer:null,sanitize:false,sanitizer:null,silent:false,smartLists:false,smartypants:false,tokenizer:null,walkTokens:null,xhtml:false}}function o(e){s.exports.defaults=e}s.exports={defaults:i(),getDefaults:i,changeDefaults:o};var l=/[&<>"']/;var d=/[&<>"']/g;var u=/[<>"']|&(?!#?\w+;)/;var c=/[<>"']|&(?!#?\w+;)/g;var m={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};var h=function e(t){return m[t]};function p(e,t){if(t){if(l.test(e)){return e.replace(d,h)}}else{if(u.test(e)){return e.replace(c,h)}}return e}var g=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function f(e){return e.replace(g,(function(e,t){t=t.toLowerCase();if(t==="colon")return":";if(t.charAt(0)==="#"){return t.charAt(1)==="x"?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1))}return""}))}var b=/(^|[^\[])\^/g;function w(e,t){e=e.source||e;t=t||"";var n={replace:function t(a,r){r=r.source||r;r=r.replace(b,"$1");e=e.replace(a,r);return n},getRegex:function n(){return new RegExp(e,t)}};return n}var v=/[^\w:]/g;var x=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function y(e,t,n){if(e){var a;try{a=decodeURIComponent(f(n)).replace(v,"").toLowerCase()}catch(e){return null}if(a.indexOf("javascript:")===0||a.indexOf("vbscript:")===0||a.indexOf("data:")===0){return null}}if(t&&!x.test(n)){n=T(t,n)}try{n=encodeURI(n).replace(/%25/g,"%")}catch(e){return null}return n}var C={};var E=/^[^:]+:\/*[^/]*$/;var k=/^([^:]+:)[\s\S]*$/;var A=/^([^:]+:\/*[^/]*)[\s\S]*$/;function T(e,t){if(!C[" "+e]){if(E.test(e)){C[" "+e]=e+"/"}else{C[" "+e]=_(e,"/",true)}}e=C[" "+e];var n=e.indexOf(":")===-1;if(t.substring(0,2)==="//"){if(n){return t}return e.replace(k,"$1")+t}else if(t.charAt(0)==="/"){if(n){return t}return e.replace(A,"$1")+t}else{return e+t}}var q={exec:function e(){}};function R(e){var t=1,n,a;for(;t<arguments.length;t++){n=arguments[t];for(a in n){if(Object.prototype.hasOwnProperty.call(n,a)){e[a]=n[a]}}}return e}function D(e,t){var n=e.replace(/\|/g,(function(e,t,n){var a=false,r=t;while(--r>=0&&n[r]==="\\"){a=!a}if(a){return"|"}else{return" |"}})),a=n.split(/ \|/);var r=0;if(!a[0].trim()){a.shift()}if(!a[a.length-1].trim()){a.pop()}if(a.length>t){a.splice(t)}else{while(a.length<t){a.push("")}}for(;r<a.length;r++){a[r]=a[r].trim().replace(/\\\|/g,"|")}return a}function _(e,t,n){var a=e.length;if(a===0){return""}var r=0;while(r<a){var s=e.charAt(a-r-1);if(s===t&&!n){r++}else if(s!==t&&n){r++}else{break}}return e.substr(0,a-r)}function S(e,t){if(e.indexOf(t[1])===-1){return-1}var n=e.length;var a=0,r=0;for(;r<n;r++){if(e[r]==="\\"){r++}else if(e[r]===t[0]){a++}else if(e[r]===t[1]){a--;if(a<0){return r}}}return-1}function P(e){if(e&&e.sanitize&&!e.silent){console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}}function I(e,t){if(t<1){return""}var n="";while(t>1){if(t&1){n+=e}t>>=1;e+=e}return n+e}var F={escape:p,unescape:f,edit:w,cleanUrl:y,resolveUrl:T,noopTest:q,merge:R,splitCells:D,rtrim:_,findClosingBracket:S,checkSanitizeDeprecation:P,repeatString:I};var L=s.exports.defaults;var N=F.rtrim,B=F.splitCells,O=F.escape,V=F.findClosingBracket;function G(e,t,n,a){var r=t.href;var s=t.title?O(t.title):null;var i=e[1].replace(/\\([\[\]])/g,"$1");if(e[0].charAt(0)!=="!"){a.state.inLink=true;var o={type:"link",raw:n,href:r,title:s,text:i,tokens:a.inlineTokens(i,[])};a.state.inLink=false;return o}else{return{type:"image",raw:n,href:r,title:s,text:O(i)}}}function $(e,t){var n=e.match(/^(\s+)(?:```)/);if(n===null){return t}var a=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);if(t===null){return e}var n=t[0];if(n.length>=a.length){return e.slice(a.length)}return e})).join("\n")}var M=function(){function e(e){this.options=e||L}var t=e.prototype;t.space=function e(t){var n=this.rules.block.newline.exec(t);if(n){if(n[0].length>1){return{type:"space",raw:n[0]}}return{raw:"\n"}}};t.code=function e(t){var n=this.rules.block.code.exec(t);if(n){var a=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:!this.options.pedantic?N(a,"\n"):a}}};t.fences=function e(t){var n=this.rules.block.fences.exec(t);if(n){var a=n[0];var r=$(a,n[3]||"");return{type:"code",raw:a,lang:n[2]?n[2].trim():n[2],text:r}}};t.heading=function e(t){var n=this.rules.block.heading.exec(t);if(n){var a=n[2].trim();if(/#$/.test(a)){var r=N(a,"#");if(this.options.pedantic){a=r.trim()}else if(!r||/ $/.test(r)){a=r.trim()}}var s={type:"heading",raw:n[0],depth:n[1].length,text:a,tokens:[]};this.lexer.inline(s.text,s.tokens);return s}};t.hr=function e(t){var n=this.rules.block.hr.exec(t);if(n){return{type:"hr",raw:n[0]}}};t.blockquote=function e(t){var n=this.rules.block.blockquote.exec(t);if(n){var a=n[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:n[0],tokens:this.lexer.blockTokens(a,[]),text:a}}};t.list=function e(t){var n=this.rules.block.list.exec(t);if(n){var a,r,s,i,o,l,d,u,c,m;var h=n[1].trim();var p=h.length>1;var e={type:"list",raw:"",ordered:p,start:p?+h.slice(0,-1):"",loose:false,items:[]};h=p?"\\d{1,9}\\"+h.slice(-1):"\\"+h;if(this.options.pedantic){h=p?h:"[*+-]"}var g=new RegExp("^( {0,3}"+h+")((?: [^\\n]*| *)(?:\\n[^\\n]*)*(?:\\n|$))");while(t){if(this.rules.block.hr.test(t)){break}if(!(n=g.exec(t))){break}c=n[2].split("\n");if(this.options.pedantic){i=2;m=c[0].trimLeft()}else{i=n[2].search(/[^ ]/);i=n[1].length+(i>4?1:i);m=c[0].slice(i-n[1].length)}l=false;a=n[0];if(!c[0]&&/^ *$/.test(c[1])){a=n[1]+c.slice(0,2).join("\n")+"\n";e.loose=true;c=[]}var f=new RegExp("^ {0,"+Math.min(3,i-1)+"}(?:[*+-]|\\d{1,9}[.)])");for(o=1;o<c.length;o++){u=c[o];if(this.options.pedantic){u=u.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")}if(f.test(u)){a=n[1]+c.slice(0,o).join("\n")+"\n";break}if(!l){if(!u.trim()){l=true}if(u.search(/[^ ]/)>=i){m+="\n"+u.slice(i)}else{m+="\n"+u}continue}if(u.search(/[^ ]/)>=i||!u.trim()){m+="\n"+u.slice(i);continue}else{a=n[1]+c.slice(0,o).join("\n")+"\n";break}}if(!e.loose){if(d){e.loose=true}else if(/\n *\n *$/.test(a)){d=true}}if(this.options.gfm){r=/^\[[ xX]\] /.exec(m);if(r){s=r[0]!=="[ ] ";m=m.replace(/^\[[ xX]\] +/,"")}}e.items.push({type:"list_item",raw:a,task:!!r,checked:s,loose:false,text:m});e.raw+=a;t=t.slice(a.length)}e.items[e.items.length-1].raw=a.trimRight();e.items[e.items.length-1].text=m.trimRight();e.raw=e.raw.trimRight();var b=e.items.length;for(o=0;o<b;o++){this.lexer.state.top=false;e.items[o].tokens=this.lexer.blockTokens(e.items[o].text,[]);if(e.items[o].tokens.some((function(e){return e.type==="space"}))){e.loose=true;e.items[o].loose=true}}return e}};t.html=function e(t){var n=this.rules.block.html.exec(t);if(n){var a={type:"html",raw:n[0],pre:!this.options.sanitizer&&(n[1]==="pre"||n[1]==="script"||n[1]==="style"),text:n[0]};if(this.options.sanitize){a.type="paragraph";a.text=this.options.sanitizer?this.options.sanitizer(n[0]):O(n[0]);a.tokens=[];this.lexer.inline(a.text,a.tokens)}return a}};t.def=function e(t){var n=this.rules.block.def.exec(t);if(n){if(n[3])n[3]=n[3].substring(1,n[3].length-1);var a=n[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:a,raw:n[0],href:n[2],title:n[3]}}};t.table=function e(t){var n=this.rules.block.table.exec(t);if(n){var a={type:"table",header:B(n[1]).map((function(e){return{text:e}})),align:n[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:n[3]?n[3].replace(/\n$/,"").split("\n"):[]};if(a.header.length===a.align.length){a.raw=n[0];var r=a.align.length;var s,i,o,l;for(s=0;s<r;s++){if(/^ *-+: *$/.test(a.align[s])){a.align[s]="right"}else if(/^ *:-+: *$/.test(a.align[s])){a.align[s]="center"}else if(/^ *:-+ *$/.test(a.align[s])){a.align[s]="left"}else{a.align[s]=null}}r=a.rows.length;for(s=0;s<r;s++){a.rows[s]=B(a.rows[s],a.header.length).map((function(e){return{text:e}}))}r=a.header.length;for(i=0;i<r;i++){a.header[i].tokens=[];this.lexer.inlineTokens(a.header[i].text,a.header[i].tokens)}r=a.rows.length;for(i=0;i<r;i++){l=a.rows[i];for(o=0;o<l.length;o++){l[o].tokens=[];this.lexer.inlineTokens(l[o].text,l[o].tokens)}}return a}}};t.lheading=function e(t){var n=this.rules.block.lheading.exec(t);if(n){var a={type:"heading",raw:n[0],depth:n[2].charAt(0)==="="?1:2,text:n[1],tokens:[]};this.lexer.inline(a.text,a.tokens);return a}};t.paragraph=function e(t){var n=this.rules.block.paragraph.exec(t);if(n){var a={type:"paragraph",raw:n[0],text:n[1].charAt(n[1].length-1)==="\n"?n[1].slice(0,-1):n[1],tokens:[]};this.lexer.inline(a.text,a.tokens);return a}};t.text=function e(t){var n=this.rules.block.text.exec(t);if(n){var a={type:"text",raw:n[0],text:n[0],tokens:[]};this.lexer.inline(a.text,a.tokens);return a}};t.escape=function e(t){var n=this.rules.inline.escape.exec(t);if(n){return{type:"escape",raw:n[0],text:O(n[1])}}};t.tag=function e(t){var n=this.rules.inline.tag.exec(t);if(n){if(!this.lexer.state.inLink&&/^<a /i.test(n[0])){this.lexer.state.inLink=true}else if(this.lexer.state.inLink&&/^<\/a>/i.test(n[0])){this.lexer.state.inLink=false}if(!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])){this.lexer.state.inRawBlock=true}else if(this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])){this.lexer.state.inRawBlock=false}return{type:this.options.sanitize?"text":"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):O(n[0]):n[0]}}};t.link=function e(t){var n=this.rules.inline.link.exec(t);if(n){var a=n[2].trim();if(!this.options.pedantic&&/^</.test(a)){if(!/>$/.test(a)){return}var r=N(a.slice(0,-1),"\\");if((a.length-r.length)%2===0){return}}else{var s=V(n[2],"()");if(s>-1){var i=n[0].indexOf("!")===0?5:4;var o=i+n[1].length+s;n[2]=n[2].substring(0,s);n[0]=n[0].substring(0,o).trim();n[3]=""}}var l=n[2];var d="";if(this.options.pedantic){var e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(l);if(e){l=e[1];d=e[3]}}else{d=n[3]?n[3].slice(1,-1):""}l=l.trim();if(/^</.test(l)){if(this.options.pedantic&&!/>$/.test(a)){l=l.slice(1)}else{l=l.slice(1,-1)}}return G(n,{href:l?l.replace(this.rules.inline._escapes,"$1"):l,title:d?d.replace(this.rules.inline._escapes,"$1"):d},n[0],this.lexer)}};t.reflink=function e(t,n){var a;if((a=this.rules.inline.reflink.exec(t))||(a=this.rules.inline.nolink.exec(t))){var r=(a[2]||a[1]).replace(/\s+/g," ");r=n[r.toLowerCase()];if(!r||!r.href){var s=a[0].charAt(0);return{type:"text",raw:s,text:s}}return G(a,r,a[0],this.lexer)}};t.emStrong=function e(t,n,a){if(a===void 0){a=""}var r=this.rules.inline.emStrong.lDelim.exec(t);if(!r)return;if(r[3]&&a.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))return;var s=r[1]||r[2]||"";if(!s||s&&(a===""||this.rules.inline.punctuation.exec(a))){var i=r[0].length-1;var o,l,d=i,u=0;var c=r[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;c.lastIndex=0;n=n.slice(-1*t.length+i);while((r=c.exec(n))!=null){o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6];if(!o)continue;l=o.length;if(r[3]||r[4]){d+=l;continue}else if(r[5]||r[6]){if(i%3&&!((i+l)%3)){u+=l;continue}}d-=l;if(d>0)continue;l=Math.min(l,l+d+u);if(Math.min(i,l)%2){var m=t.slice(1,i+r.index+l);return{type:"em",raw:t.slice(0,i+r.index+l+1),text:m,tokens:this.lexer.inlineTokens(m,[])}}var h=t.slice(2,i+r.index+l-1);return{type:"strong",raw:t.slice(0,i+r.index+l+1),text:h,tokens:this.lexer.inlineTokens(h,[])}}}};t.codespan=function e(t){var n=this.rules.inline.code.exec(t);if(n){var a=n[2].replace(/\n/g," ");var r=/[^ ]/.test(a);var s=/^ /.test(a)&&/ $/.test(a);if(r&&s){a=a.substring(1,a.length-1)}a=O(a,true);return{type:"codespan",raw:n[0],text:a}}};t.br=function e(t){var n=this.rules.inline.br.exec(t);if(n){return{type:"br",raw:n[0]}}};t.del=function e(t){var n=this.rules.inline.del.exec(t);if(n){return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2],[])}}};t.autolink=function e(t,n){var a=this.rules.inline.autolink.exec(t);if(a){var r,s;if(a[2]==="@"){r=O(this.options.mangle?n(a[1]):a[1]);s="mailto:"+r}else{r=O(a[1]);s=r}return{type:"link",raw:a[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}};t.url=function e(t,n){var a;if(a=this.rules.inline.url.exec(t)){var r,s;if(a[2]==="@"){r=O(this.options.mangle?n(a[0]):a[0]);s="mailto:"+r}else{var i;do{i=a[0];a[0]=this.rules.inline._backpedal.exec(a[0])[0]}while(i!==a[0]);r=O(a[0]);if(a[1]==="www."){s="http://"+r}else{s=r}}return{type:"link",raw:a[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}};t.inlineText=function e(t,n){var a=this.rules.inline.text.exec(t);if(a){var r;if(this.lexer.state.inRawBlock){r=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(a[0]):O(a[0]):a[0]}else{r=O(this.options.smartypants?n(a[0]):a[0])}return{type:"text",raw:a[0],text:r}}};return e}();var W=F.noopTest,U=F.edit,j=F.merge;var H={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:"+"<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)"+"|comment[^\\n]*(\\n+|$)"+"|<\\?[\\s\\S]*?(?:\\?>\\n*|$)"+"|<![A-Z][\\s\\S]*?(?:>\\n*|$)"+"|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)"+"|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)"+"|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)"+"|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)"+")",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:W,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/};H._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/;H._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;H.def=U(H.def).replace("label",H._label).replace("title",H._title).getRegex();H.bullet=/(?:[*+-]|\d{1,9}[.)])/;H.listItemStart=U(/^( *)(bull) */).replace("bull",H.bullet).getRegex();H.list=U(H.list).replace(/bull/g,H.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+H.def.source+")").getRegex();H._tag="address|article|aside|base|basefont|blockquote|body|caption"+"|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption"+"|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe"+"|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option"+"|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr"+"|track|ul";H._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/;H.html=U(H.html,"i").replace("comment",H._comment).replace("tag",H._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();H.paragraph=U(H._paragraph).replace("hr",H.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",H._tag).getRegex();H.blockquote=U(H.blockquote).replace("paragraph",H.paragraph).getRegex();H.normal=j({},H);H.gfm=j({},H.normal,{table:"^ *([^\\n ].*\\|.*)\\n"+" {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?"+"(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});H.gfm.table=U(H.gfm.table).replace("hr",H.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",H._tag).getRegex();H.pedantic=j({},H.normal,{html:U("^ *(?:comment *(?:\\n|\\s*$)"+"|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)"+"|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",H._comment).replace(/tag/g,"(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub"+"|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)"+"\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:W,paragraph:U(H.normal._paragraph).replace("hr",H.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",H.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var z={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:W,tag:"^comment"+"|^</[a-zA-Z][\\w:-]*\\s*>"+"|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>"+"|^<\\?[\\s\\S]*?\\?>"+"|^<![a-zA-Z]+\\s[\\s\\S]*?>"+"|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:W,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};z._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~";z.punctuation=U(z.punctuation).replace(/punctuation/g,z._punctuation).getRegex();z.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;z.escapedEmSt=/\\\*|\\_/g;z._comment=U(H._comment).replace("(?:--\x3e|$)","--\x3e").getRegex();z.emStrong.lDelim=U(z.emStrong.lDelim).replace(/punct/g,z._punctuation).getRegex();z.emStrong.rDelimAst=U(z.emStrong.rDelimAst,"g").replace(/punct/g,z._punctuation).getRegex();z.emStrong.rDelimUnd=U(z.emStrong.rDelimUnd,"g").replace(/punct/g,z._punctuation).getRegex();z._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;z._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;z._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;z.autolink=U(z.autolink).replace("scheme",z._scheme).replace("email",z._email).getRegex();z._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;z.tag=U(z.tag).replace("comment",z._comment).replace("attribute",z._attribute).getRegex();z._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;z._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;z._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;z.link=U(z.link).replace("label",z._label).replace("href",z._href).replace("title",z._title).getRegex();z.reflink=U(z.reflink).replace("label",z._label).getRegex();z.reflinkSearch=U(z.reflinkSearch,"g").replace("reflink",z.reflink).replace("nolink",z.nolink).getRegex();z.normal=j({},z);z.pedantic=j({},z.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:U(/^!?\[(label)\]\((.*?)\)/).replace("label",z._label).getRegex(),reflink:U(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",z._label).getRegex()});z.gfm=j({},z.normal,{escape:U(z.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/});z.gfm.url=U(z.gfm.url,"i").replace("email",z.gfm._extended_email).getRegex();z.breaks=j({},z.gfm,{br:U(z.br).replace("{2,}","*").getRegex(),text:U(z.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var Y={block:H,inline:z};var K=M;var J=s.exports.defaults;var X=Y.block,Q=Y.inline;var Z=F.repeatString;function ee(e){return e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function te(e){var t="",n,a;var r=e.length;for(n=0;n<r;n++){a=e.charCodeAt(n);if(Math.random()>.5){a="x"+a.toString(16)}t+="&#"+a+";"}return t}var ne=function(){function e(e){this.tokens=[];this.tokens.links=Object.create(null);this.options=e||J;this.options.tokenizer=this.options.tokenizer||new K;this.tokenizer=this.options.tokenizer;this.tokenizer.options=this.options;this.tokenizer.lexer=this;this.inlineQueue=[];this.state={inLink:false,inRawBlock:false,top:true};var t={block:X.normal,inline:Q.normal};if(this.options.pedantic){t.block=X.pedantic;t.inline=Q.pedantic}else if(this.options.gfm){t.block=X.gfm;if(this.options.breaks){t.inline=Q.breaks}else{t.inline=Q.gfm}}this.tokenizer.rules=t}e.lex=function t(n,a){var r=new e(a);return r.lex(n)};e.lexInline=function t(n,a){var r=new e(a);return r.inlineTokens(n)};var n=e.prototype;n.lex=function e(t){t=t.replace(/\r\n|\r/g,"\n").replace(/\t/g," ");this.blockTokens(t,this.tokens);var n;while(n=this.inlineQueue.shift()){this.inlineTokens(n.src,n.tokens)}return this.tokens};n.blockTokens=function e(t,n){var a=this;if(n===void 0){n=[]}if(this.options.pedantic){t=t.replace(/^ +$/gm,"")}var r,s,i,o;while(t){if(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((function(e){if(r=e.call({lexer:a},t,n)){t=t.substring(r.raw.length);n.push(r);return true}return false}))){continue}if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length);if(r.type){n.push(r)}continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length);s=n[n.length-1];if(s&&(s.type==="paragraph"||s.type==="text")){s.raw+="\n"+r.raw;s.text+="\n"+r.text;this.inlineQueue[this.inlineQueue.length-1].src=s.text}else{n.push(r)}continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length);s=n[n.length-1];if(s&&(s.type==="paragraph"||s.type==="text")){s.raw+="\n"+r.raw;s.text+="\n"+r.raw;this.inlineQueue[this.inlineQueue.length-1].src=s.text}else if(!this.tokens.links[r.tag]){this.tokens.links[r.tag]={href:r.href,title:r.title}}continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length);n.push(r);continue}i=t;if(this.options.extensions&&this.options.extensions.startBlock){(function(){var e=Infinity;var n=t.slice(1);var r=void 0;a.options.extensions.startBlock.forEach((function(t){r=t.call({lexer:this},n);if(typeof r==="number"&&r>=0){e=Math.min(e,r)}}));if(e<Infinity&&e>=0){i=t.substring(0,e+1)}})()}if(this.state.top&&(r=this.tokenizer.paragraph(i))){s=n[n.length-1];if(o&&s.type==="paragraph"){s.raw+="\n"+r.raw;s.text+="\n"+r.text;this.inlineQueue.pop();this.inlineQueue[this.inlineQueue.length-1].src=s.text}else{n.push(r)}o=i.length!==t.length;t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length);s=n[n.length-1];if(s&&s.type==="text"){s.raw+="\n"+r.raw;s.text+="\n"+r.text;this.inlineQueue.pop();this.inlineQueue[this.inlineQueue.length-1].src=s.text}else{n.push(r)}continue}if(t){var l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else{throw new Error(l)}}}this.state.top=true;return n};n.inline=function e(t,n){this.inlineQueue.push({src:t,tokens:n})};n.inlineTokens=function e(t,n){var a=this;if(n===void 0){n=[]}var r,s,i;var o=t;var l;var d,u;if(this.tokens.links){var c=Object.keys(this.tokens.links);if(c.length>0){while((l=this.tokenizer.rules.inline.reflinkSearch.exec(o))!=null){if(c.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))){o=o.slice(0,l.index)+"["+Z("a",l[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex)}}}}while((l=this.tokenizer.rules.inline.blockSkip.exec(o))!=null){o=o.slice(0,l.index)+"["+Z("a",l[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.blockSkip.lastIndex)}while((l=this.tokenizer.rules.inline.escapedEmSt.exec(o))!=null){o=o.slice(0,l.index)+"++"+o.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex)}while(t){if(!d){u=""}d=false;if(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(e){if(r=e.call({lexer:a},t,n)){t=t.substring(r.raw.length);n.push(r);return true}return false}))){continue}if(r=this.tokenizer.escape(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.tag(t)){t=t.substring(r.raw.length);s=n[n.length-1];if(s&&r.type==="text"&&s.type==="text"){s.raw+=r.raw;s.text+=r.text}else{n.push(r)}continue}if(r=this.tokenizer.link(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(r.raw.length);s=n[n.length-1];if(s&&r.type==="text"&&s.type==="text"){s.raw+=r.raw;s.text+=r.text}else{n.push(r)}continue}if(r=this.tokenizer.emStrong(t,o,u)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.codespan(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.br(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.del(t)){t=t.substring(r.raw.length);n.push(r);continue}if(r=this.tokenizer.autolink(t,te)){t=t.substring(r.raw.length);n.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(t,te))){t=t.substring(r.raw.length);n.push(r);continue}i=t;if(this.options.extensions&&this.options.extensions.startInline){(function(){var e=Infinity;var n=t.slice(1);var r=void 0;a.options.extensions.startInline.forEach((function(t){r=t.call({lexer:this},n);if(typeof r==="number"&&r>=0){e=Math.min(e,r)}}));if(e<Infinity&&e>=0){i=t.substring(0,e+1)}})()}if(r=this.tokenizer.inlineText(i,ee)){t=t.substring(r.raw.length);if(r.raw.slice(-1)!=="_"){u=r.raw.slice(-1)}d=true;s=n[n.length-1];if(s&&s.type==="text"){s.raw+=r.raw;s.text+=r.text}else{n.push(r)}continue}if(t){var m="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(m);break}else{throw new Error(m)}}}return n};t(e,null,[{key:"rules",get:function e(){return{block:X,inline:Q}}}]);return e}();var ae=s.exports.defaults;var re=F.cleanUrl,se=F.escape;var ie=function(){function e(e){this.options=e||ae}var t=e.prototype;t.code=function e(t,n,a){var r=(n||"").match(/\S*/)[0];if(this.options.highlight){var s=this.options.highlight(t,r);if(s!=null&&s!==t){a=true;t=s}}t=t.replace(/\n$/,"")+"\n";if(!r){return"<pre><code>"+(a?t:se(t,true))+"</code></pre>\n"}return'<pre><code class="'+this.options.langPrefix+se(r,true)+'">'+(a?t:se(t,true))+"</code></pre>\n"};t.blockquote=function e(t){return"<blockquote>\n"+t+"</blockquote>\n"};t.html=function e(t){return t};t.heading=function e(t,n,a,r){if(this.options.headerIds){return"<h"+n+' id="'+this.options.headerPrefix+r.slug(a)+'">'+t+"</h"+n+">\n"}return"<h"+n+">"+t+"</h"+n+">\n"};t.hr=function e(){return this.options.xhtml?"<hr/>\n":"<hr>\n"};t.list=function e(t,n,a){var r=n?"ol":"ul",s=n&&a!==1?' start="'+a+'"':"";return"<"+r+s+">\n"+t+"</"+r+">\n"};t.listitem=function e(t){return"<li>"+t+"</li>\n"};t.checkbox=function e(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "};t.paragraph=function e(t){return"<p>"+t+"</p>\n"};t.table=function e(t,n){if(n)n="<tbody>"+n+"</tbody>";return"<table>\n"+"<thead>\n"+t+"</thead>\n"+n+"</table>\n"};t.tablerow=function e(t){return"<tr>\n"+t+"</tr>\n"};t.tablecell=function e(t,n){var a=n.header?"th":"td";var r=n.align?"<"+a+' align="'+n.align+'">':"<"+a+">";return r+t+"</"+a+">\n"};t.strong=function e(t){return"<strong>"+t+"</strong>"};t.em=function e(t){return"<em>"+t+"</em>"};t.codespan=function e(t){return"<code>"+t+"</code>"};t.br=function e(){return this.options.xhtml?"<br/>":"<br>"};t.del=function e(t){return"<del>"+t+"</del>"};t.link=function e(t,n,a){t=re(this.options.sanitize,this.options.baseUrl,t);if(t===null){return a}var r='<a href="'+se(t)+'"';if(n){r+=' title="'+n+'"'}r+=">"+a+"</a>";return r};t.image=function e(t,n,a){t=re(this.options.sanitize,this.options.baseUrl,t);if(t===null){return a}var r='<img src="'+t+'" alt="'+a+'"';if(n){r+=' title="'+n+'"'}r+=this.options.xhtml?"/>":">";return r};t.text=function e(t){return t};return e}();var oe=function(){function e(){}var t=e.prototype;t.strong=function e(t){return t};t.em=function e(t){return t};t.codespan=function e(t){return t};t.del=function e(t){return t};t.html=function e(t){return t};t.text=function e(t){return t};t.link=function e(t,n,a){return""+a};t.image=function e(t,n,a){return""+a};t.br=function e(){return""};return e}();var le=function(){function e(){this.seen={}}var t=e.prototype;t.serialize=function e(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")};t.getNextSafeSlug=function e(t,n){var a=t;var r=0;if(this.seen.hasOwnProperty(a)){r=this.seen[t];do{r++;a=t+"-"+r}while(this.seen.hasOwnProperty(a))}if(!n){this.seen[t]=r;this.seen[a]=0}return a};t.slug=function e(t,n){if(n===void 0){n={}}var e=this.serialize(t);return this.getNextSafeSlug(e,n.dryrun)};return e}();var de=ie;var ue=oe;var ce=le;var me=s.exports.defaults;var he=F.unescape;var pe=function(){function e(e){this.options=e||me;this.options.renderer=this.options.renderer||new de;this.renderer=this.options.renderer;this.renderer.options=this.options;this.textRenderer=new ue;this.slugger=new ce}e.parse=function t(n,a){var r=new e(a);return r.parse(n)};e.parseInline=function t(n,a){var r=new e(a);return r.parseInline(n)};var t=e.prototype;t.parse=function e(t,n){if(n===void 0){n=true}var a="",r,s,i,o,l,d,u,c,m,h,p,g,f,b,w,v,x,y,C;var E=t.length;for(r=0;r<E;r++){h=t[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[h.type]){C=this.options.extensions.renderers[h.type].call({parser:this},h);if(C!==false||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(h.type)){a+=C||"";continue}}switch(h.type){case"space":{continue}case"hr":{a+=this.renderer.hr();continue}case"heading":{a+=this.renderer.heading(this.parseInline(h.tokens),h.depth,he(this.parseInline(h.tokens,this.textRenderer)),this.slugger);continue}case"code":{a+=this.renderer.code(h.text,h.lang,h.escaped);continue}case"table":{c="";u="";o=h.header.length;for(s=0;s<o;s++){u+=this.renderer.tablecell(this.parseInline(h.header[s].tokens),{header:true,align:h.align[s]})}c+=this.renderer.tablerow(u);m="";o=h.rows.length;for(s=0;s<o;s++){d=h.rows[s];u="";l=d.length;for(i=0;i<l;i++){u+=this.renderer.tablecell(this.parseInline(d[i].tokens),{header:false,align:h.align[i]})}m+=this.renderer.tablerow(u)}a+=this.renderer.table(c,m);continue}case"blockquote":{m=this.parse(h.tokens);a+=this.renderer.blockquote(m);continue}case"list":{p=h.ordered;g=h.start;f=h.loose;o=h.items.length;m="";for(s=0;s<o;s++){w=h.items[s];v=w.checked;x=w.task;b="";if(w.task){y=this.renderer.checkbox(v);if(f){if(w.tokens.length>0&&w.tokens[0].type==="paragraph"){w.tokens[0].text=y+" "+w.tokens[0].text;if(w.tokens[0].tokens&&w.tokens[0].tokens.length>0&&w.tokens[0].tokens[0].type==="text"){w.tokens[0].tokens[0].text=y+" "+w.tokens[0].tokens[0].text}}else{w.tokens.unshift({type:"text",text:y})}}else{b+=y}}b+=this.parse(w.tokens,f);m+=this.renderer.listitem(b,x,v)}a+=this.renderer.list(m,p,g);continue}case"html":{a+=this.renderer.html(h.text);continue}case"paragraph":{a+=this.renderer.paragraph(this.parseInline(h.tokens));continue}case"text":{m=h.tokens?this.parseInline(h.tokens):h.text;while(r+1<E&&t[r+1].type==="text"){h=t[++r];m+="\n"+(h.tokens?this.parseInline(h.tokens):h.text)}a+=n?this.renderer.paragraph(m):m;continue}default:{var k='Token with "'+h.type+'" type was not found.';if(this.options.silent){console.error(k);return}else{throw new Error(k)}}}}return a};t.parseInline=function e(t,n){n=n||this.renderer;var a="",r,s,i;var o=t.length;for(r=0;r<o;r++){s=t[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[s.type]){i=this.options.extensions.renderers[s.type].call({parser:this},s);if(i!==false||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){a+=i||"";continue}}switch(s.type){case"escape":{a+=n.text(s.text);break}case"html":{a+=n.html(s.text);break}case"link":{a+=n.link(s.href,s.title,this.parseInline(s.tokens,n));break}case"image":{a+=n.image(s.href,s.title,s.text);break}case"strong":{a+=n.strong(this.parseInline(s.tokens,n));break}case"em":{a+=n.em(this.parseInline(s.tokens,n));break}case"codespan":{a+=n.codespan(s.text);break}case"br":{a+=n.br();break}case"del":{a+=n.del(this.parseInline(s.tokens,n));break}case"text":{a+=n.text(s.text);break}default:{var l='Token with "'+s.type+'" type was not found.';if(this.options.silent){console.error(l);return}else{throw new Error(l)}}}}return a};return e}();var ge=ne;var fe=pe;var be=M;var we=ie;var ve=oe;var xe=le;var ye=F.merge,Ce=F.checkSanitizeDeprecation,Ee=F.escape;var ke=s.exports.getDefaults,Ae=s.exports.changeDefaults,Te=s.exports.defaults;function qe(e,t,n){if(typeof e==="undefined"||e===null){throw new Error("marked(): input parameter is undefined or null")}if(typeof e!=="string"){throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected")}if(typeof t==="function"){n=t;t=null}t=ye({},qe.defaults,t||{});Ce(t);if(n){var a=t.highlight;var r;try{r=ge.lex(e,t)}catch(e){return n(e)}var s=function e(s){var i;if(!s){try{if(t.walkTokens){qe.walkTokens(r,t.walkTokens)}i=fe.parse(r,t)}catch(e){s=e}}t.highlight=a;return s?n(s):n(null,i)};if(!a||a.length<3){return s()}delete t.highlight;if(!r.length)return s();var i=0;qe.walkTokens(r,(function(e){if(e.type==="code"){i++;setTimeout((function(){a(e.text,e.lang,(function(t,n){if(t){return s(t)}if(n!=null&&n!==e.text){e.text=n;e.escaped=true}i--;if(i===0){s()}}))}),0)}}));if(i===0){s()}return}try{var o=ge.lex(e,t);if(t.walkTokens){qe.walkTokens(o,t.walkTokens)}return fe.parse(o,t)}catch(e){e.message+="\nPlease report this to https://github.com/markedjs/marked.";if(t.silent){return"<p>An error occurred:</p><pre>"+Ee(e.message+"",true)+"</pre>"}throw e}}qe.options=qe.setOptions=function(e){ye(qe.defaults,e);Ae(qe.defaults);return qe};qe.getDefaults=ke;qe.defaults=Te;qe.use=function(){var e=this;for(var t=arguments.length,n=new Array(t),a=0;a<t;a++){n[a]=arguments[a]}var r=ye.apply(void 0,[{}].concat(n));var s=qe.defaults.extensions||{renderers:{},childTokens:{}};var i;n.forEach((function(t){if(t.extensions){i=true;t.extensions.forEach((function(e){if(!e.name){throw new Error("extension name required")}if(e.renderer){var t=s.renderers?s.renderers[e.name]:null;if(t){s.renderers[e.name]=function(){for(var n=arguments.length,a=new Array(n),r=0;r<n;r++){a[r]=arguments[r]}var s=e.renderer.apply(this,a);if(s===false){s=t.apply(this,a)}return s}}else{s.renderers[e.name]=e.renderer}}if(e.tokenizer){if(!e.level||e.level!=="block"&&e.level!=="inline"){throw new Error("extension level must be 'block' or 'inline'")}if(s[e.level]){s[e.level].unshift(e.tokenizer)}else{s[e.level]=[e.tokenizer]}if(e.start){if(e.level==="block"){if(s.startBlock){s.startBlock.push(e.start)}else{s.startBlock=[e.start]}}else if(e.level==="inline"){if(s.startInline){s.startInline.push(e.start)}else{s.startInline=[e.start]}}}}if(e.childTokens){s.childTokens[e.name]=e.childTokens}}))}if(t.renderer){(function(){var e=qe.defaults.renderer||new we;var n=function n(a){var r=e[a];e[a]=function(){for(var n=arguments.length,s=new Array(n),i=0;i<n;i++){s[i]=arguments[i]}var o=t.renderer[a].apply(e,s);if(o===false){o=r.apply(e,s)}return o}};for(var a in t.renderer){n(a)}r.renderer=e})()}if(t.tokenizer){(function(){var e=qe.defaults.tokenizer||new be;var n=function n(a){var r=e[a];e[a]=function(){for(var n=arguments.length,s=new Array(n),i=0;i<n;i++){s[i]=arguments[i]}var o=t.tokenizer[a].apply(e,s);if(o===false){o=r.apply(e,s)}return o}};for(var a in t.tokenizer){n(a)}r.tokenizer=e})()}if(t.walkTokens){var n=qe.defaults.walkTokens;r.walkTokens=function(a){t.walkTokens.call(e,a);if(n){n(a)}}}if(i){r.extensions=s}qe.setOptions(r)}))};qe.walkTokens=function(e,t){var n=function e(){var n=s.value;t(n);switch(n.type){case"table":{for(var a=r(n.header),i;!(i=a()).done;){var o=i.value;qe.walkTokens(o.tokens,t)}for(var l=r(n.rows),d;!(d=l()).done;){var u=d.value;for(var c=r(u),m;!(m=c()).done;){var h=m.value;qe.walkTokens(h.tokens,t)}}break}case"list":{qe.walkTokens(n.items,t);break}default:{if(qe.defaults.extensions&&qe.defaults.extensions.childTokens&&qe.defaults.extensions.childTokens[n.type]){qe.defaults.extensions.childTokens[n.type].forEach((function(e){qe.walkTokens(n[e],t)}))}else if(n.tokens){qe.walkTokens(n.tokens,t)}}}};for(var a=r(e),s;!(s=a()).done;){n()}};qe.parseInline=function(e,t){if(typeof e==="undefined"||e===null){throw new Error("marked.parseInline(): input parameter is undefined or null")}if(typeof e!=="string"){throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected")}t=ye({},qe.defaults,t||{});Ce(t);try{var n=ge.lexInline(e,t);if(t.walkTokens){qe.walkTokens(n,t.walkTokens)}return fe.parseInline(n,t)}catch(e){e.message+="\nPlease report this to https://github.com/markedjs/marked.";if(t.silent){return"<p>An error occurred:</p><pre>"+Ee(e.message+"",true)+"</pre>"}throw e}};qe.Parser=fe;qe.parser=fe.parse;qe.Renderer=we;qe.TextRenderer=ve;qe.Lexer=ge;qe.lexer=ge.lex;qe.Tokenizer=be;qe.Slugger=xe;qe.parse=qe;var Re=qe;return Re}))}));function TemplateView$1(e){var t=e.states,n=e.callbacks,a=e.readme;return[h("textarea",{style:{width:"100%",height:"300px"},onChange:function(e){return n.setEditedTemplate(e.target.value)}},t.editedTemplate),h("button",{onClick:function(){return n.setPreviewTemplate(t.editedTemplate)}},"Update Preview"),a?h("details",null,h("summary",null,"Props readme"),h("div",{innerHTML:marked(a)})):"",h("div",{innerHTML:t.previewTemplate})]}var Widget_stories={title:"Templates / Widgets"};function useTemplate$1(e){var t=useState(e),n=t[0],a=t[1];var r=useState(e),s=r[0],i=r[1];return{states:{previewTemplate:s,editedTemplate:n},callbacks:{setEditedTemplate:a,setPreviewTemplate:i}}}var ReferralWidget=createHookStory((function(){var e=useTemplate$1(referralWidget),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:referralWidget})}));var MonoWidget=createHookStory((function(){var e=useTemplate$1(monoWidget),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:monoWidget})}));var Loyalty=createHookStory((function(){var e=useTemplate$1(loyaltyWidget),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:loyaltyWidget})}));var InstantAccessReferrerShareWidget=createHookStory((function(){var e=useTemplate$1(instantAccessReferrerShareWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var PaypalMonoWidget=createHookStory((function(){var e=useTemplate$1(paypalMonoWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var PaypalReferralWidget=createHookStory((function(){var e=useTemplate$1(paypalReferralWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var InstantAccessFriendCouponWidget=createHookStory((function(){var e=useTemplate$1(instantAccessFriendCouponWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var InstantAccessReferrerRegistrationWidget=createHookStory((function(){var e=useTemplate$1(instantAccessReferrerRegistrationWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var InstantAccessFriendRegistrationWidget=createHookStory((function(){var e=useTemplate$1(instantAccessFriendRegistrationWidget),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var Widget=Object.freeze({__proto__:null,default:Widget_stories,ReferralWidget:ReferralWidget,MonoWidget:MonoWidget,Loyalty:Loyalty,InstantAccessReferrerShareWidget:InstantAccessReferrerShareWidget,PaypalMonoWidget:PaypalMonoWidget,PaypalReferralWidget:PaypalReferralWidget,InstantAccessFriendCouponWidget:InstantAccessFriendCouponWidget,InstantAccessReferrerRegistrationWidget:InstantAccessReferrerRegistrationWidget,InstantAccessFriendRegistrationWidget:InstantAccessFriendRegistrationWidget});var SidebarItem_stories={title:"Components/Sidebar Item"};var InactiveItem=function(){var e={states:{active:false},data:{label:"Dashboard",icon:"house",path:"/"}};return h(NavigationSidebarItemView,Object.assign({},e))};var ActiveItem=function(){var e={states:{active:true},data:{label:"Dashboard",icon:"house",path:"/"}};return h(NavigationSidebarItemView,Object.assign({},e))};var SidebarItem=Object.freeze({__proto__:null,default:SidebarItem_stories,InactiveItem:InactiveItem,ActiveItem:ActiveItem});var NavigationSidebar_stories={title:"Components/Navigation Sidebar"};var DefaultNavigationSidebar=function(){var e={states:{active:false},data:{label:"Dashboard",icon:"house",path:"/"}};var t={states:{active:true},data:{label:"Activity",icon:"bar-chart",path:"/"}};return h(NavigationSidebarView,null,h(NavigationSidebarItemView,Object.assign({},e)),h(NavigationSidebarItemView,Object.assign({},t)))};var NavigationSidebar=Object.freeze({__proto__:null,default:NavigationSidebar_stories,DefaultNavigationSidebar:DefaultNavigationSidebar});var PortalLogin_stories={title:"Components/Portal Login"};var defaultProps$2={states:{error:"",loading:false,forgotPasswordPath:"/forgotPassword",registerPath:"/register"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{pageLabel:"Sign in to your account"}};var errorProps={states:{error:"Something went wrong. Please try again.",loading:false,forgotPasswordPath:"/forgotPassword",registerPath:"/register"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{pageLabel:"Sign in to your account"}};var loadingProps={states:{error:"",loading:true,forgotPasswordPath:"/forgotPassword",registerPath:"/register"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{pageLabel:"Sign in to your account"}};var Default$2=function(){return h(PortalLoginView,Object.assign({},defaultProps$2))};var LoginWithError=function(){return h(PortalLoginView,Object.assign({},errorProps))};var LoginLoading=function(){return h(PortalLoginView,Object.assign({},loadingProps))};var PortalLogin=Object.freeze({__proto__:null,default:PortalLogin_stories,Default:Default$2,LoginWithError:LoginWithError,LoginLoading:LoginLoading});var PortalRegister_stories={title:"Components/Portal Register"};var defaultProps$3={states:{registrationFormState:{},error:"",loading:false,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address"}};var errorProps$1={states:{error:"Something went wrong. Please try again.",registrationFormState:{},loading:false,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address"}};var loadingProps$1={states:{registrationFormState:{},error:"",loading:true,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address"}};var slottedProps={states:{registrationFormState:{},error:"",loading:false,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address",formData:h("div",null,h("sl-input",{style:{marginBottom:"var(--sl-spacing-x-large)"},exportparts:"label: input-label",label:"Slotted Input",required:true}),h("sl-input",{exportparts:"label: input-label",label:"Slotted Input 2",required:true}))}};var Default$3=function(){return h(PortalRegisterView,Object.assign({},defaultProps$3))};var RegisterWithError=function(){return h(PortalRegisterView,Object.assign({},errorProps$1))};var RegisterLoading=function(){return h(PortalRegisterView,Object.assign({},loadingProps$1))};var FieldsHidden=function(){return h("sqm-portal-register",{demoData:{states:{registrationFormState:{},error:"",loading:true,confirmPassword:true,hideInputs:true,loginPath:"/login"}}})};var SlottedInputs=function(){return h(PortalRegisterView,Object.assign({},slottedProps))};var TermsAndConditions=function(){return h(PortalRegisterView,Object.assign({},defaultProps$3,{content:__assign(__assign({},defaultProps$3.content),{terms:h("p",null,"By signing up you agree to the"," ",h("a",{href:"https://example.com",target:"_blank"},"Terms and Conditions"))})}))};var PortalRegister=Object.freeze({__proto__:null,default:PortalRegister_stories,Default:Default$3,RegisterWithError:RegisterWithError,RegisterLoading:RegisterLoading,FieldsHidden:FieldsHidden,SlottedInputs:SlottedInputs,TermsAndConditions:TermsAndConditions});var scenario$6='@author:derek\n@owner:ian\nFeature: Forgot Password\n\n @motivating\n Scenario: Users can request to reset their password\n Given a user enters their email address\n And that email address is linked to a previously created account\n When they click "Reset Password"\n Then the button enters a loading state\n When the password reset email is sent\n Then a confirmation banner is shown stating a password reset email was sent\n\n @motivating\n Scenario: Users are notified if sending their password reset email fails\n Given a user enters their email address\n And that email address is linked to a previously created account\n When they click "Reset Password"\n Then the button enters a loading state\n When the password reset email fails to send\n Then the user does not receive a password reset email\n And an error banner is shown stating that they should try again\n\n @motivating\n @landmine\n Scenario: If the input email is not associated to an account a success banner is shown but an email is not be sent\n Given the user entered an email address that is not associated to an accoun\n When they click "Reset Password"\n Then the button enters a loading state\n But no email is sent\n And a success banner is shown stating a password reset email was sent if the given email was associated to an account\n\n @motivating\n Scenario: Users can resend password reset email\n Given a user had previously requested to reset their password\n When they enter their email address\n And that email address is linked to a previously created account\n And they click "Reset Password"\n Then the user receives a second password reset email\n And a success banner is shown stating that their email was sent\n\n @motivating\n Scenario Outline: The email link can be configured to redirect users to a specific base path but defaults to "/resetPassword"\n Given a user viewing the password reset component\n And the component <mayHave> "redirect-path" with <value>\n When they request a password reset email\n And they click the link in the email\n Then they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn\'t have | N/A | /resetPassword |\n | has | /resetMyPassword | /resetMyPassword |\n\n @minutia\n Scenario Outline: Navigation back to the login page can be customized but defaults to "/login"\n Given a user viewing the password reset component\n And the component <mayHave> "login-path" with <value>\n Then they see a "Sign In" text button\n When they click "Sign In"\n Then they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn\'t have | N/A | /login |\n | has | /signin | /signin |';var PortalForgotPassword_stories={title:"Components/Portal Forgot Password",parameters:{scenario:scenario$6}};var defaultProps$4={states:{error:"",loading:false,success:false,loginPath:"/login"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{secondaryButton:"Cancel",messageSlot:"Enter your email below to receive a password reset link."}};var errorProps$2={states:{error:"Something went wrong. Please try again.",loading:false,success:false,loginPath:"/login"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{secondaryButton:"Cancel",messageSlot:"Enter your email below to receive a password reset link."}};var loadingProps$2={states:{error:"",loading:true,success:false,loginPath:"/login"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{secondaryButton:"Cancel",messageSlot:"Enter your email below to receive a password reset link."}};var successProps={states:{error:"",loading:false,success:true,loginPath:"/login"},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{secondaryButton:"Cancel",messageSlot:"Enter your email below to receive a password reset link."}};var Default$4=function(){return h(PortalForgotPasswordView,Object.assign({},defaultProps$4))};var ForgotPasswordWithError=function(){return h(PortalForgotPasswordView,Object.assign({},errorProps$2))};var ForgotPasswordLoading=function(){return h(PortalForgotPasswordView,Object.assign({},loadingProps$2))};var ForgotPasswordSuccess=function(){return h(PortalForgotPasswordView,Object.assign({},successProps))};var PortalForgotPassword=Object.freeze({__proto__:null,default:PortalForgotPassword_stories,Default:Default$4,ForgotPasswordWithError:ForgotPasswordWithError,ForgotPasswordLoading:ForgotPasswordLoading,ForgotPasswordSuccess:ForgotPasswordSuccess});var scenario$7='@author:derek\n@owner:ian\nFeature: Email Verification\n\n @minutia\n Scenario: User\'s redirected from registration can re-send their verification email\n Given a user has registered\n And they have been sent a verification email\n When they are redirected to the email verification page\n Then a message is displayed\n And it reflects that a email has been sent to their email\n But they can still re-send the email\n When they click to "Resend-Email"\n Then they receive a verification email\n\n @motivating\n Scenario: Users are notified if sending the email verification message fails\n Given a user viewing the email verification component\n And they have an email stored in session data from registration\n When they click to "Resend-Email"\n Then the text link is disabled\n When an error occurs trying to send the verification email\n Then the user does not receive a verification email\n And an error banner is shown stating that they should try again\n\n @motivating\n Scenario: Users are notified if sending the email verification message succeeds\n Given a user viewing the email verification component\n And they have an email stored in session data from registration\n When they click to "Resend-Email"\n Then the text link is disabled\n When the email verification message sends\n Then the user receives a verification email\n And a success banner is shown stating that their email was resent\n\n @motivating\n Scenario Outline: The email link can be configured to redirect users to a specific base path but defaults to "/verifyEmail"\n Given a user viewing the email verification component\n And they have an email stored in session data from registration\n And the component <mayHave> "redirect-path" with <value>\n When they resend their verification email\n And they click the link in the email\n Then they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn\'t have | N/A | /verifyEmail |\n | has | /verifyMyEmail | /verifyMyEmail |\n\n @motivating\n Scenario Outline: Verification status is refetched on refresh\n Given a user viewing the email verification component\n And the component <mayHave> "redirect-path" with <value>\n And they verified their account on another device\n And the local storage verification state is outdated\n When they refresh the page the component is on\n Then their verification status is re-queried\n And the local storage managed identity state is updated\n And they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn\'t have | N/A | /verifyEmail |\n | has | /verifyMyEmail | /verifyMyEmail |\n\n @motivating\n Scenario Outline: Verification status is refetched every 10 seconds\n Given a user viewing the email verification component\n And the component <mayHave> "redirect-path" with <value>\n Then they see text "Checking verification status in 10" above the re-send verification text link\n And the time counts down from 10 to 0\n When the counter hits 0\n Then their verification status is re-queried\n And the text displays a spinner where the "in {seconds}" text was\n When they verify their account on another device\n And the count down hits 0 again from 10\n Then their verification status is re-queried\n And the local storage managed identity state is updated\n And they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn\'t have | N/A | /verifyEmail |\n | has | /verifyMyEmail | /verifyMyEmail |\n\n @minutia\n Scenario Outline: Verification refetch text is customizable\n Given the email verication has prop "verification-status-message" with <verificationPropValue>\n And has prop "verification-loading-message" with <loadingPropValue>\n And a user viewing the component\n When it is counting down\n Then they see <verificationTextValue>\n When it is refetching their verification status\n Examples:\n | verificationPropValue | verificationTextValue | loadingPropValue | loadingTextValue |\n | N/A | Checking verification status in {countdown} | N/A | Checking verification status |\n | {countdown} seconds till verification refresh | {countdown} seconds till verification refresh | Checking verification | Checking verification |\n\n\n @minutia\n Scenario: 10 second countdown pauses when minimizing or moving between tabs\n Given a user viewing the email verification component\n Then they see text "Checking verification status in 10" above the re-send verification text link\n And the time counts down from 10 to 7\n And the user changes to a different tab\n When the user goes back to the verification tab\n Then the countdown will still be 7\n When the counter hits 0\n Then their verification status is re-queried\n';var PortalEmailVerification_stories={title:"Components/Portal Email Verification",parameters:{scenario:scenario$7}};var defaultCallbacks={submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}};var defaultContent={email:"email@example.com",verifyMessage:"A verification email was sent to {email}. Please verify your email to continue to the portal.",emailVerificationHeader:"Verify your email",resendEmailButtonText:"Re-send Email",verificationStatusMessage:"Checking verification status in {countdown}",verificationLoadingMessage:"Checking verification status"};var defaultStates={error:"",loading:false,success:false,isVerified:false,loadingVerification:false,countdown:10};var defaultProps$5={states:defaultStates,callbacks:defaultCallbacks,content:defaultContent};var errorProps$3={states:__assign(__assign({},defaultStates),{error:"Something went wrong. Please try again."}),callbacks:defaultCallbacks,content:defaultContent};var loadingProps$3={states:__assign(__assign({},defaultStates),{loading:true}),callbacks:defaultCallbacks,content:defaultContent};var successProps$1={states:__assign(__assign({},defaultStates),{success:true,isVerified:true}),callbacks:defaultCallbacks,content:defaultContent};var loadingVerificationProps={states:__assign(__assign({},defaultStates),{loadingVerification:true}),callbacks:defaultCallbacks,content:defaultContent};var Default$5=function(){return h(PortalEmailVerificationView,Object.assign({},defaultProps$5))};var EmailVerificationWithError=function(){return h(PortalEmailVerificationView,Object.assign({},errorProps$3))};var EmailVerificationLoading=function(){return h(PortalEmailVerificationView,Object.assign({},loadingProps$3))};var EmailVerificationCheckingVerification=function(){return h(PortalEmailVerificationView,Object.assign({},loadingVerificationProps))};var EmailVerificationSuccess=function(){return h(PortalEmailVerificationView,Object.assign({},successProps$1))};var PortalEmailVerification=Object.freeze({__proto__:null,default:PortalEmailVerification_stories,Default:Default$5,EmailVerificationWithError:EmailVerificationWithError,EmailVerificationLoading:EmailVerificationLoading,EmailVerificationCheckingVerification:EmailVerificationCheckingVerification,EmailVerificationSuccess:EmailVerificationSuccess});var scenario$8='@author:derek\n@owner:ian\nFeature: Reset Password\n\n Background: A user in on the password reset page\n Given a user who has been redirected to the password reset page\n\n @motivating\n Scenario: Users can reset their password\n Given a user has a valid oob code as a url query parameter\n When they enter their password twice\n And they click "Update"\n Then their password is updated\n And a banner with a success message is displayed\n And they can log in with their new password\n\n @motivating\n Scenario Outline: Users cannot reset their password with an invalid or missing oob code\n Given a user has a <oobCode> as a url query parameter\n And the component <mayHave> "failed-page" with <value>\n Then they see an error message saying that their password reset code is invalid/expired\n When they click "Continue"\n Then they are redirected to <redirectPath>\n Examples:\n | oobCode | mayHave | value | redirectPath |\n | invalid oob code | doesn\'t have | N/A | / |\n | non existant oob code | doesn\'t have | N/A | / |\n | invalid oob code | has | /login | /login |\n | non existant oob code | has | /login | /login |\n\n @motivating\n Scenario: Users must enter the same password twice to successfully reset their password\n Given a user has been redirected to the password reset page\n And they have a valid oob code as a url query parameter\n When they enter two different passwords into the password reset form\n And they click "Update"\n Then their password is not be reset\n And an error banner stating the input passwords must match appears\n And their password is not be reset\n When they enter the same password twice\n And they click "Update"\n Then a banner appears with a success message\n And they can log in with their new password\n\n @motivating\n Scenario: Users are notified if resetting their password fails\n Given a user has a valid oob code as a url query parameter\n When they enter their password twice\n And they click "Update"\n But the password reset fails\n Then the user\'s password does not reset\n And an error banner is shown\n\n @motivating\n Scenario: Users are redirected to "/" by default\n Given the component does not have prop "nextPage"\n And the users url does not contain a "nextPage" query parameter\n And a user has entered their password twice\n When they click "Update"\n Then their password is updated\n And they are redirected to "/"\n\n @motivating\n Scenario: Custom redirection can be configured\n Given the component has prop "nextPage" with value "/activity"\n And the users url does not contain a "nextPage" query parameter\n And a user has entered their password twice\n When they click "Update"\n Then their password is updated\n And they are redirected to "/activity"\n\n @motivating\n Scenario Outline: Users are redirected to the value of the nextPage url parameter as if it were a relative path\n Given the component is loaded at <currentUrl>\n When they click "Update"\n Then their password is updated\n And they are redirected to <url>\n Examples:\n | currentUrl | url |\n | https://www.example.com?nextPage=./activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=/activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=www.google.com | https://www.example.com/www.google.com |\n | https://www.example.com?nextPage=//foo.com | https://www.example.com/ |\n | https://www.example.com?nextPage=https://malicious.example.com | https://www.example.com/ |\n | http://www.example.com/nest/page?oob=123&other&nextPage=activity#heading-1 | http://www.example.com/activity |\n | https://www.example.com?nextPage=activity?foo=bar | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar#hash | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar%23hash | https://www.example.com/activity?foo=bar#hash |\n | https://www.example.com:1337?nextPage=activity | https://www.example.com:1337/activity |\n | http://1.1.1.1:1111?nextPage=activity | http://1.1.1.1:1111/activity |\n\n @landmine\n Scenario Outline: Username and password are not persisted on redirects\n Given the component is loaded at <currentUrl>\n When they click "Update"\n Then their password is updated\n And they are redirected to <url>\n Examples:\n | currentUrl | url |\n | https://user:pass@www.example.com:444?nextPage=activity | https://www.example.com:444/activity |';var PortalResetPassword_stories={title:"Components/Portal Reset Password",parameters:{scenario:scenario$8}};var defaultProps$6={states:{error:"",loading:false,reset:false,confirmPassword:true,oobCodeValidating:false,oobCodeValid:true,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var defaultPropsNoConfirm={states:{error:"",loading:false,reset:false,confirmPassword:false,oobCodeValidating:false,oobCodeValid:true,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var errorProps$4={states:{error:"Something went wrong. Please try again.",loading:false,reset:false,confirmPassword:true,oobCodeValidating:false,oobCodeValid:true,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var loadingProps$4={states:{error:"",loading:true,reset:false,confirmPassword:true,oobCodeValidating:false,oobCodeValid:true,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var successProps$2={states:{error:"",loading:false,reset:true,confirmPassword:true,oobCodeValidating:false,oobCodeValid:true,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var validatingCodeProps={states:{error:"",loading:false,reset:false,confirmPassword:true,oobCodeValidating:false,oobCodeValid:false,content:{passwordResetHeader:"Password reset",resetPasswordHeader:"Reset your password",continueButtonText:"Continue",resetPasswordButtonText:"Reset Password",confirmPasswordFieldLabel:"Confirm Password",passwordFieldLabel:"New Password"}},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))},gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var Default$6=function(){return h(PortalResetPasswordView,Object.assign({},defaultProps$6))};var DefaultWithoutConfirmField=function(){return h(PortalResetPasswordView,Object.assign({},defaultPropsNoConfirm))};var ResetPasswordWithError=function(){return h(PortalResetPasswordView,Object.assign({},errorProps$4))};var ResetPasswordLoading=function(){return h(PortalResetPasswordView,Object.assign({},loadingProps$4))};var ResetPasswordSuccess=function(){return h(PortalResetPasswordView,Object.assign({},successProps$2))};var CodeValidating=function(){return h(PortalResetPasswordView,Object.assign({},validatingCodeProps))};var PortalResetPassword=Object.freeze({__proto__:null,default:PortalResetPassword_stories,Default:Default$6,DefaultWithoutConfirmField:DefaultWithoutConfirmField,ResetPasswordWithError:ResetPasswordWithError,ResetPasswordLoading:ResetPasswordLoading,ResetPasswordSuccess:ResetPasswordSuccess,CodeValidating:CodeValidating});var scenario$9='@author:derek\n@owner:ian\nFeature: Verify Email\n\n Background: A user is on the email verification page\n Given a user who has been redirected to the email verification page\n\n @motivating\n Scenario: Verifying your email takes you to the portal login page\n Given a user has a valid oob code as a url query parameter\n When they click "Verify Email"\n Then the button enters a loading state\n When their email is validated\n Then a button that says "Continue" appears\n When they click "Continue"\n Then they are redirected to login\n\n @motivating\n Scenario: Users are automatically redirected if they dont click "Continue"\n Given a user has a valid oob code as a url query parameter\n When they click "Verify Email"\n Then the button enters a loading state\n When their email is validated\n Then a button that says "Continue" appears\n When they wait 5 seconds\n Then they are redirected to login\n\n @motivating\n Scenario: Users are notified if verifying their email has failed\n Given a user has a valid oob code as a url query parameter\n When they click "Verify Email"\n Then the button enters a loading state\n When their email fails to be validated\n Then an banner is shown stating that an error occured\n\n @motivating\n Scenario Outline: Users cannot verify their email with an invalid or missing oob code\n Given a user has a <oobCode> as a url query parameter\n And the component <mayHave> "failed-page" with <value>\n Then they see an error message saying that their verification code is invalid/expired\n When they click "Continue"\n Then they are redirected to <redirectPath>\n Examples:\n | oobCode | mayHave | value | redirectPath |\n | invalid oob code | doesn\'t have | N/A | / |\n | non existant oob code | doesn\'t have | N/A | / |\n | invalid oob code | has | /login | /login |\n | non existant oob code | has | /login | /login |\n\n @motivating\n Scenario: Users are redirected to "/" by default\n Given the component does not have prop "nextPage"\n And the users url does not contain a "nextPage" query parameter\n And a user has verified their email\n When they click "Continue"\n Then they are redirected to "/"\n\n @motivating\n Scenario: Custom redirection can be configured\n Given the component has prop "nextPage" with value "/activity"\n And the users url does not contain a "nextPage" query parameter\n And a user has verified their email\n When they click "Continue"\n Then they are redirected to "/activity"\n\n @motivating\n Scenario Outline: Users are redirected to the value of the nextPage url parameter if it exists\n Given the component <mayHave> prop "nextPage" with <nextPageValue>\n And the users url contains a "nextPage" query paramater with <nextPageParamValue>\n And the user has verified their email\n When they click "Continue"\n Then they are redirected to <nextPageParamValue>\n Examples:\n | mayHave | nextPageValue | nextPageParamValue |\n | has | /dashboard | /activity |\n | does not have | N/A | /activity |\n\n @motivating\n Scenario Outline: Users are redirected to the value of the nextPage url parameter as if it were a relative path\n Given the component is loaded at <currentUrl>\n And the user has verified their email\n When they click "Continue"\n And they are redirected to <url>\n Examples:\n | currentUrl | url |\n | https://www.example.com?nextPage=./activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=/activity | https://www.example.com/activity |\n | https://www.example.com?nextPage=www.google.com | https://www.example.com/www.google.com |\n | https://www.example.com?nextPage=//foo.com | https://www.example.com/ |\n | https://www.example.com?nextPage=https://malicious.example.com | https://www.example.com/ |\n | http://www.example.com/nest/page?oob=123&other&nextPage=activity#heading-1 | http://www.example.com/activity |\n | https://www.example.com?nextPage=activity?foo=bar | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar#hash | https://www.example.com/activity?foo=bar |\n | https://www.example.com?nextPage=%2Factivity%3Ffoo%3Dbar%23hash | https://www.example.com/activity?foo=bar#hash |\n | https://www.example.com:1337?nextPage=activity | https://www.example.com:1337/activity |\n | http://1.1.1.1:1111?nextPage=activity | http://1.1.1.1:1111/activity |\n\n @landmine\n Scenario Outline: Username and password are not persisted on redirects\n Given the component is loaded at <currentUrl>\n And the user has verified their email\n When they click "Continue"\n And they are redirected to <url>\n Examples:\n | currentUrl | url |\n | https://user:pass@www.example.com:444?nextPage=activity | https://www.example.com:444/activity |';var PortalVerifyEmail_stories={title:"Components/Portal Verify Email",parameters:{scenario:scenario$9}};var errorProps$5={states:{error:"Something went wrong. Please try again.",loading:false,verified:false},data:{oobCode:"abc123"},callbacks:{gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var verifiedProps={states:{error:"",loading:false,verified:true},data:{oobCode:"abc123"},callbacks:{gotoNextPage:function(){return console.log("next page")},failed:function(){return console.log("failed")}}};var EmailVerificationWithError$1=function(){return h(PortalVerifyEmailView,Object.assign({},errorProps$5))};var EmailVerificationSuccess$1=function(){return h(PortalVerifyEmailView,Object.assign({},verifiedProps))};var PortalVerifyEmail=Object.freeze({__proto__:null,default:PortalVerifyEmail_stories,EmailVerificationWithError:EmailVerificationWithError$1,EmailVerificationSuccess:EmailVerificationSuccess$1});var AssetCard_stories={title:"Components/Asset Card"};var Default$7=function(){var e={text:{titleText:"Marketing Banner"},imgUrl:"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png",callbacks:{}};return h(AssetCardView,Object.assign({},e))};var CardWithLongText=function(){var e={text:{titleText:"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quam, sunt dolores? Dolore temporibus autem officia blanditiis minus in voluptatem molestiae!"},imgUrl:"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png",callbacks:{}};return h(AssetCardView,Object.assign({},e))};var CardWithNoImg=function(){var e={text:{titleText:"Marketing Banner"},imgUrl:"",callbacks:{}};return h(AssetCardView,Object.assign({},e))};var AssetCard=Object.freeze({__proto__:null,default:AssetCard_stories,Default:Default$7,CardWithLongText:CardWithLongText,CardWithNoImg:CardWithNoImg});var DividedLayout_stories={title:"Components/Divided Layout"};var item1Props$1={states:{active:false},data:{label:"Dashboard",icon:"house",path:"/"}};var item2Props$1={states:{active:true},data:{label:"Activity",icon:"bar-chart",path:"/"}};var Sidebar$1=function(){return h(NavigationSidebarView,null,h(NavigationSidebarItemView,Object.assign({},item1Props$1)),h(NavigationSidebarItemView,Object.assign({},item2Props$1)))};var Row=function(){return h("sqm-divided-layout",{direction:"row"},h(Sidebar$1,null),h("div",{style:{padding:"48px"}},h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("p",null,"Welcome back,")),content:h("sqm-text",null,h("h1",null,"Joe Smith"))}))))};var Column=function(){return h("sqm-divided-layout",{direction:"column"},h(Sidebar$1,null),h("div",{style:{padding:"48px"}},h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("p",null,"Welcome back,")),content:h("sqm-text",null,h("h1",null,"Joe Smith"))}))))};var ColumnCustomDivider=function(){return h("sqm-divided-layout",{direction:"column",dividerStyle:"1px solid red"},h(Sidebar$1,null),h("div",{style:{padding:"48px"}},h(PortalSectionView,Object.assign({},{labelMargin:"xx-small",padding:"none",label:h("sqm-text",null,h("p",null,"Welcome back,")),content:h("sqm-text",null,h("h1",null,"Joe Smith"))}))))};var DividedLayout=Object.freeze({__proto__:null,default:DividedLayout_stories,Row:Row,Column:Column,ColumnCustomDivider:ColumnCustomDivider});var scenario$a='Feature: Change Password\n\n @motivating\n Scenario: Users can change their password\n Given a user has registered for the portal\n And they have a password\n When they navigate to the edit profile page\n And click "Change your password..."\n Then a popup will appear\n When they enter their new password\n And confirm it\n And click "Change Password"\n Then they will see a success banner stating that the change was successful\n When they logout\n And try to login\n Then they will not be able to login with their old password\n But they will be able to login with their new password\n\n @motivating\n Scenario: Users must confirm their password change\n Given a user has registered for the portal\n When they navigate to the edit profile page\n And click "Change your password..."\n Then a popup will appear\n When they enter their new password\n But they enter a different password to confirm\n And click "Change Password"\n Then they will see an error banner stating that the passwords didnt match\n When they logout\n And try to login\n Then they will be able to login with their existing password\n\n @motivating\n Scenario: Users must enter a new password and confirm it to change their password\n Given a user has registered for the portal\n When they navigate to the edit profile page\n And click "Change your password..."\n Then a popup will appear\n When they click "Change password"\n Then a validation error will appear for the new password field\n And their password will not be changed\n When they enter a new password\n And they click "Change password"\n Then a validation error will appear for the confirm new password field\n And their password will not be changed\n\n @motivating\n Scenario: An error banner will be displayed if the password change fails\n Given a user has registered for the portal\n When they navigate to the edit profile page\n And click "Change your password..."\n When they enter their new password\n And confirm it\n And click "Change Password"\n But the change fails\n Then they will see an error banner stating that the change failed\n When they logout\n And try to login\n Then they will be able to login with their existing password';var ChangePassword_stories={title:"Components/Change Password",parameters:{scenario:scenario$a}};var defaultProps$7={states:{open:false,loading:false,success:false,error:"",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var openProps={states:{open:true,loading:false,success:false,error:"",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var errorProps$6={states:{open:true,loading:false,success:false,error:"Network error. Please try again.",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var passwordErrorProps={states:{open:true,loading:false,success:false,error:"Passwords do not match.",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var loadingProps$5={states:{open:true,loading:true,success:false,error:"",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var successProps$3={states:{open:true,loading:false,success:true,error:"",content:{modalChangePasswordHeader:"Change Password",cancelText:"Cancel",changePasswordButtonText:"Change Password",passwordFieldLabel:"New Password",confirmPasswordFieldLabel:"Confirm new password",successMessage:"Your password has been updated.",portalChangePasswordHeader:"Password",portalChangePasswordButtonText:"Change your password..."}},callbacks:{setOpen:function(e){return console.log(e)},submit:function(e){return console.log("Submit",e)}}};var Default$8=function(){return h(PortalChangePasswordView,Object.assign({},defaultProps$7))};var Open=function(){return h(PortalChangePasswordView,Object.assign({},openProps))};var Error$2=function(){return h(PortalChangePasswordView,Object.assign({},errorProps$6))};var PaswordError=function(){return h(PortalChangePasswordView,Object.assign({},passwordErrorProps))};var Loading$1=function(){return h(PortalChangePasswordView,Object.assign({},loadingProps$5))};var Success=function(){return h(PortalChangePasswordView,Object.assign({},successProps$3))};var ChangePassword=Object.freeze({__proto__:null,default:ChangePassword_stories,Default:Default$8,Open:Open,Error:Error$2,PaswordError:PaswordError,Loading:Loading$1,Success:Success});var PortalProfile_stories={title:"Components/Portal Profile"};var defaultProps$8={states:{success:false,loading:false,submitDisabled:false,showCountry:true,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var noCountry={states:{success:false,loading:false,submitDisabled:false,showCountry:false,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var loadingProps$6={states:{success:false,loading:true,submitDisabled:false,showCountry:true,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var disabledProps={states:{success:false,loading:false,submitDisabled:true,showCountry:true,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var errorProps$7={states:{success:false,loading:false,submitDisabled:false,showCountry:true,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:"Something went wrong. Please try again."}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var successProps$4={states:{success:true,loading:false,submitDisabled:false,showCountry:true,user:{id:"01",accountId:"111100000",firstName:"Joe",lastName:"Smith",email:"jsmith@gmail.com",countryCode:"5000"},text:{firstnametext:"First Name",lastnametext:"Last Name",emailtext:"Email",countrytext:"Country",editProfileHeader:"Edit your profile",editProfileSubHeader:"Personal Information",submitChangeButtonText:"Submit Changes"},formState:{country:"Canada",firstName:"Joe",lastName:"Smith",errors:null,error:""}},callbacks:{onSubmit:function(e){return console.log(e)},onChange:function(e){return console.log(e)}}};var Default$9=function(){return h(PortalProfileView,Object.assign({},defaultProps$8))};var DefaultNoCountry=function(){return h(PortalProfileView,Object.assign({},noCountry))};var Loading$2=function(){return h(PortalProfileView,Object.assign({},loadingProps$6))};var Disabled$1=function(){return h(PortalProfileView,Object.assign({},disabledProps))};var Error$3=function(){return h(PortalProfileView,Object.assign({},errorProps$7))};var Success$1=function(){return h(PortalProfileView,Object.assign({},successProps$4))};var PortalProfile=Object.freeze({__proto__:null,default:PortalProfile_stories,Default:Default$9,DefaultNoCountry:DefaultNoCountry,Loading:Loading$2,Disabled:Disabled$1,Error:Error$3,Success:Success$1});var column='@author:noah\n@owner:noah\nFeature: Referral Table User Column\n\n Shows the same custom content for each referral\n\n Background:\n Given the column in included in the referral table\n\n @motivating\n Scenario: The title of the date column is configurable\n Given the "column-title" prop is set to "My column title"\n Then the date column is shown with "My column title"\n\n @motivating\n Scenario: The same custom content is shown for each referral\n Given there is at least one referral\n Then for each referral custom content is shown\n And the custom content is provided as slot content';var date='@author:noah\n@owner:noah\nFeature: Referral Table Date Column\n\n Shows the date of each referral\n\n Background:\n Given the date column is included in the referral table\n\n @motivating\n @ui\n Scenario Outline: The title of the date column is configurable\n Given the "column-title" prop is set to <value>\n Then the date column is shown with <columTitle>\n Examples:\n | value | columnTitle |\n | | Date Converted |\n | My column title | My column title |\n\n @motivating\n Scenario Outline: A configurable date associated with the referral is shown for each referral\n Given the "date-shown" prop is set to <dateType>\n And referrals exist\n Then for each referral the <referralDate> is shown in the table\n And the date is localized to the users locale\n Examples:\n | dateType | referralDate |\n | dateReferralStarted | date referral started |\n | dateReferralPaid | date referral paid |\n | dateReferralEnded | date referral ended |\n | dateModerated | date moderated |\n | dateUserModified | date user modified |\n | dateConverted | date converted |\n | dateModified | date modified |\n | | date converted |';var reward='@author:noah\n@owner:noah\nFeature: Referral Table Reward Column\n\n Shows the reward associated with each referral\n\n Background:\n Given the status column is included in the referral table\n And at least one referral exists\n\n @motivating\n @ui\n Scenario Outline: The referral reward and it\'s status are shown for each referral\n Then for each referral reward there exists a reward cell\n And the reward type and value is displayed in the cell\n And the status of each reward is displayed as a pill in the cell\n And rewards of <status> have a <pillColour> pill with the text <statusText>\n Examples:\n | status | pillColour | statusText |\n | Available | green | Available |\n | Pending | orange | Pending |\n | Cancelled | red | Cancelled |\n | Expired | red | Expired |\n | Redeemed | blue | Redeemed |\n | Pending Review | orange | Pending Review |\n | Denied | red | Denied |\n\n @motivating\n Scenario: The pending period of a referral reward is shown if it exists\n Given a reward that is pending\n And the reward has a set pending period\n Then the status pill of the reward will instead have the text "Pending for <relativeTime>"\n And all dates are localized to the users locale\n Examples:\n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: The expiry date of a reward is shown if it exists\n Given a reward that is available\n And the reward has a set expiry date\n Then an additional grey pill will appear next to the status pill with the text "Expiring in <relativeTime>"\n And all dates are localized to the users locale\n Examples:\n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: Each reward can be expanded to show additional details about the reward\n When a reward cell is clicked\n Then it expands to show the following additional information (if it\'s available):\n | Date the reward was received |\n | Date the reward was cancelled |\n | Date the reward expires |\n | Date the reward is pending until |\n | Coupon code |\n And all dates are localized to a users locale';var status='@author:noah\n@owner:noah\nFeature: Referral Table Status Column\n\n Shows the status of each referral\n\n Background:\n Given the status column is included in the referral table\n\n @motivating\n @ui\n Scenario: The title of the date column is configurable\n Given the "column-title" prop is set to "My column title"\n Then the date column is shown with "My column title"\n\n @motivating\n Scenario: The status column\'s fraudStatus maps to the fraud status of the referral\n Given at least one referral\n Then the referral cell fraud status is set to `moderationStatus` of the referral\n\n @motivating\n Scenario Outline: The status column displays the status of each referral\n Given referrals exist\n Then the status of each referral is displayed\n And the status <status> is displayed as text from <statusTextProp> in a <pillColour> pill\n\n Examples:\n | status | statusTextProp | pillColour |\n | In Progress | inProgressStatusText | Orange |\n | Converted | convertedStatusText | Green |\n | Pending | pendingReviewStatusText | Orange |\n | Denied | deniedStatusText | Red |\n';var user='@author:noah\n@owner:noah\nFeature: Referral Table User Column\n\n Shows the user of each referral\n\n Background:\n Given the user column is included in the referral table\n\n @motivating\n @ui\n Scenario: The title of the date column is configurable\n Given the "column-title" prop is set to "My column title"\n Then the date column is shown with "My column title"\n\n @motivating\n Scenario: The first and last name of the other user in the referral is displayed for each referral\n Given at least one referral exists\n Then for each referral where the other user\'s name is available their first and last name is displayed\n\n @motivating\n Scenario: Deleted users are displayed with a fallback name\n Given a referral exists where the other user was deleted\n Then in place of the name the text from the prop "deleted-user" is used\n\n @motivating\n Scenario: Anonymous users are displayed with a fallback name\n Given a referral exists where the other user was anonymous\n Then in place of the name the text from the prop "anonymous-user" is used';var scenario$b=column+date+reward+status+user;var ReferralTableRewardsCell_stories={title:"Components/Referral Table Rewards Cell",parameters:{scenario:scenario$b}};var baseReward={id:"123",type:"CREDIT",value:19,unit:"POINT",name:"test",dateGiven:1627427794891,dateScheduledFor:getDays(),dateExpires:getMonths(),dateCancelled:134400,dateRedeemed:0,fuelTankCode:"ABC",fuelTankType:"Code",currency:"null",prettyValue:"19 Points",statuses:["AVAILABLE"],globalRewardKey:"Key",rewardRedemptionTransactions:{data:[{exchangedRewards:{data:[{prettyValue:"19 Points",type:"CREDIT",fuelTankCode:"ABC",globalRewardKey:"Key"}]}}]}};var nullExpiresIn={dateExpires:null};var nullScheduledFor={dateScheduledFor:null};var nullFuelTank={fuelTankCode:null};var discountReward={type:"PCT_DISCOUNT"};var creditReward={type:"CREDIT"};var fuelTankReward={type:"FUELTANK"};var integrationReward={type:"INTEGRATION"};var pendingReward={statuses:["AVAILABLE","PENDING"]};var cancelledReward={statuses:["PENDING","CANCELLED"],dateCancelled:16268508e5};var expiredReward={statuses:["EXPIRED","AVAILABLE"],dateExpires:16268508e5};var deniedReward={statuses:["DENIED"]};var pendingReviewReward={statuses:["PENDING_REVIEW"]};var redeemedReward={statuses:["AVAILABLE","EXPIRED","REDEEMED"]};var availableReward={statuses:["AVAILABLE"]};var zeroRewards=[];var oneReward=[__assign(__assign({},baseReward),availableReward)];var twoRewards=[__assign(__assign(__assign({},baseReward),discountReward),pendingReward),__assign(__assign({},baseReward),creditReward)];var threeRewards=[__assign(__assign(__assign({},baseReward),fuelTankReward),nullExpiresIn),__assign(__assign(__assign({},baseReward),fuelTankReward),expiredReward),__assign(__assign(__assign({},baseReward),pendingReward),nullFuelTank)];var fiveRewards=[__assign(__assign({},baseReward),fuelTankReward),__assign(__assign({},baseReward),integrationReward),__assign(__assign({},baseReward),pendingReward),__assign(__assign(__assign(__assign({},baseReward),cancelledReward),nullExpiresIn),nullFuelTank),__assign(__assign(__assign({},baseReward),expiredReward),nullFuelTank)];var eightRewards=[__assign(__assign(__assign({},baseReward),redeemedReward),nullFuelTank),__assign(__assign(__assign({},baseReward),availableReward),nullExpiresIn),__assign(__assign({},baseReward),pendingReward),__assign(__assign({},baseReward),cancelledReward),__assign(__assign({},baseReward),expiredReward),__assign(__assign(__assign(__assign({},baseReward),pendingReward),nullExpiresIn),nullScheduledFor),__assign(__assign({},baseReward),cancelledReward),__assign(__assign({},baseReward),expiredReward)];var tenRewards=[__assign(__assign({},baseReward),integrationReward),__assign(__assign({},baseReward),redeemedReward),__assign(__assign({},baseReward),availableReward),__assign(__assign(__assign({},baseReward),cancelledReward),nullExpiresIn),__assign(__assign({},baseReward),expiredReward),__assign(__assign({},baseReward),pendingReward),__assign(__assign({},baseReward),discountReward),__assign(__assign({},baseReward),fuelTankReward),__assign(__assign(__assign({},baseReward),cancelledReward),nullExpiresIn),__assign(__assign({},baseReward),creditReward)];function getSeconds(){return luxon.DateTime.now().toMillis()+1e4}function getMinutes(){return luxon.DateTime.now().toMillis()+4e5}function getHours(){return luxon.DateTime.now().toMillis()+9e6}function getDays(){return luxon.DateTime.now().toMillis()+6e8}function getMonths(){return luxon.DateTime.now().toMillis()+1e10}function getYears(){return luxon.DateTime.now().toMillis()+2e11}var statusText="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} PENDING_REVIEW {Pending} DENIED {Denied} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }";var statusLongText="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} PENDING_REVIEW {Pending since} DENIED {Denied on} EXPIRED {Reward expired on} REDEEMED {Redeemed} other {Not available} }";var PendingNoUnpend=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),nullScheduledFor)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var PendingNoUnpendNoDetails=function(){return h("sqm-referral-table-rewards-cell",{hideDetails:true,rewards:[__assign(__assign(__assign({},baseReward),pendingReward),nullScheduledFor)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var NarrowColumnWithWideText=function(){return h("div",{style:{width:"250px"}},h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getDays()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),pendingReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"Pending for 300,000,000 months and some change",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getYears()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}))};var PendingWithUnpend=function(){return[h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getSeconds()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getMinutes()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getHours()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getDays()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getMonths()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),pendingReward),{dateScheduledFor:getYears()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})]};var AvailableNoExpiry=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),nullExpiresIn)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var AvailableWithExpiry=function(){return[h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getSeconds()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getMinutes()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getHours()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getDays()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getMonths()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign(__assign({},baseReward),availableReward),{dateExpires:getYears()})],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})]};var Redeemed=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),redeemedReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var Cancelled=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),cancelledReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var Expired=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),expiredReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var Denied=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),deniedReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var PendingReview=function(){return h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward),pendingReviewReward)],statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var EmptyCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:zeroRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var oneRewardCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:oneReward,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var twoRewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:twoRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var threeRewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:threeRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var fiveRewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:fiveRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var eightRewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:eightRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var tenRewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:tenRewards,statusText:statusText,statusLongText:statusLongText,fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}",deniedHelpText:"Contact support if you think this is a mistake."})};var ReferralTableRewardsCell=Object.freeze({__proto__:null,default:ReferralTableRewardsCell_stories,PendingNoUnpend:PendingNoUnpend,PendingNoUnpendNoDetails:PendingNoUnpendNoDetails,NarrowColumnWithWideText:NarrowColumnWithWideText,PendingWithUnpend:PendingWithUnpend,AvailableNoExpiry:AvailableNoExpiry,AvailableWithExpiry:AvailableWithExpiry,Redeemed:Redeemed,Cancelled:Cancelled,Expired:Expired,Denied:Denied,PendingReview:PendingReview,EmptyCell:EmptyCell,oneRewardCell:oneRewardCell,twoRewardsCell:twoRewardsCell,threeRewardsCell:threeRewardsCell,fiveRewardsCell:fiveRewardsCell,eightRewardsCell:eightRewardsCell,tenRewardsCell:tenRewardsCell});var scenario$c=column+date+reward+status+user;var ReferralTableCell_stories={title:"Components/Referral Table Cell",parameters:{scenario:scenario$c}};var TableCell=function(){return h("sqm-referral-table-cell",{innerTemplate:"Table Cell Text"})};var TableUserCell=function(){return h("sqm-referral-table-user-cell",{name:"Table User Cell Text"})};var EmptyCell$1=function(){return h("sqm-sqm-referral-table-cell",null,"-")};var Converted=function(){return h("sqm-referral-table-status-cell",{"status-text":"Converted","fraud-status":"APPROVED",converted:true})};var InProgress=function(){return h("sqm-referral-table-status-cell",{"status-text":"In Progress",converted:false})};var PendingReview$1=function(){return h("sqm-referral-table-status-cell",{"status-text":"Pending","fraud-status":"PENDING_REVIEW",converted:false})};var Pending=function(){return h("sqm-referral-table-status-cell",{"status-text":"Pending",converted:false})};var Denied$1=function(){return h("sqm-referral-table-status-cell",{"status-text":"Denied","fraud-status":"DENIED",converted:false})};var DateCell=function(){return h("sqm-referral-table-date-cell",{date:9e11})};var rewardsData={id:"123",type:"CREDIT",value:19,unit:"POINT",name:"test",dateGiven:1627427794891,dateScheduledFor:16281468e5,dateExpires:16290108e5,dateCancelled:134400,dateRedeemed:0,fuelTankCode:"ABC",fuelTankType:"Code",currency:"null",prettyValue:"19 Points",statuses:["AVAILABLE"],globalRewardKey:"Key",rewardRedemptionTransactions:{data:[{exchangedRewards:{data:[{prettyValue:"19 Points",type:"CREDIT",fuelTankCode:"ABC",globalRewardKey:"Key"}]}}]}};var rewards=[rewardsData];var RewardsCell=function(){return h("sqm-referral-table-rewards-cell",{rewards:rewards,statusText:"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }",statusLongText:"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} REDEEMED {Redeemed} other {Not available} }",fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}"})};var ReferralTableCell=Object.freeze({__proto__:null,default:ReferralTableCell_stories,TableCell:TableCell,TableUserCell:TableUserCell,EmptyCell:EmptyCell$1,Converted:Converted,InProgress:InProgress,PendingReview:PendingReview$1,Pending:Pending,Denied:Denied$1,DateCell:DateCell,RewardsCell:RewardsCell});var scenario$d='@owner:sam\n@author:sam\nFeature: Referral Table\n\n The Referral table component shows users a list of their referrals. The referral table it\'s self can be customized\n with a collection of columns.\n\n @motivating\n @ui\n Scenario: The empty state is shown if there are no referrals\n Given a user with no referrals\n When they view the referral table\n Then no referrals are displayed\n And they see an image with a user icon\n And "View your referral details" in bold\n And "Track the status of your referrals and rewards earned by referring friends" below the bolded text\n And the pagination buttons are disabled\n\n @motivating\n @ui\n Scenario: The empty state image and text are customizable\n Given the referral table has \'sqm-empty\' as a child with the following props\n | prop | value |\n | empty-state-imgage | https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png |\n | empty-state-header | View your referral history |\n | empty-state-text | See your previous referrals and what you earned! |\n And a user with no referrals\n When they view the referral table\n Then they see no referrals\n And they see the SaaSquatch logo\n And "View your referral history" in bold\n And "See your previous referrals and what you earned!" below the bolded text\n\n @minutia\n @ui\n Scenario: A custom empty state can be provided\n Given a user with no referrals\n And a custom empty state has been supplied in the "empty" slot\n When they view the referral table\n Then they see the custom empty state\n\n @motivating\n @ui\n Scenario: The loading state is shown while referrals are loading\n Given the table is loading\n Then the loading state is shown in the table\n And a custom loading state can be supplied in the "loading" slot\n And the pagination buttons are disabled\n\n @motivating\n @ui\n Scenario Outline: The table becomes paginated when the number of referrals exceeds the per page limit\n Given the user has <number of referrals>\n And the table is configured to show <page limit> referrals per page\n Then the table will have <number of pages> page(s)\n And pagination buttons will allow users to navigate between pages\n And the pagination button to go to the next page is disabled on the last page of referrals\n And the pagination button to go to the previous page is disabled on the first page of referrals\n Examples:\n | number of referrals | page limit | number of pages |\n | 0 | 4 | 1 |\n | 1 | 4 | 1 |\n | 3 | 4 | 1 |\n | 5 | 4 | 2 |\n | 42 | 4 | 11 |\n\n @motivating\n @ui\n Scenario: The table converts to a card view on tablet and mobile window sizes\n Given a user with referrals\n When they view the table\n And their window size is smaller than "799px"\n Then referrals are displayed as cards\n And they are in two columns\n When their window size is smaller than "599px"\n Then the referrals are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario: Table and Mobile beakpoints can be configured\n Given the referral table has been configured with the following props\n | prop | value |\n | smBreakpoint | 599 |\n | mdBreakpoint | 799 |\n And a user with referrals\n When they view the table\n And their window size is smaller than "799px"\n Then referrals are displayed as cards\n And they are in two columns\n When their window size is smaller than "599px"\n Then the referrals are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario Outline: By default the first column heading is hidden in mobile, but others can be hidden\n Given a referral table with 4 columns\n And prop "hidden-columns" with <hideColumnValue>\n And a user with referrals\n When they view the referral table\n And their window size is below the tablet breakpoint\n Then referral cards are displayed\n And the titles of <columnsArehidden> within the card\n Examples:\n | hideColumnValue | columnsArehidden |\n | | the first column |\n | 0,1,2 | the first, second and third columns |\n | 3 | the fourth column |\n\n @motivating\n Scenario: The use who referred the current user can be shown in the table\n Given the table is configured with <showReferrer> set to true\n And the current user was referrered by <referrer>\n Then the first table row on the first page of the table is for <referrer>\n\n @motivating\n Scenario: Only referrals which occured in the program specific by program-id are shown\n Given the table is configured with "program-id"\n Then only referrals from the program with "program-id" are shown\n\n @motivating\n Scenario: Classic program shows only classic referrals\n Given the "program-id" of the table is set to "classic"\n Then only classic referrals are shown in the table\n\n @minutia\n @ui\n Scenario: Column heading can be hidden\n Given the table is configured with "hide-labels" set to "true"\n Then the table is displayed without column headings';var ReferralTable_stories={title:"Components/Referral Table",parameters:{scenario:scenario$d}};var loadingElement=h("div",{slot:"loading",style:{display:"contents"}},h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))));var emptyElement=h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_referral2.png","empty-state-header":"View your referral details","empty-state-text":"Track the status of your referrals and rewards earned by referring friends"});var baseReward$1={id:"123",type:"CREDIT",value:19,unit:"POINT",name:"test",dateGiven:1627427794891,dateScheduledFor:16281468e5,dateExpires:16290108e5,dateCancelled:134400,dateRedeemed:0,fuelTankCode:"ABC",fuelTankType:"Code",currency:"null",prettyValue:"19 Points",statuses:["AVAILABLE"],globalRewardKey:"Key",rewardRedemptionTransactions:{data:[{exchangedRewards:{data:[{prettyValue:"19 Points",type:"CREDIT",fuelTankCode:"ABC",globalRewardKey:"Key"}]}}]}};var pendingReward$1={statuses:["AVAILABLE","PENDING"]};var cancelledReward$1={statuses:["PENDING","CANCELLED"],dateCancelled:16268508e5};var expiredReward$1={statuses:["EXPIRED","AVAILABLE"],dateExpires:16268508e5};var availableReward$1={statuses:["AVAILABLE"]};var nullExpiresIn$1={dateExpires:null};var simpleUserTableProps={states:{hasPrev:false,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Customer","Status","Date converted","Rewards"],rows:[[h("sqm-referral-table-user-cell",{name:"Joe Smith"}),h(Pending,null),h(DateCell,null),h(PendingNoUnpend,null)],[h("sqm-referral-table-user-cell",{name:"Bob Williams"}),h(InProgress,null),h(DateCell,null),h(AvailableNoExpiry,null)],[h("sqm-referral-table-user-cell",{name:"Sarah Joseph"}),h(Converted,null),h(DateCell,null),h(Redeemed,null)],[h("sqm-referral-table-user-cell",{name:"Tom Smith"}),h(PendingReview$1,null),h(DateCell,null),h(PendingReview,null)],[h("sqm-referral-table-user-cell",{name:"Tom Smith"}),h(Denied$1,null),h(DateCell,null),h(Denied,null)]]}};var singleTableProps={states:{hasPrev:false,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Customer","Status","Date converted","Rewards"],rows:[[h("sqm-referral-table-user-cell",{name:"Bob Williams"}),h("sqm-referral-table-user-cell",{name:"bwill@gmail.com"}),h("sqm-referral-table-user-cell",{name:"09/05/1999"}),h(AvailableNoExpiry,null)]]}};var hideLabelProps={data:{textOverrides:{showLabels:false,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599}};var customButtonProps={states:{hasPrev:true,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"CUSTOM PREVIOUS TEXT",moreLabel:"CUSTOM NEXT TEXT"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599}};var longCellTextTableProps={states:{hasPrev:false,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Name","Email","DOB","City","State/Province","Country","Referrals","Reward Earnings","Status"],rows:[[h("sqm-referral-table-user-cell",{name:"Bartholomew Christopher-Johnston Wallace"}),h("sqm-referral-table-user-cell",{name:"jsmith@gmail.com"}),h("sqm-referral-table-date-cell",{date:-220896e5}),h("sqm-referral-table-user-cell",{name:"Vancouver"}),h("sqm-referral-table-cell",{innerTemplate:"British Columbia"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"14,000,000"}),h("sqm-referral-table-user-cell",{name:"$800,000,000,000"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true})],[h("sqm-referral-table-user-cell",{name:"Bob Williams"}),h("sqm-referral-table-user-cell",{name:"bwill@gmail.com"}),h("sqm-referral-table-date-cell",{date:8e11}),h("sqm-referral-table-user-cell",{name:"Los Angeles"}),h("sqm-referral-table-cell",{innerTemplate:"California"}),h("sqm-referral-table-user-cell",{name:"US"}),h("sqm-referral-table-user-cell",{name:"1"}),h("sqm-referral-table-user-cell",{name:"$5"}),h("sqm-referral-table-status-cell",{statusText:"In progress",converted:false}),,],[h("sqm-referral-table-user-cell",{name:"Sarah Joseph"}),h("sqm-referral-table-user-cell",{name:"sjoseph@gmail.com"}),h("sqm-referral-table-date-cell",{date:444703707e3}),h("sqm-referral-table-user-cell",{name:"Toronto"}),h("sqm-referral-table-cell",{innerTemplate:"Ontario"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"10"}),h("sqm-referral-table-user-cell",{name:"$71"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true}),,]]}};var longColumnTextTableProps={states:{hasPrev:false,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Lorem ipsum dolor sit amet consectetur adipisicing elit.","Email","DOB","City","State/Province","Country","Referrals","Rewarddddddddddd Earningsssssssssssss","Status"],rows:[[h("sqm-referral-table-user-cell",{name:"Joe Smith"}),h("sqm-referral-table-user-cell",{name:"jsmith@gmail.com"}),h("sqm-referral-table-date-cell",{date:-2128547493e3}),h("sqm-referral-table-user-cell",{name:"Vancouver"}),h("sqm-referral-table-cell",{innerTemplate:"British Columbia"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"14"}),h("sqm-referral-table-user-cell",{name:"$88"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true})],[h("sqm-referral-table-user-cell",{name:"Bob Williams"}),h("sqm-referral-table-user-cell",{name:"bwill@gmail.com"}),h("sqm-referral-table-date-cell",{date:8e11}),h("sqm-referral-table-user-cell",{name:"Los Angeles"}),h("sqm-referral-table-cell",{innerTemplate:"California"}),h("sqm-referral-table-user-cell",{name:"US"}),h("sqm-referral-table-user-cell",{name:"1"}),h("sqm-referral-table-user-cell",{name:"$5"}),h("sqm-referral-table-status-cell",{statusText:"In progress",converted:false}),,],[h("sqm-referral-table-user-cell",{name:"Sarah Joseph"}),h("sqm-referral-table-user-cell",{name:"sjoseph@gmail.com"}),h("sqm-referral-table-date-cell",{date:444703707e3}),h("sqm-referral-table-user-cell",{name:"Toronto"}),h("sqm-referral-table-cell",{innerTemplate:"Ontario"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"10"}),h("sqm-referral-table-user-cell",{name:"$71"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true}),,]]}};var fullUserTableProps=function(e){if(e===void 0){e=false}return{states:{hasPrev:false,hasNext:true,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:e?"0,1,2,3,4,5,6,7,8":"-1",mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Name","Email","DOB","City","State/Province","Country","Referrals","Reward Earnings","Status"],rows:[[h("sqm-referral-table-user-cell",{name:"Joe Smith"}),h("sqm-referral-table-user-cell",{name:"jsmith@gmail.com"}),h("sqm-referral-table-date-cell",{date:-2128547493e3}),h("sqm-referral-table-user-cell",{name:"Vancouver"}),h("sqm-referral-table-cell",{innerTemplate:"British Columbia"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"14"}),h("sqm-referral-table-user-cell",{name:"$88"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true})],[h("sqm-referral-table-user-cell",{name:"Bob Williams"}),h("sqm-referral-table-user-cell",{name:"bwill@gmail.com"}),h("sqm-referral-table-date-cell",{date:8e11}),h("sqm-referral-table-user-cell",{name:"Los Angeles"}),h("sqm-referral-table-cell",{innerTemplate:"California"}),h("sqm-referral-table-user-cell",{name:"US"}),h("sqm-referral-table-user-cell",{name:"1"}),h("sqm-referral-table-user-cell",{name:"$5"}),h("sqm-referral-table-status-cell",{statusText:"In progress",converted:false}),,],[h("sqm-referral-table-user-cell",{name:"Sarah Joseph"}),h("sqm-referral-table-user-cell",{name:"sjoseph@gmail.com"}),h("sqm-referral-table-date-cell",{date:444703707e3}),h("sqm-referral-table-user-cell",{name:"Toronto"}),h("sqm-referral-table-cell",{innerTemplate:"Ontario"}),h("sqm-referral-table-user-cell",{name:"Canada"}),h("sqm-referral-table-user-cell",{name:"10"}),h("sqm-referral-table-user-cell",{name:"$71"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true}),,]]}}};var SimpleUserTable=function(){return h(GenericTableView,Object.assign({},simpleUserTableProps))};var SingleEntry=function(){return h(GenericTableView,Object.assign({},singleTableProps))};var HiddenLabelsTable=function(){return h(GenericTableView,Object.assign({},__assign(__assign({},simpleUserTableProps),hideLabelProps)))};var CustomButtonTextTable=function(){return h(GenericTableView,Object.assign({},__assign(__assign({},simpleUserTableProps),customButtonProps)))};var FullUserTable=function(){return h(GenericTableView,Object.assign({},fullUserTableProps()))};var LongCellTextTable=function(){return h(GenericTableView,Object.assign({},longCellTextTableProps))};var LongColumnTextTable=function(){return h(GenericTableView,Object.assign({},longColumnTextTableProps))};var EmptyTable=function(){return h("sqm-referral-table",{demoData:{states:{hasPrev:false,hasNext:false,show:"empty",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},elements:{emptyElement:emptyElement,loadingElement:loadingElement,columns:["Name","Email","DOB"],rows:[]}}})};var LoadingTable=function(){return h("sqm-referral-table",{demoData:{states:{hasPrev:false,hasNext:false,show:"loading",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"",mdBreakpoint:799,smBreakpoint:599},elements:{emptyElement:emptyElement,loadingElement:loadingElement,columns:["Name","Email","DOB"],rows:[]}}})};var FullRewardsTable=function(){return h("sqm-referral-table",{demoData:{states:{hasPrev:false,hasNext:false,show:"rows",namespace:"sqm-referral-table"},data:{textOverrides:{showLabels:true,prevLabel:"Prev",moreLabel:"View More"},hiddenColumns:"1",mdBreakpoint:799,smBreakpoint:599},elements:{emptyElement:emptyElement,loadingElement:loadingElement,columns:["User","Rewards","Status","Date Started","Date Converted"],rows:[[h("sqm-referral-table-user-cell",{name:"Joe Smith"}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward$1),availableReward$1),__assign(__assign({},baseReward$1),pendingReward$1),__assign(__assign({},baseReward$1),cancelledReward$1)],statusText:"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }",statusLongText:"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} REDEEMED {Redeemed} other {Not available} }",fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true}),h("sqm-referral-table-date-cell",{date:16267644e5}),h("sqm-referral-table-date-cell",{date:1627427794891})],[h("sqm-referral-table-user-cell",{name:"Sarah Williams"}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward$1),expiredReward$1)],statusText:"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }",statusLongText:"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} REDEEMED {Redeemed} other {Not available} }",fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}"}),h("sqm-referral-table-status-cell",{statusText:"Incomplete",converted:false}),h("sqm-referral-table-date-cell",{date:16267644e5}),h("sqm-referral-table-date-cell",{date:null})],[h("sqm-referral-table-user-cell",{name:"Marvin Smith"}),h("sqm-referral-table-rewards-cell",{rewards:[__assign(__assign({},baseReward$1),nullExpiresIn$1),__assign(__assign({},baseReward$1),pendingReward$1)],statusText:"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }",statusLongText:"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} REDEEMED {Redeemed} other {Not available} }",fuelTankText:"Your code is",rewardReceivedText:"Reward received on",expiringText:"Expiring in",pendingForText:"{status} for {date}"}),h("sqm-referral-table-status-cell",{statusText:"Complete",converted:true}),h("sqm-referral-table-date-cell",{date:16267644e5}),h("sqm-referral-table-date-cell",{date:1627427794891})]]}}})};var ColumnsMobileHidden=function(){return h(GenericTableView,Object.assign({},fullUserTableProps(true)))};var ReferralTable=Object.freeze({__proto__:null,default:ReferralTable_stories,SimpleUserTable:SimpleUserTable,SingleEntry:SingleEntry,HiddenLabelsTable:HiddenLabelsTable,CustomButtonTextTable:CustomButtonTextTable,FullUserTable:FullUserTable,LongCellTextTable:LongCellTextTable,LongColumnTextTable:LongColumnTextTable,EmptyTable:EmptyTable,LoadingTable:LoadingTable,FullRewardsTable:FullRewardsTable,ColumnsMobileHidden:ColumnsMobileHidden});var UserName_stories={title:"Tests/User Name"};var DemoData=function(){return h("sqm-user-name",{demoData:{loading:false,loadingText:"...",username:"Test Testerson"}})};var Username=function(){return h("sqm-user-name",null)};var UserName=Object.freeze({__proto__:null,default:UserName_stories,DemoData:DemoData,Username:Username});var PasswordField_stories={title:"Components/Portal Password Field"};var Start=function(){return h("sqm-password-field",{demoData:{initValue:"",states:{enableValidation:true,registrationFormState:{validationErrors:{}},content:{fieldLabel:"Password"}}}})};var EmptyError=function(){return h("sqm-password-field",{demoData:{initValue:"",states:{enableValidation:true,registrationFormState:{validationErrors:{password:"Cannot be empty"}},content:{fieldLabel:"Password"}}}})};var ValidationError=function(){return h("sqm-password-field",{demoData:{initValue:"asdf",states:{enableValidation:true,registrationFormState:{validationErrors:{password:"Incomplete"}},content:{fieldLabel:"Password"}}}})};var PasswordField=Object.freeze({__proto__:null,default:PasswordField_stories,Start:Start,EmptyError:EmptyError,ValidationError:ValidationError});function MatrixStory(e){var t=e.matrix,n=e.props,a=e.Component;var r=Object.keys(t).map((function(e){var n=t[e];return n.map((function(t){var n;return n={},n[e]=t,n}))}));var s=cartesian.apply(void 0,r);var i=s.map((function(e){return e.reduce((function(e,t){return __assign(__assign({},e),t)}),{})}));return i.map((function(e){var t=__assign(__assign({},n),e);return h("div",null,h(PropsTable,{values:t}),h("hr",null)," ",h("br",null),h(a,Object.assign({},t)),h("br",null))}))}function PropsTable(e){var t=e.values;return h("table",null,h("tbody",null,Object.keys(t).map((function(e){return h("tr",null,h("th",null,e),h("td",null,JSON.stringify(t[e])))}))))}function cartesian(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}var n=[],a=e.length-1;function r(t,s){for(var i=0,o=e[s].length;i<o;i++){var l=t.slice(0);l.push(e[s][i]);if(s==a)n.push(l);else r(l,s+1)}}r([],0);return n}var scenarioTaskCard='@author:derek\n@owner:kutay\nFeature: Task Card\n\n\t@motivating\n\t@ui\n\tScenario: A header, body title and a CTA button are always displayed\n\t\tGiven the Task Card is configured with the following props\n\t\t\t| prop | value |\n\t\t\t| rewardAmount | "40" |\n\t\t\t| rewardUnit | "Points" |\n\t\t\t| cardTitle | Complete a survey |\n\t\t\t| buttonText | Take Survey |\n\t\tWhen a user views the Task Card\n\t\tThen they see "40 Points" as the heading\n\t\tAnd the "40" is bolded\n\t\tAnd they see "Complete a survey" bolded in the body\n\t\tAnd a details icon in the top right hand corner\n\t\tAnd a button with text "Take Survey" in the bottom right hand corner\n\t\tWhen they click the button\n\t\tThen they are redirected to "example.com" in a new window\n\n\t@motivating\n\t@ui\n\tScenario Outline: A Task Card description can be included but is not required\n\t\tGiven a Task Card\n\t\tAnd it has <descriptionPropValue>\n\t\tWhen a user views the Task card\n\t\tThen they <maySee> a chevron icon in the top right\n\t\tWhen they attempt to click the chevron\n\t\tThen they <maySee> the card description\n\t\tExamples:\n\t\t\t| descriptionPropValue | maySee |\n\t\t\t| This is my task card description | see |\n\t\t\t| | don\'t see |\n\n\t@motivating\n\tScenario Outline: CTA links can open in a new tab or the same tab\n\t\tGiven a Task Card\n\t\tAnd it has <openNewTabPropValue>\n\t\tWhen a user views the Task card\n\t\tAnd they click on the CTA\n\t\tThen they are redirected to the CTA link in <tab>\n\t\tExamples:\n\t\t\t| openNewTabPropValue | tab |\n\t\t\t| true | a new tab |\n\t\t\t| false | the same tab |\n\t\t\t| N/A | the same tab |\n\n\t@minutia\n\t@ui\n\tScenario: A loading state is displayed while the Task Card is loading\n\t\tGiven a Task Card component\n\t\tWhen a user views the Task Card\n\t\tThen a loading state is displayed\n\t\tWhen the Task Card has loaded\n\t\tThen the loading state disapears\n\n\t@motivating\n\t@ui\n\tScenario Outline: The Progress Bar can be shown or hidden but is hidden by default\n\t\tGiven a Task Card\n\t\tAnd it has <showProgressBarPropValue>\n\t\tWhen a user views the Task Card\n\t\tThen the progress bar <mayBe> displayed\n\t\tExamples:\n\t\t\t| showProgressBarPropValue | mayBe |\n\t\t\t| true | is |\n\t\t\t| false | isn\'t |\n\t\t\t| N/A | isn\'t |\n\n\t@motivating\n\tScenario: Clicking the CTA Button can trigger an event to be sent and refresh the widget\n\t\tGiven a Task card\n\t\tAnd it is configured to send an "test" event\n\t\tWhen a user views the Task card\n\t\tAnd clicks on the CTA\n\t\tThen a "test" event is sent to SSQT on the users behalf\n\t\tAnd the contents of the widget the card is dislayed within are refreshed\n\n\t@motivating\n\t@ui\n\tScenario Outline: Tasks can be repeatable or one-time only but are one-time only by default\n\t\tGiven a Task Card\n\t\tAnd it has <repeatablePropValue>\n\t\tAnd a user who has already completed the task\n\t\tWhen they view the Task Card\n\t\tThen they see a brand colour checkmark icon beside the card heading\n\t\tAnd the card <mayBe> brand colour\n\t\tAnd the CTA button <mayBe> disabled\n\t\tAnd the CTA button <mayBe> grey\n\t\tExamples:\n\t\t\t| repeatablePropValue | mayBe |\n\t\t\t| true | isn\'t |\n\t\t\t| false | is |\n\t\t\t| N/A | is |\n\n\t@motivating\n\tScenario Outline: Display duration hides or shows a task\n\t\tGiven a Task Card\n\t\tAnd it has a "display-duration" interval\n\t\tWhen a user views the Card on <day>\n\t\tThen card <mayBeHidden>\n\t\tExamples:\n\t\t\t| day | mayBeHidden |\n\t\t\t| a day before the interval | is hidden |\n\t\t\t| a day during the interval | is not hidden |\n\t\t\t| a day after the interval | is hidden |\n\n\t@motivating\n\tScenario: Task Expiries can be configured and disable the CTA after the expiry\n\t\tGiven a Task Card\n\t\tAnd it has an "reward-duration" interval\n\t\tWhen a user views the card on <day>\n\t\tThen the card <mayBeDisabled>\n\t\tAnd it <mayHaveAlert>\n\t\tAnd it <mayHaveExpiryText> on the bottom left hand side of the card\n\t\tExamples:\n\t\t\t| day | mayBeDisabled | mayHaveAlert | mayHaveExpiryText |\n\t\t\t| a day before the expiry interval | is disabled | has alert stating the month, date, year and time the task starts | doesn\'t have expiry text |\n\t\t\t| a day during the expiry interval | isn\'t disabled | doesn\'t have an alert | has the month, date, year and time the task expires |\n\t\t\t| a day after the expiry interval | is disabled | has alert stating the month, date, year and time the task expired | doesn\'t have expiry text |\n\n\t@motivating\n\tScenario Outline: Task Card dates support localization\n\t\tGiven a Task Card\n\t\tAnd it\'s configured with a expiry duration interval\n\t\tWhen a user with <locale> views the task card <atTime>\n\t\tThen they <seeDate> translated for <locale>\n\t\tExamples:\n\t\t\t| atTime | locale | seeDate |\n\t\t\t| before the interval | en | Task Start Date |\n\t\t\t| during the interval | en | Task End Date |\n\t\t\t| after the interval | en | Task Ended Date |\n\t\t\t| before the interval | fr | Task Start Date |\n\t\t\t| during the interval | fr | Task End Date |\n\t\t\t| after the interval | fr | Task Ended Date |\n\n\t@motivating\n\t@ui\n\tScenario Outline: A task completion count is displayed for repeatable tasks\n\t\tGiven a Task Card\n\t\tAnd it is configured for a repeatable task\n\t\tAnd has it has <goalValue>\n\t\tAnd a user with <userGoalProgress>\n\t\tWhen the user views the task card\n\t\tThen they see a repeat icon\n\t\tAnd the <text> in the bottom left hand corner\n\t\tAnd the <text> is brand colour\n\t\tExamples:\n\t\t\t| goalValue | userGoalProgress | text |\n\t\t\t| 2 | 0 | Completed 0 times |\n\t\t\t| 2 | 1 | Completed 0 times |\n\t\t\t| 2 | 2 | Completed 1 times |\n\t\t\t| 2 | 4 | Completed 2 times |\n\n\t@motivating\n\tScenario Outline: The source of a user\'s progress can be a custom field or a program goal\n\t\tGiven a Task Card\n\t\tAnd it is configured <progressSourcePath>\n\t\tWhen a user views the Task card\n\t\tThen the value at <progressSourcePath> is used to benchmark their progress against the "Goal Completion Count"\n\t\tExamples:\n\t\t\t| progressSourcePath |\n\t\t\t| /customFields/activityCount |\n\t\t\t| /customFields/purchaseTotal |\n\t\t\t| /programGoals/count%2FComment-on-Article |\n\t\t\t| /programGoals/count/Referral-Started%2Freferrals |\n\n\t@motivating\n\tScenario Outline: The users completion of a goal is calculated by the Goal Completion Number\n\t\tGiven a Task Card\n\t\tAnd it is configured for <goalValue>\n\t\tAnd a user who has <progressValue>\n\t\tWhen they view the Task Card\n\t\tThen they are shown to have <progressValue> towards <goalValue>\n\t\tWhen their progress grows larger than <goalValue>\n\t\tThen the task is marked as completed\n\t\tExamples:\n\t\t\t| goalValue | progressValue |\n\t\t\t| 1 | 0 |\n\t\t\t| 10 | 9 |\n\t\t\t| 5 | 2 |\n\n\t@motivating\n\tScenario: The Goal Completion Number defaults to 1\n\t\tGiven a Task Card without a configured "goal" value\n\t\tAnd a user who has <progressValue>\n\t\tWhen they view the Task Card\n\t\tThen it <mayBe> marked as completed\n\t\tExamples:\n\t\t\t| progressValue | mayBe |\n\t\t\t| 0 | isn\'t |\n\t\t\t| 1 | is |\n\t\t\t| 2 | is |\n\n\t@motivating\n\tScenario: CTA Button can be hidden on the task card\n\t\tGiven a Task Card\n\t\tAnd it has default prop values set\n\t\tAnd "hideButton" is true\n\t\tThen the task card is shown\n\t\tAnd the button is hidden\n';var scenarioProgressBar='@author:kutay\n@owner:kutay\nFeature: The progress bar can be shown as a continuous line with progress and end goal. \n\n\t@motivating\n\t@ui\n\tScenario Outline: The progress bar displays a continuous bar with the goal represented by a present\n\t\tGiven a Task Card component\n\t\tAnd the users progress is <progress>\n\t\tAnd the task goal is "500"\n\t\tAnd the task is not repeatable\n\t\tThen I have <progressBar>\n\t\tAnd the <progressBar> shows <progress> with <unit> on the right\n\t\tAnd the circle on the progress bar is brand colour\n\t\tAnd the line behind the circle is brand colour\n\t\tAnd the line infront of the circle is grey\n\t\tAnd the gift icon has <color>\n\t\tAnd the gift icon shows "500" with <unit> below\n\t\tExamples:\n\t\t\t| progress | progressBar | unit | color |\n\t\t\t| 0 | ●――――――――――――――――――🎁 | $ | no |\n\t\t\t| 100 | ―――●―――――――――――――――🎁 | $ | no |\n\t\t\t| 500 | ―――――――――――――――――――🎁 | $ | yes |\n\t\t\t| 650 | ―――――――――――――――――――🎁 | $ | yes |\n\t\t\t| 1200 | ―――――――――――――――――――🎁 | $ | yes |\n\n\t@motivating\n\t@ui\n\tScenario Outline: The progress bar can be displayed with steps instead of a continuous line\n\t\tGiven a Task Card component\n\t\tAnd the user progress is <progress>\n\t\tAnd the goal is "5"\n\t\tAnd steps are enabled\n\t\tThen I have <progressBar>\n\t\tAnd the <progressBar> has incrementing steps up to "5" in increments of 1\n\t\tAnd the steps behind the users progress are brand colour\n\t\tAnd the steps infront of the users progress are grey\n\t\tAnd the gift icon has <color>\n\t\tAnd the gift icon shows "5" below\n\t\tExamples:\n\t\t\t| progress | progressBar | color |\n\t\t\t| 0 | ―――○―――○―――○―――○―――🎁 | no |\n\t\t\t| 1 | ―――●―――○―――○―――○―――🎁 | no |\n\t\t\t| 5 | ―――●―――●―――●―――●―――🎁 | yes |\n\t\t\t| 7 | ―――●―――●―――●―――●―――🎁 | yes |\n\t\t\t| 12 | ―――●―――●―――●―――●―――🎁 | yes |\n\n\t@motivating\n\t@ui\n\tScenario Outline: The continuous progress bar will continue to progress for repeatable rewards\n\t\tGiven a Task Card component\n\t\tAnd the user progress is <progress>\n\t\tAnd the goal is "500"\n\t\tAnd it is repeatable\n\t\tThen I have <progressBar>\n\t\tAnd the <progressBar> shows <progress> with <unit> to the right\n\t\tAnd the first <icon1> is <color1> with <text1> displayed below\n\t\tAnd the second <icon2> is <color2> with <text2> displayed below\n\t\tAnd the third <icon3> is <color3> with <text3> displayed below\n\t\tAnd the circle on the progress bar is brand colour\n\t\tAnd the line behind the circle is brand colour\n\t\tAnd the line infront of the circle is grey\n\t\tExamples:\n\t\t\t| progress | progressBar | unit | icon1 | color1 | text1 | icon2 | color2 | text 2 | icon3 | color3 | text 3 |\n\t\t\t| 250 | ――――●――――🎁―――――――🎁 | $ | NA | NA | NA | gift | greyscale | 500 | gift | greyscale | 1000 |\n\t\t\t| 500 | ―――――――――🎁―――――――🎁 | $ | NA | NA | NA | gift | colorful | 500 | gift | greyscale | 1000 |\n\t\t\t| 750 | ―――――――――🎁―――●―――🎁 | $ | NA | NA | NA | gift | colorful | 500 | gift | greyscale | 1000 |\n\t\t\t| 1000 | 🎁―――――――🎁―――――――🎁 | $ | gift | colorful | 500 | gift | colorful | 1000 | gift | greyscale | 1500 |\n\t\t\t| 1250 | 🎁―――――――🎁―――●―――🎁 | $ | gift | colorful | 500 | gift | colorful | 1000 | gift | greyscale | 1500 |\n\n\t@motivating\n\t@ui\n\tScenario Outline: The stepped progress bar will continue to progress for repeatable rewards\n\t\tGiven a Task Card component\n\t\tAnd the user progress is <progress>\n\t\tAnd the goal is "5"\n\t\tAnd steps are enabled\n\t\tAnd it is repeatable\n\t\tThen I have <progressBar>\n\t\tAnd the <progressBar> has incrementing steps up to "5" in increments of 1\n\t\tAnd the first <icon1> is <color1>\n\t\tAnd the second <icon2> is <color2>\n\t\tAnd the third <icon3> is <color3>\n\t\tAnd the steps behind the users progress are brand colour\n\t\tAnd the steps infront of the users progress are grey\n\t\tExamples:\n\t\t\t| progress | progressBar | icon1 | color1 | icon2 | color2 | icon3 | color3 |\n\t\t\t| 0 | ―――○―○―○―○―🎁―○―○―○―○―🎁 | NA | NA | gift | greyscale | gift | greyscale |\n\t\t\t| 1 | ―――●―○―○―○―🎁―○―○―○―○―🎁 | NA | NA | gift | greyscale | gift | greyscale |\n\t\t\t| 5 | ―――●―●―●―●―🎁―○―○―○―○―🎁 | NA | NA | gift | colorful | gift | greyscale |\n\t\t\t| 7 | ―――●―●―●―●―🎁―●―●―○―○―🎁 | NA | NA | gift | colorful | gift | greyscale |\n\t\t\t| 12 | 🎁―●―●―●―●―🎁―●―●―○―○―🎁 | gift | colorful | gift | colorful | gift | greyscale |';var ResizerStylesheet="\n\n:root{\n --checker-color-1: #ffffff00;\n --checker-color-2: #ffffff00;\n --checker-size: 7px;\n --checker-gradient: linear-gradient(45deg, var(--checker-color-1) 25%, transparent 25%, transparent 75%, var(--checker-color-1) 75%);\n}\n.resizer{\n resize: horizontal;\n border: 2px dashed gray;\n\tmargin: -2px;\n padding: 12px;\n height: fit-content;\n overflow: hidden;\n\twidth: 100%;\n}\n\n.resizer{\n background-color: var(--checker-color-2);\n background-image: var(--checker-gradient), var(--checker-gradient);\n background-position: 0 0, var(--checker-size) var(--checker-size);\n background-size: calc(var(--checker-size) * 2) calc(var(--checker-size) * 2);\n}\n";var Resizer=function(e,t){return h("div",{class:"resizer"},t)};var scenario$e=scenarioTaskCard+scenarioProgressBar;var TaskCard_stories={title:"Components/Task Card/",parameters:{scenario:scenario$e}};var storyFrame={display:"inline-flex",gap:"32px"};var resizable={width:"347px",minWidth:"347px",resize:"horizontal",height:"fit-content",overflow:"hidden"};var oneAction={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"20",rewardUnit:"SaaSquatch Points",cardTitle:"Complete a survey",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,showProgressBar:false,steps:false,buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,rewardDuration:null,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:1,locale:"en"},states:{progress:0,loading:false,loadingEvent:false}};var coupleActions={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"40",rewardUnit:"SaaSquatch Points",cardTitle:"Comment on 5 articles",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,showProgressBar:true,steps:true,buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",rewardDuration:null,expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:5,locale:"en"},states:{progress:1,loading:false,loadingEvent:false}};var manyActions={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"150",rewardUnit:"SaaSquatch Points",cardTitle:"Spend $500 at our Store",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",showProgressBar:true,steps:false,progressBarUnit:"$",buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,rewardDuration:null,expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:500,locale:"en"},states:{progress:100,loading:false,loadingEvent:false}};var TaskCard$1=function(){var e={rewardDuration:"2021-11-30T08:00:00.000Z/2021-12-01T08:00:00.000Z"};var t=__assign(__assign({},e),{repeatable:true});return h("div",{style:storyFrame},h(Resizer,null,h("h4",null,"Not Repeatable"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{description:""}),states:__assign(__assign({},oneAction.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{description:""}),states:__assign(__assign({},coupleActions.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{description:""}),states:__assign(__assign({},manyActions.states),{progress:230})}))),h(Resizer,null,h("h4",null,"Repeatable"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true}),states:__assign(__assign({},oneAction.states),{progress:2})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true}),states:__assign(__assign({},coupleActions.states),{progress:7})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true}),states:__assign(__assign({},manyActions.states),{progress:650})}))),h(Resizer,null,h("h4",null,"Complete"),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500})}))),h(Resizer,null,h("h4",null,"Unavailable"),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0})},t)),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:3})},t)),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:250})},t))))};var TaskCardNotRepeatable=function(){return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:230})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500})})),h("h5",null)))};var TaskCardRepeatable=function(){return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true}),states:__assign(__assign({},oneAction.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true}),states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true}),states:__assign(__assign({},coupleActions.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true}),states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true}),states:__assign(__assign({},coupleActions.states),{progress:7})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true}),states:__assign(__assign({},coupleActions.states),{progress:10})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true}),states:__assign(__assign({},manyActions.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true}),states:__assign(__assign({},manyActions.states),{progress:500})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true}),states:__assign(__assign({},manyActions.states),{progress:650})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true}),states:__assign(__assign({},manyActions.states),{progress:1e3})})),h("h5",null)))};var TaskCardRepeatableFinite=function(){return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true,finite:2}),states:__assign(__assign({},oneAction.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true,finite:2}),states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true,finite:2}),states:__assign(__assign({},oneAction.states),{progress:2})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,finite:2}),states:__assign(__assign({},coupleActions.states),{progress:2})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,finite:2}),states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,finite:2}),states:__assign(__assign({},coupleActions.states),{progress:10})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,finite:3}),states:__assign(__assign({},coupleActions.states),{progress:12})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,finite:3}),states:__assign(__assign({},coupleActions.states),{progress:15})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,finite:2}),states:__assign(__assign({},manyActions.states),{progress:200})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,finite:3}),states:__assign(__assign({},manyActions.states),{progress:500})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,finite:2}),states:__assign(__assign({},manyActions.states),{progress:1e3})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,finite:3}),states:__assign(__assign({},manyActions.states),{progress:1200})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,finite:3}),states:__assign(__assign({},manyActions.states),{progress:1500})})),h("h5",null)))};var TaskCardEndDate=function(){var e={rewardDuration:luxon.DateTime.now().minus({days:1}).toISO()+"/"+luxon.DateTime.now().plus({days:1}).toISO()};var t=__assign(__assign({},e),{repeatable:true});return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),t),states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},coupleActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},coupleActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},coupleActions.content),t),states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},manyActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},manyActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},manyActions.content),t),states:__assign(__assign({},manyActions.states),{progress:1e3})})),h("h5",null)))};var TaskCardLoading=function(){var e={states:{loading:true,progress:0,loadingEvent:false}};return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,e))," ",h("h5",null),h(TaskCardView,Object.assign({},oneAction,e))," ",h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,e))," ",h("h5",null),h(TaskCardView,Object.assign({},coupleActions,e))," ",h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,e))," ",h("h5",null),h(TaskCardView,Object.assign({},manyActions,e))," ",h("h5",null)))};var TaskCardNotStarted=function(){var e={rewardDuration:luxon.DateTime.now().plus({days:1}).toISO()+"/"+luxon.DateTime.now().plus({days:2}).toISO()};var t=__assign(__assign({},e),{repeatable:true});return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0}),content:__assign(__assign({},oneAction.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1}),content:__assign(__assign({},oneAction.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0}),content:__assign(__assign({},oneAction.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1}),content:__assign(__assign({},oneAction.content),t)})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),t)})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:100}),content:__assign(__assign({},manyActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500}),content:__assign(__assign({},manyActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:100}),content:__assign(__assign({},manyActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500}),content:__assign(__assign({},manyActions.content),t)})),h("h5",null)))};var TaskCardEnded=function(){var e={rewardDuration:luxon.DateTime.now().minus({days:2}).toISO()+"/"+luxon.DateTime.now().minus({days:1}).toISO()};var t=__assign(__assign({},e),{repeatable:true});return h("div",{style:storyFrame},h("div",{style:resizable},h("h4",null,"One Action"),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0}),content:__assign(__assign({},oneAction.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1}),content:__assign(__assign({},oneAction.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:0}),content:__assign(__assign({},oneAction.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},oneAction,{states:__assign(__assign({},oneAction.states),{progress:1}),content:__assign(__assign({},oneAction.content),t)})),h("h5",null)),h("div",{style:resizable},h("h4",null,"A Couple Actions"),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{states:__assign(__assign({},coupleActions.states),{progress:1}),content:__assign(__assign({},coupleActions.content),t)})),h("h5",null)),h("div",{style:resizable},h("h4",null,"Many Actions"),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:100}),content:__assign(__assign({},manyActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500}),content:__assign(__assign({},manyActions.content),e)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:100}),content:__assign(__assign({},manyActions.content),t)})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{states:__assign(__assign({},manyActions.states),{progress:500}),content:__assign(__assign({},manyActions.content),t)})),h("h5",null)))};var TaskCardButtonHidden=function(){var e={rewardDuration:"2021-11-30T08:00:00.000Z/2021-12-01T08:00:00.000Z"};var t=__assign(__assign({},e),{repeatable:true});return h("div",{style:storyFrame},h(Resizer,null,h("h4",null,"Not Repeatable"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{description:"",hideButton:true}),states:__assign(__assign({},oneAction.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{description:"",hideButton:true}),states:__assign(__assign({},coupleActions.states),{progress:0})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{description:"",hideButton:true}),states:__assign(__assign({},manyActions.states),{progress:230})}))),h(Resizer,null,h("h4",null,"Repeatable"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{repeatable:true,hideButton:true}),states:__assign(__assign({},oneAction.states),{progress:2})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{repeatable:true,hideButton:true}),states:__assign(__assign({},coupleActions.states),{progress:7})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{repeatable:true,hideButton:true}),states:__assign(__assign({},manyActions.states),{progress:650})}))),h(Resizer,null,h("h4",null,"Complete"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{hideButton:true}),states:__assign(__assign({},oneAction.states),{progress:1})})),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{hideButton:true}),states:__assign(__assign({},coupleActions.states),{progress:5})})),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{hideButton:true}),states:__assign(__assign({},manyActions.states),{progress:500})}))),h(Resizer,null,h("h4",null,"Unavailable"),h(TaskCardView,Object.assign({},oneAction,{content:__assign(__assign({},oneAction.content),{hideButton:true}),states:__assign(__assign({},oneAction.states),{progress:0})},t)),h("h5",null),h(TaskCardView,Object.assign({},coupleActions,{content:__assign(__assign({},coupleActions.content),{hideButton:true}),states:__assign(__assign({},coupleActions.states),{progress:3})},t)),h("h5",null),h(TaskCardView,Object.assign({},manyActions,{content:__assign(__assign({},manyActions.content),{hideButton:true}),states:__assign(__assign({},manyActions.states),{progress:250})},t))))};var ProgressBar=function(){var e={progress:0,goal:500,progressBarUnit:"$"};return h("div",null,h(MatrixStory,{matrix:{progress:[0,100,500,650,1200]},props:e,Component:ProgressBarView}))};var ProgressBarSteps=function(){var e={progress:0,steps:true,goal:5};return h("div",null,h(MatrixStory,{matrix:{progress:[0,1,5,7,12]},props:e,Component:ProgressBarView}))};var ProgressBarRepeatable=function(){var e={progress:0,goal:500,progressBarUnit:"$",repeatable:true};return h("div",null,h(MatrixStory,{matrix:{progress:[0,250,500,750,1e3,1250]},props:e,Component:ProgressBarView}))};var ProgressBarStepsRepeatable=function(){var e={progress:0,steps:true,goal:5,repeatable:true};return h("div",null,h(MatrixStory,{matrix:{progress:[0,1,5,7,12]},props:e,Component:ProgressBarView}))};var ProgressBarFinite=function(){var e={progress:0,goal:500,progressBarUnit:"$",repeatable:true,finite:2};return h("div",null,h(MatrixStory,{matrix:{progress:[0,250,500,750,1e3,1250]},props:e,Component:ProgressBarView}))};var ProgressBarStepsFinite=function(){var e={progress:0,steps:true,goal:5,repeatable:true,finite:2};return h("div",null,h(MatrixStory,{matrix:{progress:[0,1,5,7,10,12]},props:e,Component:ProgressBarView}))};var TaskCard$2=Object.freeze({__proto__:null,default:TaskCard_stories,TaskCard:TaskCard$1,TaskCardNotRepeatable:TaskCardNotRepeatable,TaskCardRepeatable:TaskCardRepeatable,TaskCardRepeatableFinite:TaskCardRepeatableFinite,TaskCardEndDate:TaskCardEndDate,TaskCardLoading:TaskCardLoading,TaskCardNotStarted:TaskCardNotStarted,TaskCardEnded:TaskCardEnded,TaskCardButtonHidden:TaskCardButtonHidden,ProgressBar:ProgressBar,ProgressBarSteps:ProgressBarSteps,ProgressBarRepeatable:ProgressBarRepeatable,ProgressBarStepsRepeatable:ProgressBarStepsRepeatable,ProgressBarFinite:ProgressBarFinite,ProgressBarStepsFinite:ProgressBarStepsFinite});var portalTemplate='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program">\n <sqm-router>\n <template\n path="/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)"\n >\n <sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqb-widget\n widget-type="p/referral-program/w/referrerWidget"\n track-loads="true"\n ></sqb-widget>\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var portalLeadSubmitTemplate='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program">\n <sqm-router>\n <template\n path="/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)"\n >\n <sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b|\\brefer\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/refer"\n icon="inbox"\n label="Submit A Lead"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqb-widget\n widget-type="p/referral-program/w/referrerWidget"\n track-loads="true"\n ></sqb-widget>\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path="/refer">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-referral-iframe></sqm-referral-iframe>\n </template>\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var portalLeadSubmitTemplateWithDashboard='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program">\n <sqm-router>\n <template\n path="/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)"\n >\n <sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b|\\brefer\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/refer"\n icon="inbox"\n label="Submit A Lead"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n ><sqm-titled-section label-margin="xx-small"\n ><sqm-text slot="label"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot="content">\n <h1>\n <sqm-user-name\n fallback="Anonymous User"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-titled-section padding="none" label-margin="x-large"\n ><sqm-text slot="label">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot="content">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot="content"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none">\n <sqm-text slot="label">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot="content"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot="content"\n direction="row"\n padding="none"\n gap="xxx-large"\n min-width="160px"\n ><sqm-share-button\n icon="envelope"\n medium="email"\n size="medium"\n pill="true"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium="twitter"\n size="medium"\n pill="true"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium="facebook"\n size="medium"\n pill="true"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path="/refer">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-referral-iframe></sqm-referral-iframe>\n </template>\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var portalTemplateWithDashboard='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program">\n <sqm-router>\n <template\n path="/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)"\n >\n <sqm-hero\n background="https://res.cloudinary.com/saasquatch/image/upload/v1683589787/Portal%20Assets/photo-1599676821464-3555954838dc.jpg"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n ><sqm-titled-section label-margin="xx-small"\n ><sqm-text slot="label"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot="content">\n <h1>\n <sqm-user-name\n fallback="Anonymous User"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-titled-section padding="none" label-margin="x-large"\n ><sqm-text slot="label">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot="content">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot="content"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none">\n <sqm-text slot="label">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot="content"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot="content"\n direction="row"\n padding="none"\n gap="xxx-large"\n min-width="160px"\n ><sqm-share-button\n icon="envelope"\n medium="email"\n size="medium"\n pill="true"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium="twitter"\n size="medium"\n pill="true"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium="facebook"\n size="medium"\n pill="true"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var multiProgramTemplate='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program-1">\n <sqm-router>\n <template\n path="/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)"\n >\n <sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-program-menu>\n <sl-menu-item value="referral-program-1"\n >Referral Program 1</sl-menu-item\n >\n <sl-menu-item value="referral-program-2"\n >Referral Program 2</sl-menu-item\n >\n </sqm-program-menu>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqb-program-switch>\n <template program-id="referral-program-1">\n <sqb-widget\n widget-type="p/referral-program-1/w/referrerWidget"\n track-loads="true"\n ></sqb-widget>\n </template>\n <template program-id="referral-program-2">\n <sqb-widget\n widget-type="p/referral-program-2/w/referrerWidget"\n track-loads="true"\n ></sqb-widget>\n </template>\n </sqb-program-switch>\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile></sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var multiProgramTemplateWithDashboard='<sqm-portal-frame>\n <a slot="header" href="/">\n <sqm-text style="height: 60px">\n <img\n style="height: 60px"\n src="https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id="referral-program-1">\n <sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n >\n <sqm-router>\n <template path="/register">\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path="/emailVerification">\n <sqm-portal-protected-route\n redirect-to="/login"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path="/login">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path="/verifyEmail">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path="/forgotPassword">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path="/resetPassword">\n <sqm-portal-reset-password\n confirm-password="true"\n ></sqm-portal-reset-password>\n </template>\n <template path="/logout">\n <sqm-portal-logout next-page="/login"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n <sqm-router>\n <template path="/:path(\\bactivity\\b|\\beditProfile\\b)?">\n <sqm-divided-layout\n direction="row"\n style="\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n "\n >\n <sqm-navigation-sidebar>\n <sqm-program-menu>\n <sl-menu-item value="referral-program-1"\n >Referral Program 1</sl-menu-item\n >\n <sl-menu-item value="referral-program-2"\n >Referral Program 2</sl-menu-item\n >\n </sqm-program-menu>\n <sqm-navigation-sidebar-item\n path="/"\n icon="house"\n label="Dashboard"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/activity"\n icon="bar-chart"\n label="Activity"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/editProfile"\n icon="person"\n label="Edit Profile"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path="/logout"\n icon="box-arrow-right"\n label="Logout"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction="column">\n <sqm-router>\n <template path="/">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route\n ><sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n ><sqm-titled-section label-margin="xx-small"\n ><sqm-text slot="label"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot="content">\n <h1>\n <sqm-user-name\n fallback="Anonymous User"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-titled-section padding="none" label-margin="x-large"\n ><sqm-text slot="label">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot="content">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot="content"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none">\n <sqm-text slot="label">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot="content"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot="content"\n direction="row"\n padding="none"\n gap="xxx-large"\n min-width="160px"\n ><sqm-share-button\n icon="envelope"\n medium="email"\n size="medium"\n pill="true"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium="twitter"\n size="medium"\n pill="true"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium="facebook"\n size="medium"\n pill="true"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path="/editProfile">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path="/activity">\n <sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction="column"\n padding="xxx-large"\n gap="xxx-large"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot="footer"\n support-email="support@example.com"\n terms-link="https://example.com"\n faq-link="https://example.com"\n terms-text="Terms And Conditions"\n faq-text="FAQ"\n show-powered-by="true"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n';var dashboardTemplate='<sqm-portal-container direction="column" padding="xxx-large" gap="xxx-large"\n ><sqm-titled-section label-margin="xx-small"\n ><sqm-text slot="label"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot="content">\n <h1>\n <sqm-user-name fallback="Anonymous User"></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n><sqm-portal-container direction="column" padding="xxx-large" gap="xxx-large">\n <sqm-titled-section padding="none" label-margin="x-large"\n ><sqm-text slot="label"> <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot="content">\n <p>\n Get rewarded for referring potential customers to SaaSquatch. Earn\n commission for each successful lead you send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label"> <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot="content"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none">\n <sqm-text slot="label"> <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot="content"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin="small" padding="none"\n ><sqm-text slot="label"> <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot="content"\n direction="row"\n padding="none"\n gap="xxx-large"\n min-width="160px"\n ><sqm-share-button\n icon="envelope"\n medium="email"\n size="medium"\n pill="true"\n >Email a friend</sqm-share-button\n ><sqm-share-button medium="twitter" size="medium" pill="true"\n >Tweet about us</sqm-share-button\n ><sqm-share-button medium="facebook" size="medium" pill="true"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n>\n';var leadSubmitTemplate="<sqm-referral-iframe></sqm-referral-iframe>\n";var editProfileTemplate='<sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n></sqm-portal-protected-route>\n<sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n><sqm-portal-container direction="column" gap="xxx-large">\n <sqm-portal-change-password></sqm-portal-change-password>\n</sqm-portal-container>\n';var activityTemplate='<sqm-portal-protected-route\n require-email-verification="true"\n redirect-to="/login"\n redirect-to-unverified="/emailVerification"\n></sqm-portal-protected-route>\n<sqm-portal-container direction="column" padding="xxx-large" gap="xxx-large">\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space="xxxx-large"\n ><sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/referralsCount"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardsCountFiltered/AVAILABLE"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse="true"\n alignment="left"\n stat-type="/rewardBalance/CREDIT/CENTS"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title="Referred"\n date-shown="dateReferralStarted"\n ></sqm-referral-table-date-column> </sqm-referral-table\n></sqm-portal-container>\n';var resetPasswordEmailTemplate='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n\n<html\n xmlns="http://www.w3.org/1999/xhtml"\n xmlns:o="urn:schemas-microsoft-com:office:office"\n xmlns:v="urn:schemas-microsoft-com:vml"\n>\n <head>\n \x3c!--[if gte mso 9\n ]><xml\n ><o:OfficeDocumentSettings\n ><o:AllowPNG /><o:PixelsPerInch\n >96</o:PixelsPerInch\n ></o:OfficeDocumentSettings\n ></xml\n ><!\n [endif]--\x3e\n <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />\n <meta content="width=device-width" name="viewport" />\n \x3c!--[if !mso]>\x3c!--\x3e\n <meta content="IE=edge" http-equiv="X-UA-Compatible" />\n \x3c!--<![endif]--\x3e\n <title></title>\n \x3c!--[if !mso]>\x3c!--\x3e\n \x3c!--<![endif]--\x3e\n <style type="text/css">\n body {\n margin: 0;\n padding: 0;\n }\n\n table,\n td,\n tr {\n vertical-align: top;\n border-collapse: collapse;\n }\n\n * {\n line-height: inherit;\n }\n\n a[x-apple-data-detectors="true"] {\n color: inherit !important;\n text-decoration: none !important;\n }\n </style>\n <style id="media-query" type="text/css">\n @media (max-width: 520px) {\n .block-grid,\n .col {\n min-width: 320px !important;\n max-width: 100% !important;\n display: block !important;\n }\n\n .block-grid {\n width: 100% !important;\n }\n\n .col {\n width: 100% !important;\n }\n\n .col_cont {\n margin: 0 auto;\n }\n\n img.fullwidth,\n img.fullwidthOnMobile {\n max-width: 100% !important;\n }\n\n .no-stack .col {\n min-width: 0 !important;\n display: table-cell !important;\n }\n\n .no-stack.two-up .col {\n width: 50% !important;\n }\n\n .no-stack .col.num2 {\n width: 16.6% !important;\n }\n\n .no-stack .col.num3 {\n width: 25% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num5 {\n width: 41.6% !important;\n }\n\n .no-stack .col.num6 {\n width: 50% !important;\n }\n\n .no-stack .col.num7 {\n width: 58.3% !important;\n }\n\n .no-stack .col.num8 {\n width: 66.6% !important;\n }\n\n .no-stack .col.num9 {\n width: 75% !important;\n }\n\n .no-stack .col.num10 {\n width: 83.3% !important;\n }\n\n .video-block {\n max-width: none !important;\n }\n\n .mobile_hide {\n min-height: 0px;\n max-height: 0px;\n max-width: 0px;\n display: none;\n overflow: hidden;\n font-size: 0px;\n }\n\n .desktop_hide {\n display: block !important;\n max-height: none !important;\n }\n }\n </style>\n <style id="icon-media-query" type="text/css">\n @media (max-width: 520px) {\n .icons-inner {\n text-align: center;\n }\n\n .icons-inner td {\n margin: 0 auto;\n }\n }\n </style>\n </head>\n <body\n class="clean-body"\n style="\n margin: 0;\n padding: 0;\n -webkit-text-size-adjust: 100%;\n background-color: #ffffff;\n "\n >\n \x3c!--[if IE]><div class="ie-browser"><![endif]--\x3e\n <table\n bgcolor="#FFFFFF"\n cellpadding="0"\n cellspacing="0"\n class="nl-container"\n role="presentation"\n style="\n table-layout: fixed;\n vertical-align: top;\n min-width: 320px;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n background-color: #ffffff;\n width: 100%;\n "\n valign="top"\n width="100%"\n >\n <tbody>\n <tr style="vertical-align: top" valign="top">\n <td style="word-break: break-word; vertical-align: top" valign="top">\n \x3c!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td align="center" style="background-color:#FFFFFF"><![endif]--\x3e\n <div style="background-color: transparent">\n <div\n class="block-grid"\n style="\n min-width: 320px;\n max-width: 500px;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n margin: 0 auto;\n background-color: transparent;\n "\n >\n <div\n style="\n border-collapse: collapse;\n display: table;\n width: 100%;\n background-color: transparent;\n "\n >\n \x3c!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color:transparent;"><tr><td align="center"><table cellpadding="0" cellspacing="0" border="0" style="width:500px"><tr class="layout-full-width" style="background-color:transparent"><![endif]--\x3e\n \x3c!--[if (mso)|(IE)]><td align="center" width="500" style="background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;" valign="top"><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;"><![endif]--\x3e\n <div\n class="col num12"\n style="\n min-width: 320px;\n max-width: 500px;\n display: table-cell;\n vertical-align: top;\n width: 500px;\n "\n >\n <div class="col_cont" style="width: 100% !important">\n \x3c!--[if (!mso)&(!IE)]>\x3c!--\x3e\n <div\n style="\n border-top: 0px solid transparent;\n border-left: 0px solid transparent;\n border-bottom: 0px solid transparent;\n border-right: 0px solid transparent;\n padding-top: 5px;\n padding-bottom: 5px;\n padding-right: 0px;\n padding-left: 0px;\n "\n >\n \x3c!--<![endif]--\x3e\n <table\n cellpadding="0"\n cellspacing="0"\n role="presentation"\n style="\n table-layout: fixed;\n vertical-align: top;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n "\n valign="top"\n width="100%"\n >\n <tr style="vertical-align: top" valign="top">\n <td\n align="center"\n style="\n word-break: break-word;\n vertical-align: top;\n padding-bottom: 20px;\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 10px;\n text-align: center;\n width: 100%;\n "\n valign="top"\n width="100%"\n >\n <h1\n style="\n color: #444445;\n direction: ltr;\n font-family: \'Helvetica Neue\', Helvetica,\n Arial, sans-serif;\n font-size: 20px;\n font-weight: normal;\n letter-spacing: normal;\n line-height: 120%;\n text-align: left;\n margin-top: 0;\n margin-bottom: 0;\n "\n >\n <strong>Reset your password</strong>\n </h1>\n </td>\n </tr>\n </table>\n \x3c!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif"><![endif]--\x3e\n <div\n style="\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.8;\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n "\n >\n <div\n class="txtTinyMce-wrapper"\n style="\n font-size: 14px;\n line-height: 1.8;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 25px;\n "\n >\n <p\n style="\n margin: 0;\n font-size: 14px;\n line-height: 1.8;\n word-break: break-word;\n mso-line-height-alt: 25px;\n margin-top: 0;\n margin-bottom: 0;\n "\n >\n <span style="font-size: 14px"\n >We received a request to reset your password.\n Click the button below to reset your\n password.</span\n >\n </p>\n </div>\n </div>\n <div\n align="center"\n class="button-container"\n style="\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n "\n >\n \x3c!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;"><tr><td style="padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px" align="center"><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" target="_blank" href={{validationLink}} style="height:31.5pt;width:390pt;v-text-anchor:middle;" arcsize="12%" stroke="false" fillcolor="#2270ee"><w:anchorlock/><v:textbox inset="0,0,0,0"><center style="color:#ffffff; font-family:Arial, sans-serif; font-size:14px"><!\n [endif]--\x3e<a\n href="{{validationLink}}"\n target="_blank"\n style="\n -webkit-text-size-adjust: none;\n text-decoration: none;\n display: block;\n color: #ffffff;\n background-color: #2270ee;\n border-radius: 5px;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n width: 100%;\n width: calc(100% - 2px);\n border-top: 1px solid #2270ee;\n border-right: 1px solid #2270ee;\n border-bottom: 1px solid #2270ee;\n border-left: 1px solid #2270ee;\n padding-top: 5px;\n padding-bottom: 5px;\n font-family: \'Helvetica Neue\', Helvetica, Arial,\n sans-serif;\n text-align: center;\n mso-border-alt: none;\n word-break: keep-all;\n "\n target="_blank"\n ><span\n style="\n padding-left: 20px;\n padding-right: 20px;\n font-size: 14px;\n display: inline-block;\n letter-spacing: undefined;\n "\n ><span\n style="\n font-size: 16px;\n line-height: 2;\n word-break: break-word;\n mso-line-height-alt: 32px;\n "\n ><span\n style="font-size: 14px; line-height: 28px"\n >Reset Password</span\n ></span\n ></span\n ></a\n >\n \x3c!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]--\x3e\n </div>\n \x3c!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 10px; padding-left: 10px; padding-top: 15px; padding-bottom: 15px; font-family: Arial, sans-serif"><![endif]--\x3e\n <div\n style="\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.2;\n padding-top: 15px;\n padding-right: 10px;\n padding-bottom: 15px;\n padding-left: 10px;\n "\n >\n <div\n class="txtTinyMce-wrapper"\n style="\n font-size: 14px;\n line-height: 1.2;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 17px;\n "\n >\n <p\n style="\n margin: 0;\n font-size: 12px;\n line-height: 1.2;\n word-break: break-word;\n mso-line-height-alt: 14px;\n margin-top: 0;\n margin-bottom: 0;\n "\n >\n <span style="font-size: 12px"\n >If you didn\'t request a password reset please\n ignore this email. Your password will not\n change.</span\n >\n </p>\n </div>\n </div>\n \x3c!--[if mso]></td></tr></table><![endif]--\x3e\n \x3c!--[if (!mso)&(!IE)]>\x3c!--\x3e\n </div>\n \x3c!--<![endif]--\x3e\n </div>\n </div>\n \x3c!--[if (mso)|(IE)]></td></tr></table><![endif]--\x3e\n \x3c!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]--\x3e\n </div>\n </div>\n </div>\n \x3c!--[if (mso)|(IE)]></td></tr></table><![endif]--\x3e\n </td>\n </tr>\n </tbody>\n </table>\n \x3c!--[if (IE)]></div><![endif]--\x3e\n </body>\n</html>';var verifyEmailTemplate='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n\n<html\n xmlns="http://www.w3.org/1999/xhtml"\n xmlns:o="urn:schemas-microsoft-com:office:office"\n xmlns:v="urn:schemas-microsoft-com:vml"\n>\n <head>\n \x3c!--[if gte mso 9\n ]><xml\n ><o:OfficeDocumentSettings\n ><o:AllowPNG /><o:PixelsPerInch\n >96</o:PixelsPerInch\n ></o:OfficeDocumentSettings\n ></xml\n ><!\n [endif]--\x3e\n <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />\n <meta content="width=device-width" name="viewport" />\n \x3c!--[if !mso]>\x3c!--\x3e\n <meta content="IE=edge" http-equiv="X-UA-Compatible" />\n \x3c!--<![endif]--\x3e\n <title></title>\n \x3c!--[if !mso]>\x3c!--\x3e\n \x3c!--<![endif]--\x3e\n <style type="text/css">\n body {\n margin: 0;\n padding: 0;\n }\n\n table,\n td,\n tr {\n vertical-align: top;\n border-collapse: collapse;\n }\n\n * {\n line-height: inherit;\n }\n\n a[x-apple-data-detectors="true"] {\n color: inherit !important;\n text-decoration: none !important;\n }\n </style>\n <style id="media-query" type="text/css">\n @media (max-width: 520px) {\n .block-grid,\n .col {\n min-width: 320px !important;\n max-width: 100% !important;\n display: block !important;\n }\n\n .block-grid {\n width: 100% !important;\n }\n\n .col {\n width: 100% !important;\n }\n\n .col_cont {\n margin: 0 auto;\n }\n\n img.fullwidth,\n img.fullwidthOnMobile {\n max-width: 100% !important;\n }\n\n .no-stack .col {\n min-width: 0 !important;\n display: table-cell !important;\n }\n\n .no-stack.two-up .col {\n width: 50% !important;\n }\n\n .no-stack .col.num2 {\n width: 16.6% !important;\n }\n\n .no-stack .col.num3 {\n width: 25% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num5 {\n width: 41.6% !important;\n }\n\n .no-stack .col.num6 {\n width: 50% !important;\n }\n\n .no-stack .col.num7 {\n width: 58.3% !important;\n }\n\n .no-stack .col.num8 {\n width: 66.6% !important;\n }\n\n .no-stack .col.num9 {\n width: 75% !important;\n }\n\n .no-stack .col.num10 {\n width: 83.3% !important;\n }\n\n .video-block {\n max-width: none !important;\n }\n\n .mobile_hide {\n min-height: 0px;\n max-height: 0px;\n max-width: 0px;\n display: none;\n overflow: hidden;\n font-size: 0px;\n }\n\n .desktop_hide {\n display: block !important;\n max-height: none !important;\n }\n }\n </style>\n <style id="icon-media-query" type="text/css">\n @media (max-width: 520px) {\n .icons-inner {\n text-align: center;\n }\n\n .icons-inner td {\n margin: 0 auto;\n }\n }\n </style>\n </head>\n <body\n class="clean-body"\n style="\n margin: 0;\n padding: 0;\n -webkit-text-size-adjust: 100%;\n background-color: #ffffff;\n "\n >\n \x3c!--[if IE]><div class="ie-browser"><![endif]--\x3e\n <table\n bgcolor="#FFFFFF"\n cellpadding="0"\n cellspacing="0"\n class="nl-container"\n role="presentation"\n style="\n table-layout: fixed;\n vertical-align: top;\n min-width: 320px;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n background-color: #ffffff;\n width: 100%;\n "\n valign="top"\n width="100%"\n >\n <tbody>\n <tr style="vertical-align: top" valign="top">\n <td style="word-break: break-word; vertical-align: top" valign="top">\n \x3c!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td align="center" style="background-color:#FFFFFF"><![endif]--\x3e\n <div style="background-color: transparent">\n <div\n class="block-grid"\n style="\n min-width: 320px;\n max-width: 500px;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n margin: 0 auto;\n background-color: transparent;\n "\n >\n <div\n style="\n border-collapse: collapse;\n display: table;\n width: 100%;\n background-color: transparent;\n "\n >\n \x3c!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color:transparent;"><tr><td align="center"><table cellpadding="0" cellspacing="0" border="0" style="width:500px"><tr class="layout-full-width" style="background-color:transparent"><![endif]--\x3e\n \x3c!--[if (mso)|(IE)]><td align="center" width="500" style="background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;" valign="top"><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;"><![endif]--\x3e\n <div\n class="col num12"\n style="\n min-width: 320px;\n max-width: 500px;\n display: table-cell;\n vertical-align: top;\n width: 500px;\n "\n >\n <div class="col_cont" style="width: 100% !important">\n \x3c!--[if (!mso)&(!IE)]>\x3c!--\x3e\n <div\n style="\n border-top: 0px solid transparent;\n border-left: 0px solid transparent;\n border-bottom: 0px solid transparent;\n border-right: 0px solid transparent;\n padding-top: 5px;\n padding-bottom: 5px;\n padding-right: 0px;\n padding-left: 0px;\n "\n >\n \x3c!--<![endif]--\x3e\n <table\n cellpadding="0"\n cellspacing="0"\n role="presentation"\n style="\n table-layout: fixed;\n vertical-align: top;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n "\n valign="top"\n width="100%"\n >\n <tr style="vertical-align: top" valign="top">\n <td\n align="center"\n style="\n word-break: break-word;\n vertical-align: top;\n padding-bottom: 20px;\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 10px;\n text-align: center;\n width: 100%;\n "\n valign="top"\n width="100%"\n >\n <h1\n style="\n color: #444445;\n direction: ltr;\n font-family: \'Helvetica Neue\', Helvetica,\n Arial, sans-serif;\n font-size: 20px;\n font-weight: normal;\n letter-spacing: normal;\n line-height: 120%;\n text-align: left;\n margin-top: 0;\n margin-bottom: 0;\n "\n >\n <strong>Verify your email address</strong>\n </h1>\n </td>\n </tr>\n </table>\n \x3c!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif"><![endif]--\x3e\n <div\n style="\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.8;\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n "\n >\n <div\n class="txtTinyMce-wrapper"\n style="\n font-size: 14px;\n line-height: 1.8;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 25px;\n "\n >\n <p\n style="\n margin: 0;\n font-size: 14px;\n line-height: 1.8;\n word-break: break-word;\n mso-line-height-alt: 25px;\n margin-top: 0;\n margin-bottom: 0;\n "\n >\n <span style="font-size: 14px"\n >Thank you for signing up! Please click the button below\n to verify your email address.</span\n >\n </p>\n </div>\n </div>\n \x3c!--[if mso]></td></tr></table><![endif]--\x3e\n <div\n align="center"\n class="button-container"\n style="\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n "\n >\n \x3c!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;"><tr><td style="padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px" align="center"><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" target="_blank" href={{validationLink}} style="height:31.5pt;width:390pt;v-text-anchor:middle;" arcsize="12%" stroke="false" fillcolor="#2270ee"><w:anchorlock/><v:textbox inset="0,0,0,0"><center style="color:#ffffff; font-family:Arial, sans-serif; font-size:14px"><!\n [endif]--\x3e<a\n href={{validationLink}}\n\t\t\t\t\t\t\ttarget="_blank"\n style="\n -webkit-text-size-adjust: none;\n text-decoration: none;\n display: block;\n color: #ffffff;\n background-color: #2270ee;\n border-radius: 5px;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n width: 100%;\n width: calc(100% - 2px);\n border-top: 1px solid #2270ee;\n border-right: 1px solid #2270ee;\n border-bottom: 1px solid #2270ee;\n border-left: 1px solid #2270ee;\n padding-top: 5px;\n padding-bottom: 5px;\n font-family: \'Helvetica Neue\', Helvetica, Arial,\n sans-serif;\n text-align: center;\n mso-border-alt: none;\n word-break: keep-all;\n "\n target="_blank"\n ><span\n style="\n padding-left: 20px;\n padding-right: 20px;\n font-size: 14px;\n display: inline-block;\n letter-spacing: undefined;\n "\n ><span\n style="\n font-size: 16px;\n line-height: 2;\n word-break: break-word;\n mso-line-height-alt: 32px;\n "\n ><span\n style="font-size: 14px; line-height: 28px"\n >Verify Email</span\n ></span\n ></span\n ></a\n >\n \x3c!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]--\x3e\n </div>\n \x3c!--<![endif]--\x3e\n </div>\n </div>\n \x3c!--[if (mso)|(IE)]></td></tr></table><![endif]--\x3e\n \x3c!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]--\x3e\n </div>\n </div>\n </div>\n \x3c!--[if (mso)|(IE)]></td></tr></table><![endif]--\x3e\n </td>\n </tr>\n </tbody>\n </table>\n \x3c!--[if (IE)]></div><![endif]--\x3e\n </body>\n</html>';var loginTemplate='<sqm-hero background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80">\n <sqm-portal-login></sqm-portal-login>\n</sqm-hero>\n';var registerTemplate='<sqm-hero\n background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"\n>\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n </sqm-portal-register>\n</sqm-hero>\n';var forgotPasswordTemplate='<sqm-hero background="https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80">\n <sqm-portal-forgot-password\n email-label="Business Email"\n ></sqm-portal-forgot-password>\n</sqm-hero>\n';var resetPasswordTemplate='<sqm-portal-reset-password confirm-password="true"></sqm-portal-reset-password>\n';var emailVerifiedTemplate="<sqm-portal-verify-email></sqm-portal-verify-email>\n";var emailVerificationTemplate='<sqm-portal-protected-route redirect-to="/login"></sqm-portal-protected-route>\n<sqm-portal-email-verification></sqm-portal-email-verification>\n';var LoginReadme='# sqm-portal-login\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| --------------------- | ----------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; forgotPasswordPath: string; registerPath: string; }; content?: { forgotPasswordButton?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; }; }` | `undefined` |\n| `emailLabel` | `email-label` | | `string` | `"Email"` |\n| `forgotPasswordLabel` | `forgot-password-label` | | `string` | `"Forgot Password?"` |\n| `forgotPasswordPath` | `forgot-password-path` | Redirect participants to this page to reset their password | `string` | `"/forgotPassword"` |\n| `nextPage` | `next-page` | Redirect participants to this page after they successfully login. | `string` | `"/"` |\n| `pageLabel` | `page-label` | | `string` | `"Sign in to your account"` |\n| `passwordLabel` | `password-label` | | `string` | `"Password"` |\n| `registerLabel` | `register-label` | | `string` | `"Register"` |\n| `registerPath` | `register-path` | Redirect participants to this page to start registration. | `string` | `"/register"` |\n| `submitLabel` | `submit-label` | | `string` | `"Sign In"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-login --\x3e sqm-form-message\n sqm-stencilbook --\x3e sqm-portal-login\n style sqm-portal-login fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var ReferralIframeReadme='# sqm-referral-iframe\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| -------------- | --------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------- |\n| `demoData` | -- | | `{ states?: { content: { iframeSrc: string; iframeHeight: string; iframeWidth: string; }; }; data?: { shareCode: string; }; }` | `undefined` |\n| `iframeHeight` | `iframe-height` | Define the height of the iframe with any valid CSS height value. Example: 100px, 5rem, or auto. | `string` | `"100%"` |\n| `iframeSrc` | `iframe-src` | URL of iframe to display | `string` | `undefined` |\n| `iframeWidth` | `iframe-width` | Define the width of the iframe with any valid CSS width value. Example: 100px, 5rem, or auto. | `string` | `"100%"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-stencilbook --\x3e sqm-referral-iframe\n style sqm-referral-iframe fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var ForgotPasswordReadme='# sqm-portal-forgot-password\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| -------------- | --------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; loginPath: string; }; content?: { secondaryButton: any; messageSlot: any; emailLabel?: string; submitLabel?: string; }; }` | `undefined` |\n| `emailLabel` | `email-label` | | `string` | `"Email"` |\n| `headerText` | `header-text` | | `string` | `"Enter your email below to receive a password reset link."` |\n| `loginPath` | `login-path` | | `string` | `"/login"` |\n| `loginText` | `login-text` | Sign in link text | `string` | `"Sign In"` |\n| `redirectPath` | `redirect-path` | Redirect participants to this page after they verify their email. | `string` | `"/resetPassword"` |\n| `submitLabel` | `submit-label` | | `string` | `"Request Password Reset"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-forgot-password --\x3e sqm-form-message\n style sqm-portal-forgot-password fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var RegisterReadme='# sqm-portal-register\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ------------------------------ | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- |\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `"Confirm Password"` |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; registrationFormState: RegistrationFormState; disablePasswordValidation?: boolean; loginPath: string; }; refs?: { formRef: any; }; content?: { formData?: VNode; terms?: VNode; passwordField?: VNode; secondaryButton?: VNode; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; requiredFieldErrorMessage: string; invalidEmailErrorMessage: string; }; }` | `undefined` |\n| `disablePasswordValidation` | `disable-password-validation` | | `boolean` | `false` |\n| `emailLabel` | `email-label` | | `string` | `"Email"` |\n| `hideInputs` | `hide-inputs` | Hides the email and password fields. Note: If you hide default inputs, you must add additional input fields. They must have the input name attributes "email" and "password" for this form to succeed. | `boolean` | `false` |\n| `invalidEmailErrorMessage` | `invalid-email-error-message` | The message to be displayed when the email used is invalid or blocked. | `string` | `"Must be a valid email address"` |\n| `loginLabel` | `login-label` | | `string` | `"Sign in"` |\n| `loginPath` | `login-path` | Redirect participants to this page after clicking the login button. | `string` | `"/login"` |\n| `networkErrorMessage` | `network-error-message` | The message to be displayed when a the form submission fails unexpectedly. | `string` | `"Network request failed."` |\n| `nextPage` | `next-page` | Redirect participants to this page from their verification email | `string` | `"/"` |\n| `pageLabel` | `page-label` | | `string` | `"Register"` |\n| `passwordLabel` | `password-label` | | `string` | `"Password"` |\n| `passwordMismatchErrorMessage` | `password-mismatch-error-message` | The message to be displayed when password inputs do not match. | `string` | `"Passwords do not match."` |\n| `redirectPath` | `redirect-path` | The page that participants are redirected to from the verification email. | `string` | `"/verifyEmail"` |\n| `requiredFieldErrorMessage` | `required-field-error-message` | The message to be displayed when a required field is not filled. | `string` | `"Cannot be empty"` |\n| `submitLabel` | `submit-label` | | `string` | `"Register"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n- [sqm-password-field](../sqm-password-field)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-register --\x3e sqm-form-message\n sqm-portal-register --\x3e sqm-password-field\n sqm-stencilbook --\x3e sqm-portal-register\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var EditProfileReadme='# sqm-portal-profile\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ------------------------ | --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |\n| `countrytext` | `countrytext` | | `string` | `"Country"` |\n| `demoData` | -- | | `{ states?: { success: boolean; loading: boolean; submitDisabled: boolean; showCountry: boolean; formState: { country: string; firstName: string; lastName: string; errors: any; error: string; }; user: { id: string; accountId: string; firstName: string; lastName: string; email: string; countryCode: string; }; text: { firstnametext: string; lastnametext: string; emailtext: string; countrytext: string; editProfileHeader: string; editProfileSubHeader: string; submitChangeButtonText: string; }; }; }` | `undefined` |\n| `editProfileHeader` | `edit-profile-header` | | `string` | `"Edit your profile"` |\n| `editProfileSubHeader` | `edit-profile-sub-header` | | `string` | `"Personal Information"` |\n| `emailtext` | `emailtext` | | `string` | `"Email"` |\n| `firstnametext` | `firstnametext` | | `string` | `"First Name"` |\n| `hideCountry` | `hide-country` | | `boolean` | `false` |\n| `lastnametext` | `lastnametext` | | `string` | `"Last Name"` |\n| `submitChangeButtonText` | `submit-change-button-text` | | `string` | `"Submit Changes"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-profile --\x3e sqm-form-message\n style sqm-portal-profile fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var ResetPasswordReadme='# sqm-portal-reset-password\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| --------------------------- | ------------------------------ | -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\n| `confirmPasswordFieldLabel` | `confirm-password-field-label` | | `string` | `"Confirm Password"` |\n| `continueButtonText` | `continue-button-text` | Button text displayed after a successful password reset. | `string` | `"Continue"` |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; reset: boolean; confirmPassword: boolean; oobCodeValidating: boolean; oobCodeValid: boolean; passwordDemoData?: PasswordFieldViewDemoProps; content: { passwordResetHeader: string; resetPasswordHeader: string; continueButtonText: string; resetPasswordButtonText: string; confirmPasswordFieldLabel: string; passwordFieldLabel: string; }; }; }` | `undefined` |\n| `failedPage` | `failed-page` | Redirect participants to this page if password reset fails due to an outdated reset attempt. | `string` | `"/"` |\n| `nextPage` | `next-page` | Redirect participants to this page when they successfully reset their password. | `string` | `"/"` |\n| `passwordFieldLabel` | `password-field-label` | | `string` | `"New Password"` |\n| `passwordResetHeader` | `password-reset-header` | Displayed after a successful password reset. | `string` | `"Password reset"` |\n| `resetPasswordButtonText` | `reset-password-button-text` | | `string` | `"Reset Password"` |\n| `resetPasswordHeader` | `reset-password-header` | | `string` | `"Reset your password"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n- [sqm-password-field](../sqm-password-field)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-reset-password --\x3e sqm-form-message\n sqm-portal-reset-password --\x3e sqm-password-field\n style sqm-portal-reset-password fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var EmailVerificationReadme='# sqm-portal-email-verification\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ---------------------------- | ------------------------------ | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; isVerified?: boolean; loadingVerification?: boolean; countdown?: number; }; content?: { email: string; verifyMessage: string; emailVerificationHeader: string; resendEmailButtonText: string; verificationStatusMessage?: string; verificationLoadingMessage?: string; }; }` | `undefined` |\n| `emailVerificationHeader` | `email-verification-header` | | `string` | `"Verify your email"` |\n| `redirectPath` | `redirect-path` | Redirect participants to this page from their verification email. | `string` | `"/verifyEmail"` |\n| `resendEmailButtonText` | `resend-email-button-text` | | `string` | `"Re-send Email"` |\n| `verificationLoadingMessage` | `verification-loading-message` | | `string` | `"Checking verification status"` |\n| `verificationStatusMessage` | `verification-status-message` | | `string` | `"Checking verification status in {countdown}"` |\n| `verifyMessage` | `verify-message` | | `string` | `"A verification email was sent to {email}. Please verify your email to continue to the portal. Resending an email will invalidate the previous email."` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-email-verification --\x3e sqm-form-message\n style sqm-portal-email-verification fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var EmailVerifiedReadme='# sqm-portal-verify-email\n\n\n\n\x3c!-- Auto Generated Below --\x3e\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ------------ | ------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ----------- |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; verified: boolean; }; data?: { oobCode: string; }; }` | `undefined` |\n| `failedPage` | `failed-page` | Redirect participants to this page if verification fails due to an outdated verification attempt. | `string` | `"/"` |\n| `nextPage` | `next-page` | Redirect participants to this page when they successfully verify their email. | `string` | `"/"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-verify-email --\x3e sqm-form-message\n style sqm-portal-verify-email fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n';var PortalTemplates_stories={title:"Templates / Portal"};function useTemplate$2(e){var t=useState(e),n=t[0],a=t[1];var r=useState(e),s=r[0],i=r[1];return{states:{previewTemplate:s,editedTemplate:n},callbacks:{setEditedTemplate:a,setPreviewTemplate:i}}}var DefaultPortal=createHookStory((function(){var e=useTemplate$2(portalTemplate),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:portalTemplateWithDashboard})}));var MultiProgramPortal=createHookStory((function(){var e=useTemplate$2(multiProgramTemplate),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:multiProgramTemplateWithDashboard})}));var LeadSubmitPortal=createHookStory((function(){var e=useTemplate$2(portalLeadSubmitTemplate),t=e.states,n=e.callbacks;return h(DefaultTemplateView,{states:t,callbacks:n,template:portalLeadSubmitTemplateWithDashboard,leadSubmit:true})}));var Login=createHookStory((function(){var e=useTemplate$2(loginTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:LoginReadme})}));var ForgotPassword=createHookStory((function(){var e=useTemplate$2(forgotPasswordTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:ForgotPasswordReadme})}));var Register=createHookStory((function(){var e=useTemplate$2(registerTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:RegisterReadme})}));var Dashboard$1=createHookStory((function(){var e=useTemplate$2(dashboardTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var LeadSubmitIframe=createHookStory((function(){var e=useTemplate$2(leadSubmitTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:ReferralIframeReadme})}));var Activity$1=createHookStory((function(){var e=useTemplate$2(activityTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var EditProfile$2=createHookStory((function(){var e=useTemplate$2(editProfileTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:EditProfileReadme})}));var ResetPassword=createHookStory((function(){var e=useTemplate$2(resetPasswordTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:ResetPasswordReadme})}));var EmailVerification=createHookStory((function(){var e=useTemplate$2(emailVerificationTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:EmailVerificationReadme})}));var EmailVerified=createHookStory((function(){var e=useTemplate$2(emailVerifiedTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n,readme:EmailVerifiedReadme})}));var Widget$1=createHookStory((function(){return h("sqb-widget",{"widget-type":"p/Vacay-referral/w/referrerWidget",demoData:{data:{html:dashboardTemplate}}})}));var ResetPasswordEmail=createHookStory((function(){var e=useTemplate$2(resetPasswordEmailTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var VerifyEmail=createHookStory((function(){var e=useTemplate$2(verifyEmailTemplate),t=e.states,n=e.callbacks;return h(TemplateView$1,{states:t,callbacks:n})}));var PortalTemplates=Object.freeze({__proto__:null,default:PortalTemplates_stories,DefaultPortal:DefaultPortal,MultiProgramPortal:MultiProgramPortal,LeadSubmitPortal:LeadSubmitPortal,Login:Login,ForgotPassword:ForgotPassword,Register:Register,Dashboard:Dashboard$1,LeadSubmitIframe:LeadSubmitIframe,Activity:Activity$1,EditProfile:EditProfile$2,ResetPassword:ResetPassword,EmailVerification:EmailVerification,EmailVerified:EmailVerified,Widget:Widget$1,ResetPasswordEmail:ResetPasswordEmail,VerifyEmail:VerifyEmail});var ProgramMenu_stories={title:"Components/Program Menu"};var OneProgram=createHookStory((function(){return h("sqm-program-menu",null,h("sl-menu-item",{value:"referral-program"},"Referral Program"))}));var TwoProgram=createHookStory((function(){return h("sqm-program-menu",null,h("sl-menu-item",{value:"referral-program"},"Referral Program"),h("sl-menu-item",{value:"partner-program"},"Partner Program"))}));var FiveProgram=createHookStory((function(){return h("sqm-program-menu",null,h("sl-menu-item",{value:"program1"},"Program 1"),h("sl-menu-item",{value:"program2"},"Program 2"),h("sl-menu-item",{value:"program3"},"Program 3"),h("sl-menu-item",{value:"program4"},"Program 4"),h("sl-menu-item",{value:"program5"},"Program 5"))}));var ProgramMenuWithSwitch=createHookStory((function(){return h("div",null,h("sqb-program-section",{"program-id":"Vacay-referral"},h("sqm-program-menu",null,h("sl-menu-item",{value:"Vacay-referral"},"Vacay-referral"),h("sl-menu-item",{value:"vacay-affiliates"},"vacay-affiliates")),h("sqb-program-switch",null,h("template",{"program-id":"Vacay-referral"},h("sqb-widget",{"widget-type":"p/Vacay-referral/w/referrerWidget",demoData:{data:{html:dashboardTemplate}}})),h("template",{"program-id":"vacay-affiliates"},h("sqb-widget",{"widget-type":"p/vacay-affiliates/w/referrerWidget",demoData:{data:{html:dashboardTemplate}}})))))}));var ProgramMenu=Object.freeze({__proto__:null,default:ProgramMenu_stories,OneProgram:OneProgram,TwoProgram:TwoProgram,FiveProgram:FiveProgram,ProgramMenuWithSwitch:ProgramMenuWithSwitch});var PoweredByImg_stories={title:"Powered By"};var Default$a=function(){return h(PoweredByImg$1,null)};var CustomColor=function(){return h(PoweredByImg$1,{color:"salmon"})};var CustomWidthAndHeight=function(){return h(PoweredByImg$1,{width:300,height:50})};var PoweredByImg=Object.freeze({__proto__:null,default:PoweredByImg_stories,Default:Default$a,CustomColor:CustomColor,CustomWidthAndHeight:CustomWidthAndHeight});var scenario$f='Feature: Portal Footer\n\n Background: A user is viewing the portal\n Given a hosted portal\n And a user is viewing the portal\n And the portal has a footer\n\n Scenario Outline: FAQ and T&C links/text are configurable and open in a new page when clicked\n Given the footer has prop "terms-link" with value "https://example.com/terms"\n And prop "terms-text" with value "Terms and Conditions"\n And prop "faq-link" with value "https://example.com/FAQ"\n And prop "faq-text" with value "Visit FAQ"\n When a user clicks on the "Visit FAQ" link\n Then they will be redirected to "https://example.com/FAQ" in a new page\n When they go back to the portal\n And click on the "Terms and Conditions" link\n Then they will be redirected to "https://example.com/terms" in a new page\n\n Scenario Outline: FAQ/T&C Links are not shown if a link is not provided\n Given the footer does not have <linkProp>\n But it <mayHave> <textProp> with <value>\n Then the <link> will not be shown in the footer\n Examples:\n | linkProp | mayHave | textProp | value | link |\n | terms-link | has | termsText | Terms and Conditions | T&C Link |\n | faq-link | has | faqText | Visit FAQ | FAQ Link |\n | terms-link | doesn\'t have | | | T&C Link |\n | faq-link | doesn\'t have | | | FAQ Link |\n\n Scenario Outline: The support email and text is configurable but has a default\n Given the footer <mayHave> <emailPropWithValue>\n And the footer <mayAlsoHave> <textPropWithValue>\n Then the footer\'s support email text is <renderedEmailText>\n And the email address will be a mailto link with <mailtoEmail>\n When the user clicks on the email address mailto Link\n Then the users preferred email client will open with a draft email to <mailtoEmail>\n Examples:\n | mayHave | emailPropWithValue | mayAlsoHave | textPropWithValue | mailtoEmail | renderedEmailText |\n | has | support@saasquatch.com | has | For support please contact {email} | support@saasquatch.com | For support please contact support@saasquatch.com |\n | doesn\'t have | N/A | doesn\'t have | N/A | support@example.com | For program support, contact support@example.com |\n\n Scenario Outline: Powered by SaaSquatch can be hidden\n Given the footer <mayHaveProp> "hide-powered-by" with <value>\n Then the powered by SaaSquatch image <mayBeShown>\n Examples:\n | mayHaveProp | value | mayBeShown |\n | has prop | true (default) | isn\'t shown |\n | has prop | false | is shown |\n | has prop | test | isn\'t shown |\n | has prop | | isn\'t shown |\n | doesn\'t have prop | | is shown |\n\n Scenario Outline: Support text can be hidden\n Given the footer <mayHaveProp> "hide-support-text" with <value>\n Then the support text <mayBeShown>\n Examples:\n | mayHaveProp | value | mayBeShown |\n | has prop | false (default) | is shown |\n | has prop | true | isn\'t shown |\n | has prop | test | isn\'t shown |\n | has prop | | isn\'t shown |\n | doesn\'t have prop | | is shown |\n\n Scenario: Powered By Saasquatch links out to marketing website\n Given the footer has the powered by SaaSquatch image\n When a user clicks on it\n Then they will be redirected to "https://www.saasquatch.com/?utm_source=app&utm_medium=user-widget&utm_campaign=referral-widget" in a new page';var PortalFooter_stories={title:"Components/Portal Footer",parameters:{scenario:scenario$f}};var defaultProps$9={supportEmail:"support@example.com",supportText:"For program support, contact {email}",hidePoweredBy:false,poweredByLink:"https://saasquatch.com",paddingTop:"large",paddingRight:"large",paddingBottom:"large",paddingLeft:"large"};var DefaultFooter=function(){return h(PortalFooterView,Object.assign({},defaultProps$9))};var FooterWithTerms=function(){return h(PortalFooterView,Object.assign({},defaultProps$9,{termsLink:"https://example.com",termsText:"Terms and Conditions"}))};var FooterWithFAQ=function(){return h(PortalFooterView,Object.assign({},defaultProps$9,{faqLink:"https://example.com",faqText:"FAQ"}))};var FooterWithTermsAndFAQ=function(){return h(PortalFooterView,Object.assign({},defaultProps$9,{termsLink:"https://example.com",termsText:"Terms and Conditions",faqLink:"https://example.com",faqText:"FAQ"}))};var FooterNoPoweredBy=function(){return h(PortalFooterView,Object.assign({},defaultProps$9,{termsLink:"https://example.com",termsText:"Terms and Conditions",faqLink:"https://example.com",faqText:"FAQ",hidePoweredBy:true}))};var FooterNoSupportText=function(){return h(PortalFooterView,Object.assign({},defaultProps$9,{termsLink:"https://example.com",termsText:"Terms and Conditions",faqLink:"https://example.com",faqText:"FAQ",hideSupportText:true}))};var PortalFooter=Object.freeze({__proto__:null,default:PortalFooter_stories,DefaultFooter:DefaultFooter,FooterWithTerms:FooterWithTerms,FooterWithFAQ:FooterWithFAQ,FooterWithTermsAndFAQ:FooterWithTermsAndFAQ,FooterNoPoweredBy:FooterNoPoweredBy,FooterNoSupportText:FooterNoSupportText});var scenario$g='@author:noah\n@owner:noah\n\nFeature: Hero Unit\n\n Background: A portal with a hero unit exists\n Given a hosted portal\n And the portal has hero unit on the login page\n And a user is viewing the login page\n\n Scenario: The hero unit defaults to a single column layout\n Given a hero unit does not have a "columns" prop\n But the following html is wrapped by the hero unit\n """\n <sqm-portal-login></sqm-portal-login>\n <div slot="secondary-column">\n <h1 style="text-align:center">Get Referring!</h1>\n <p style="text-align:center">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim\n ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut\n aliquip ex ea commodo consequat. Duis aute irure dolor in\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\n pariatur.\n </p>\n </div>\n """\n Then only a single column will be displayed\n And within it will be the login component\n\n Scenario Outline: The hero unit supports single or dual column layouts\n Given a hero unit with prop "columns" having <columnValue>\n And it wraps <html>\n Then the hero unit displays <columnValue> columns\n Examples:\n | columnValue | html |\n | 1 | <h1>Column 1!</h1> |\n | 2 | <h1>Column 1!</h1><div slot="secondary-column"><h1 style="text-align:center">Column 2!</h1></div> |\n\n Scenario: HTML to be displayed in the second column comes from the "secondary-column" slot\n Given a hero unit with "columns" "2"\n And the following html\n """\n <h1>Column 1!</h1>\n <div>\n <h1 style="text-align:center">Column 2!</h1>\n </div>\n """\n When the hero unit is rendered\n Then only one column is displayed with content\n And column 1 will contain the "Column 1!" text\n And column 1 will contain the "Column 2!" text\n When the div for column two is updated to have \'slot="secondary-column"\'\n Then the two columns are displayed with content\n And column 1 will contain the "Column 1!" text\n And column 2 will contain the "Column 2!" text\n\n Scenario Outline: A background for the hero unit can be set as an image or colour\n Given a hero unit with <backgroundPropValue>\n Then the background will be <background>\n Examples:\n | background | background |\n | https://images.unsplash.com/photo-1599676821464-3555954838dc | image of misty mountains |\n | LightSlateGrey | light slate grey |\n | #00FF00 | green |\n | rgb(128,0,128) | purple |\n\n Scenario Outline: Wrap Direction can be configured for mobile experiences\n Given a hero unit with the following HTML\n """\n <h1>Column 1!</h1>\n <div slot="secondary-column">\n <h1 style="text-align:center">Column 2!</h1>\n </div>\n """\n And prop "wrap-direction" has <value>\n When the window width is less than 600px\n Then the two columns will stack\n And <column> will be on top\n Examples:\n | value | column |\n | wrap | 1 |\n | wrap-reverse | 2 |\n | <null> | 1 |\n\n Scenario Outline: Minimum height can be customized\n Given the option "Mininum Height (in px)" is <value>\n Then the hero image minimum height is <effectiveValue>\n And the change is reflected in mobile view\n Examples:\n | value | effectiveValue |\n | unset (default value) | 200px |\n | 200px | 500px |';var Hero_stories={title:"Components/Hero Layout",parameters:{scenario:scenario$g}};var LoginOneColumn=function(){var e={states:{columns:1,wrapDirection:"wrap",paddingSize:"large",minHeight:0},content:{primaryColumn:[h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("sqm-portal-login",null)]}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var LoginOneColumnWithMinHeight=function(){return h("sqm-hero",{background:"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png",columns:1,"padding-size":"medium","wrap-direction":"wrap","secondary-background":"#FFFFFF"},h("sqm-portal-login",null))};var LoginOneColumnWithColor=function(){var e={states:{columns:1,wrapDirection:"wrap",paddingSize:"large",minHeight:0,background:"LightSlateGrey"},content:{primaryColumn:h("sqm-portal-login",null)}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var LoginOneColumnWithImage=function(){var e={states:{columns:1,wrapDirection:"wrap",paddingSize:"large",minHeight:0,background:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"},content:{primaryColumn:h("sqm-portal-login",null)}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginLargePadding=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"large",minHeight:0,background:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",secondaryBackground:"LightSlateGrey"},content:{primaryColumn:h("sqm-portal-login",null),secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginMediumPadding=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"medium",minHeight:0,background:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",secondaryBackground:"LightSlateGrey"},content:{primaryColumn:h("sqm-portal-login",null),secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginSmallPadding=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"small",minHeight:0,background:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",secondaryBackground:"LightSlateGrey"},content:{primaryColumn:h("sqm-portal-login",null),secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginNoPadding=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"none",minHeight:0,background:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",secondaryBackground:"LightSlateGrey"},content:{primaryColumn:h("sqm-portal-login",null),secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginReverseWrap=function(){var e={states:{columns:2,wrapDirection:"wrap-reverse",background:"LightSlateGrey",paddingSize:"large",minHeight:0,secondaryBackground:"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80"},content:{primaryColumn:h("sqm-portal-change-password",null),secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var TwoColumnLoginWithImgElement=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"large",minHeight:0},content:{primaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("sqm-portal-login",null)),secondaryColumn:h("div",null,h("img",{src:"https://images.unsplash.com/photo-1487528278747-ba99ed528ebc?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2070&q=80"}),h("p",null,"Pellentesque mauris urna, lacinia non turpis sed, pulvinar congue ligula. Sed mattis condimentum eros nec vulputate. Cras consectetur eget libero at viverra. Aliquam suscipit feugiat ante sit amet sagittis. Fusce pulvinar interdum odio ut dapibus. Nulla aliquet ultricies augue nec dignissim. Morbi vulputate hendrerit sem."))}};return h("div",{style:{height:"800px"}},h(HeroView,Object.assign({},e)))};var MinHeight=function(){var e={states:{columns:2,wrapDirection:"wrap",paddingSize:"large",minHeight:600,background:"https://images.unsplash.com/photo-1487528278747-ba99ed528ebc?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2070&q=80"},content:{secondaryColumn:h("div",null,h("h1",{style:{textAlign:"center"}},"Get Referring!"),h("sqm-portal-login",null))}};return h(HeroView,Object.assign({},e))};var Hero=Object.freeze({__proto__:null,default:Hero_stories,LoginOneColumn:LoginOneColumn,LoginOneColumnWithMinHeight:LoginOneColumnWithMinHeight,LoginOneColumnWithColor:LoginOneColumnWithColor,LoginOneColumnWithImage:LoginOneColumnWithImage,TwoColumnLoginLargePadding:TwoColumnLoginLargePadding,TwoColumnLoginMediumPadding:TwoColumnLoginMediumPadding,TwoColumnLoginSmallPadding:TwoColumnLoginSmallPadding,TwoColumnLoginNoPadding:TwoColumnLoginNoPadding,TwoColumnLoginReverseWrap:TwoColumnLoginReverseWrap,TwoColumnLoginWithImgElement:TwoColumnLoginWithImgElement,MinHeight:MinHeight});var scenario$h='@owner:sam\n@author:sam\n\nFeature: Referral Iframe\n\n Used to provide an external form for submitting referral leads using the current user\'s referral code\n\n Background: A user is logged in\n Given there is a logged in user\n\n @motivating\n Scenario: Referral code is passed to the iframe as a query parameter\n Given the "iframe-src" is "https://example.com"\n And the user has navigated to "/refer"\n And the user\'s referral code is "BOBBYREFER"\n When the iframe content is loaded\n Then the iframe url will be "https://example.com?rsCode=BOBBYREFER"\n\n @ui\n Scenario Outline: The height and width of the iFrame can be controlled via props\n Given the "iframe-src" is "https://example.com"\n And the iframe content is 1000x1000\n And the "iframe-height" is set to <heightValue>\n And the "iframe-width" is set to <widthValue>\n Then the content of the iframe will be displayed with scrollbars\n And the dimension of the iFrame displayed will be 500x500\n When the "iframe-height" is set to <heightValue>\n And the "iframe-width" is set to <widthValue>\n Then the full content of the iframe will be displayed on the page\n And the dimension of the iFrame displayed will be 1000x1000\n Examples:\n | heightValue | widthValue |\n | 500px | 500px |\n | 50% | 50% |\n\n @minutia\n Scenario Outline: The iFrame will fail fast if a iFrame source isn\'t provided\n Given "iframe-src" <mayBeAnAttribute>\n And it <mayHaveValue>\n When a user views the referral iFrame component\n Then an alert with an error message is displayed in place of the iFrame\n And it has a details section\n When "More details" is clicked\n Then the following information will be displayed\n | component being used |\n | missing attribute(s) |\n\n Examples:\n | mayBeAnAttribute | mayHaveValue |\n | is not an attribute | N/A |\n | is an attribute | "" |\n | is an attribute | |';var ReferralIframe_stories={title:"Components/Referral Iframe",parameters:{scenario:scenario$h}};var props={data:{shareCode:"BOBBYREFER"},states:{content:{iframeSrc:"https://example.com",iframeHeight:"100%",iframeWidth:"100%"}}};var ReferralIframe=function(){return h("div",{style:{width:"1000px",height:"1000px"}},h(ReferralIframeView,Object.assign({},props)))};var ReferralIframeError=function(){return h("div",{style:{width:"1000px",height:"1000px"}},h("sqm-referral-iframe",null))};var ReferralIframe$1=Object.freeze({__proto__:null,default:ReferralIframe_stories,ReferralIframe:ReferralIframe,ReferralIframeError:ReferralIframeError});var scenario$i='@owner:sam\n@author:sam\n\nFeature: Name Fields\n\n Fields to be used to fill the first and last name of a user during registration\n\n Background:\n Given the current page is "/register"\n\n @motivating\n Scenario: Both first name and last name are required\n Given the email field has valid input\n And the password field has valid input\n And first name field is empty\n And last name field is empty\n When register is clicked\n Then the name fields will be highlighted in red\n And the error messages will say "Cannot be empty"\n\n @motivating\n Scenario: First and last name are upserted with the SaaSquatch user\n Given all fields have been filled with data\n | firstName | lastName | email | password |\n | Bob | Testerson | bob@example.com | SecurePassword1 |\n When register is clicked\n Then the email verification page will be loaded\n And the user will be upserted\n And the SaaSquatch user will contain data\n | firstName | lastName | email |\n | Bob | Testerson | bob@example.com |\n\n';var NameFields_stories={title:"Components/Name Fields",parameters:{scenario:scenario$i}};var props$1={states:{registrationFormState:{validationErrors:undefined},content:{firstNameLabel:"First Name",lastNameLabel:"Last Name"}}};var errorProps$8={states:{registrationFormState:{validationErrors:{firstName:"Cannot be empty",lastName:"Cannot be empty"}},content:{firstNameLabel:"First Name",lastNameLabel:"Last Name"}}};var NameFields=function(){return h(NameFieldsView,Object.assign({},props$1))};var NameFieldsWithErrors=function(){return h(NameFieldsView,Object.assign({},errorProps$8))};var NameFields$1=Object.freeze({__proto__:null,default:NameFields_stories,NameFields:NameFields,NameFieldsWithErrors:NameFieldsWithErrors});var scenario$j='@owner:sam\n@author:sam\nFeature: Checkbox Field\n\n Field to be used to be used as a checkbox during registration. A motivating use case is to use this component as a terms\n and conditions field, to sastisfy legal requirements that a customer might have for their end users.\n\n Background: A user is on the portal registration page\n Given a user is viewing the "/register"\n And "/register" contains the registration form\n And the registration form has the following fields\n | fields |\n | first name |\n | last name |\n | email |\n | password |\n | checkbox |\n\n @motivating\n Scenario: Checkbox is required by default\n Given the user is filling out the registration form\n And the name fields have valid input\n And the email field has valid input\n And the password field has valid input\n And the checkbox is not checked\n When they try to register\n Then the checkbox is highlighted in red\n And the error message says "Must be checked"\n\n @landmine\n Scenario: Checkboxes with the same "checkbox-name" are not submitted in the form data\n Given the register form has the following html\n """\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n <sqm-checkbox-field\n slot="formData"\n checkbox-label="I am not a robot"\n error-message="Cannot be a robot"\n checkbox-name="isHuman"\n ></sqm-checkbox-field>\n <div slot="terms">\n <sqm-checkbox-field checkbox-name="isHuman"></sqm-checkbox-field>\n </div>\n </sqm-portal-register>\n """\n And the checkboxes are checked\n When the user tries to register\n Then the form is submitted\n But no field with key "isHuman" is included in the form data\n\n @motivating\n Scenario: Multiple checkboxes need different "checkbox-name" values\n Given the register form has the following html\n """\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n <sqm-checkbox-field\n slot="formData"\n checkbox-label="I am not a robot"\n error-message="Cannot be a robot"\n checkbox-name="isHuman"\n ></sqm-checkbox-field>\n <div slot="terms">\n <sqm-checkbox-field checkbox-name="myCheckbox"></sqm-checkbox-field>\n </div>\n </sqm-portal-register>\n """\n And the checkboxes are not checked\n When the user tries to register\n Then both checkboxes are bordered in red\n And the checkboxes have different error messages\n When the user checks the boxes\n And tries to register\n Then the form is submitted\n And the following fields are included in the form data\n | feilds |\n | isHuman |\n | myCheckbox |\n\n @motivating\n Scenario: Checkboxes can be optional\n Given the register form has the following html\n """\n <sqm-portal-register>\n <sqm-name-fields slot="formData"></sqm-name-fields>\n <sqm-checkbox-field\n slot="formData"\n checkbox-label="I am not a robot"\n checkbox-optional="true"\n checkbox-name="isHuman"\n />\n </sqm-portal-register>\n """\n And the checkbox is not checked\n When the user tries to register\n Then there is no error for the checkbox\n\n @minutia\n Scenario Outline: Validation error message is configurable\n The error message string is evaluated as an ICU string, but currently is provided no context\n Given the checkbox is required\n And the checkbox has prop "error-message" with <propValue>\n When the user tries to register\n But they havent checked the checkbox\n Then they see <errorMessage> below\n Examples:\n | propValue | errorMessage |\n | | Must be checked |\n | My Custom Message | My Custom Message |\n\n @motivating\n Scenario Outline: Checkbox text and link are configurable\n Given the checkbox has the following prop values\n | prop | value |\n | checkbox-label | <labelText> |\n | checkbox-label-link | <labelLink> |\n | checkbox-label-link-text | <labelLinkText> |\n When the user views the checkbox\n Then they see <text>\n And when they click <labelLinkText> they are redirected to <labelLink>\n #First example below is the defaults set by the controller\n Examples:\n | labelText | labelLinkText | labelLink | text |\n | By signing up you agree to the {labelLink} | Terms and Conditions | https://example.com | By signing up you agree to the Terms and Conditions |\n | Read our {labelLink} before registration | Terms of Service | https://example.com/terms | Read our Terms of Service before registration |\n | By registering you agree to our terms and conditions | N/A | N/A | By registering you agree to our terms and conditions |\n\n @motivating\n Scenario: The form field name attribute is configurable\n Given the checkbox has prop "checkbox-name" with value "myCheckBox"\n When the user checks the box\n And they register\n Then the boolean value of the checkbox is submitted under "myCheckBox" field\n\n @minutia\n Scenario Outline: The checkbox field component fails fast if a checkbox name isn\'t provided\n Given the checkbox <mayHave> prop "checkbox-name"\n And it <mayHavePropValue>\n When a user views the checkbox\n Then an alert with an error message is displayed in place of the checkbox\n And it has a details section\n When "More details" is clicked\n Then the following information is displayed\n | information |\n | component being used |\n | missing attribute(s) |\n Examples:\n | mayBeAnAttribute | mayHavePropValue |\n | doesn\'t have | N/A |\n | has | "" |\n | has | |';var CheckboxField_stories={title:"Components/Checkbox Field",parameters:{scenario:scenario$j}};var defaultProps$a={states:{registrationFormState:{validationErrors:{}},checked:false},content:{checkboxName:"agree",checkboxLabel:"By signing up you agree to the {labelLink}",checkboxLabelLink:"https://example.com",checkboxLabelLinkText:"Terms and Conditions",errorMessage:"Must be checked"},callbacks:{setChecked:function(){}}};var defaultRegisterProps={states:{registrationFormState:{},error:"",loading:false,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address"}};var Default$b=createHookStory((function(){return h(CheckboxFieldView,Object.assign({},defaultProps$a))}));var DefaultChecked=createHookStory((function(){return h(CheckboxFieldView,Object.assign({},defaultProps$a,{states:__assign(__assign({},defaultProps$a.states),{checked:true})}))}));var CustomLabel=createHookStory((function(){return h(CheckboxFieldView,Object.assign({},defaultProps$a,{content:__assign(__assign({},defaultProps$a.content),{checkboxLabel:"I Agree"})}))}));var Error$4=createHookStory((function(){return h(CheckboxFieldView,Object.assign({},defaultProps$a,{states:__assign(__assign({},defaultProps$a.states),{registrationFormState:{validationErrors:{agree:"Must be checked"}}})}))}));var CustomError=createHookStory((function(){return h(CheckboxFieldView,Object.assign({},defaultProps$a,{states:__assign(__assign({},defaultProps$a.states),{registrationFormState:{validationErrors:{agree:"Must be checked"}}}),content:__assign(__assign({},defaultProps$a.content),{errorMessage:"This checkbox must be checked to continue"})}))}));var TermsAndConditions$1=createHookStory((function(){return h(PortalRegisterView,Object.assign({},defaultRegisterProps,{content:__assign(__assign({},defaultRegisterProps.content),{terms:h("p",null,h("sqm-checkbox-field",null))})}))}));var TermsAndConditionsCustomLabel=createHookStory((function(){return h(PortalRegisterView,Object.assign({},defaultRegisterProps,{content:__assign(__assign({},defaultRegisterProps.content),{terms:h("p",null,"By signing up you agree to the"," ",h("a",{href:"https://example.com",target:"_blank"},"Terms and Conditions"),h("sqm-checkbox-field",{"checkbox-label":"I agree"}))})}))}));var TermsAndConditionsLongCustomLabel=createHookStory((function(){return h(PortalRegisterView,Object.assign({},defaultRegisterProps,{content:__assign(__assign({},defaultRegisterProps.content),{terms:h("sqm-checkbox-field",{"checkbox-label":"Participants must be at least 18 years of age and a legal resident of the U.S. or Canada. By signing up to participate in the rewards program, you agree to the {labelLink}.","checkbox-label-link":"https://www.example.com","checkbox-label-link-text":"terms","checkbox-name":"termsAndConditions"})})}))}));var CheckboxField=Object.freeze({__proto__:null,default:CheckboxField_stories,Default:Default$b,DefaultChecked:DefaultChecked,CustomLabel:CustomLabel,Error:Error$4,CustomError:CustomError,TermsAndConditions:TermsAndConditions$1,TermsAndConditionsCustomLabel:TermsAndConditionsCustomLabel,TermsAndConditionsLongCustomLabel:TermsAndConditionsLongCustomLabel});var UseCheckboxField_stories={title:"Hooks / useCheckboxField",parameters:{scenario:scenario$j}};function setupGraphQL$9(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}var TermsAndConditions$2=createHookStory((function(){setupGraphQL$9();return h("sqm-portal-register",null,h("div",{slot:"terms"},h("sqm-checkbox-field",{"checkbox-name":"terms"})))}));var TermsAndConditionsWithLabel=createHookStory((function(){setupGraphQL$9();return h("sqm-portal-register",null,h("div",{slot:"terms"},h("sqm-checkbox-field",{"checkbox-label":"I agree","checkbox-name":"terms"})))}));var MultipleCheckboxes=createHookStory((function(){setupGraphQL$9();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-checkbox-field",{slot:"formData","checkbox-label":"I am not a robot","error-message":"Cannot be a robot","checkbox-name":"isHuman"}),h("div",{slot:"terms"},h("sqm-checkbox-field",{"checkbox-name":"otherCheckbox"})))}));var OptionalCheckboxes=createHookStory((function(){setupGraphQL$9();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-checkbox-field",{slot:"formData","checkbox-label":"I am not a robot","checkbox-optional":"true","checkbox-name":"isHuman"}),h("div",{slot:"terms"},h("sqm-checkbox-field",{"checkbox-name":"required"})))}));var MissingName=createHookStory((function(){setupGraphQL$9();return h("sqm-portal-register",null,h("div",{slot:"terms"},h("sqm-checkbox-field",null)))}));var UseCheckboxField=Object.freeze({__proto__:null,default:UseCheckboxField_stories,TermsAndConditions:TermsAndConditions$2,TermsAndConditionsWithLabel:TermsAndConditionsWithLabel,MultipleCheckboxes:MultipleCheckboxes,OptionalCheckboxes:OptionalCheckboxes,MissingName:MissingName});var DropdownField_stories={title:"Components/Dropdown Field"};var defaultProps$b={states:{registrationFormState:{}},content:{dropdownName:"options",dropdownLabel:"Select an option",errorMessage:"Must select an option",selectOptions:[h("sl-menu-item",{value:"option-1"},"Option 1"),h("sl-menu-item",{value:"option-2"},"Option 2"),h("sl-menu-item",{value:"option-3"},"Option 3")]}};var Default$c=createHookStory((function(){return h(DropdownFieldView,Object.assign({},defaultProps$b))}));var CustomLabel$1=createHookStory((function(){return h(DropdownFieldView,Object.assign({},defaultProps$b,{content:__assign(__assign({},defaultProps$b.content),{dropdownLabel:"Pick your favorite"})}))}));var Error$5=createHookStory((function(){return h(DropdownFieldView,Object.assign({},defaultProps$b,{states:__assign(__assign({},defaultProps$b.states),{registrationFormState:{validationErrors:{options:"Must select an option"}}})}))}));var CustomError$1=createHookStory((function(){return h(DropdownFieldView,Object.assign({},defaultProps$b,{content:__assign(__assign({},defaultProps$b.content),{errorMessage:"An option must be selected to continue"}),states:__assign(__assign({},defaultProps$b.states),{registrationFormState:{validationErrors:{options:"Must select an option"}}})}))}));var DropdownField=Object.freeze({__proto__:null,default:DropdownField_stories,Default:Default$c,CustomLabel:CustomLabel$1,Error:Error$5,CustomError:CustomError$1});var UseDropdownField_stories={title:"Hooks / useDropdownField"};function setupGraphQL$a(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}var SelectOptions=createHookStory((function(){setupGraphQL$a();return h("sqm-portal-register",null,h("sqm-dropdown-field",{slot:"formData","dropdown-label":"Select an option","dropdown-name":"options"},h("sl-menu-item",{value:"option-1"},"Option 1"),h("sl-menu-item",{value:"option-2"},"Option 2"),h("sl-menu-item",{value:"option-3"},"Option 3")))}));var Countries=createHookStory((function(){setupGraphQL$a();return h("sqm-portal-register",null,h("sqm-dropdown-field",{slot:"formData","dropdown-label":"Country","dropdown-name":"countryCode"},h("sl-menu-item",{value:"CA"},"Canada"),h("sl-menu-item",{value:"US"},"United States"),h("sl-menu-item",{value:"GB"},"United Kingdom")))}));var MissingName$1=createHookStory((function(){setupGraphQL$a();return h("sqm-portal-register",null,h("sqm-dropdown-field",{slot:"formData","dropdown-label":"Country"},h("sl-menu-item",{value:"CA"},"Canada"),h("sl-menu-item",{value:"US"},"United States"),h("sl-menu-item",{value:"GB"},"United Kingdom")))}));var UseDropdownField=Object.freeze({__proto__:null,default:UseDropdownField_stories,SelectOptions:SelectOptions,Countries:Countries,MissingName:MissingName$1});var scenario$k='@author:derek\n@owner:derek\nFeature: Form Input Field\n\n This component is used as a custom registration field during registration. The field can be text,\n a date or phone number. A motivating use case is to ask for a users company name, this value would then be mapped\n through the Managed Identity Service and upserted on the user after registration.\n\n Background: A user exists and is viewing the hosted portal registration\n Given a user is viewing "/register"\n And "/register" contains the registration form\n And the registration form has a custom input field\n\n @motivating\n Scenario Outline: Input fields are required by default but can be optional\n Given the input has prop "field-optional" with <value>\n And the input is empty\n When the user tries to register\n Then the input <mayBe> highlighted in red\n And an error message <mayAppear> in red below\n And form submission <mayBe> blocked\n Examples:\n | value | mayBe | mayAppear |\n | false | is | appears |\n | | is | appears |\n | true | isn\'t | doesn\'t appear |\n\n @motivating\n Scenario: Input field labels are configurable\n Given the input has prop "field-label" with value "My Custom Input"\n When the user views the registration form\n Then they see the input field\n And it has label "My Custom Input" above the input\n\n @minutia\n Scenario Outline: The validation error message is configurable\n The error message string is evaluated as an ICU string, but currently is provided no context\n Given the input is required\n And it has prop "error-message" with <value>\n When the user tries to register\n But they haven\'t filled in the input\n Then they see <errorMessage> below\n Examples:\n | value | errorMessage |\n | | Cannot be empty |\n | My Custom Message | My Custom Message |\n\n @motivating\n Scenario: Form data attribute name is configurable\n Given the input has prop "field-name" with value "myCustomField"\n When the user types "testing testing" into the input\n And they register\n Then "testing testing" is submitted under "myCustomField" in the form data\n\n @motivating\n Scenario Outline: The input field is a text input by default\n Given the input <mayHave> prop "field-type" with <value>\n When the user views the input field\n Then it is a text input\n Examples:\n | mayHave | value |\n | has | text |\n | doesn\'t have | |\n\n @motivating\n Scenario: Date type inputs are supported\n Given the input has prop "field-type" "date"\n When the user views the input field\n Then they see "mm/dd/yyyy" as a placeholder\n And they see a calendar icon on the right\n When they start typing a date\n Then it maintains the "mm/dd/yyyy" format\n When they click the calendar icon\n Then a dropdown appears\n And they see a calendar\n When they select a date\n Then it is applied to the input\n\n @landmine\n Scenario: The clear text button in the date picker does not clear the date\n Due to an incompatibility between our shoelace version and the browser, the clear funtionality is not supported currently\n Given the input has prop "field-type" "date"\n And the user has entered a date\n When they click the calendar icon\n And click the \'clear\' text button\n Then their selected date is not cleared\n\n @motivating\n Scenario: Phone number type inputs are supported\n Given the input has prop "field-type" with value "tel"\n When the user starts typing a phone number in the input\n Then it is formatted into the following form "(XXX) XXX-XXXX"\n When they pre-fix their phone number with a "1"\n Then it is formatted into the following form "1 (XXX) XXX-XXXX"\n\n @landmine\n Scenario: Telephone formatting is removed after 10 numbers\n Given a user using a phone number input field\n And they entered their 10 character phone number\n And it was not prefixed with a 1\n When they add another character\n Then the formatting is removed\n\n @landmine\n Scenario Outline: Input values are always recorded as strings in the form data\n Given the input has prop "field-type" with <value>\n And it has a "field-name"\n When the user inputs <formInput>\n And they register\n Then <formData> is recorded in the form data as a string\n Examples:\n | value | formInput | formData |\n | text | Hello there | Hello there |\n | date | 05/07/2021 | 2021-05-07 |\n | tel | (250) 234-9877 | (250) 234-9877 |\n\n @minutia\n Scenario Outline: The input field component fails fast if a field name isn\'t provided\n Given the input <mayHave> prop "field-name"\n And it <mayHavePropValue>\n When a user views the input\n Then an alert with an error message is displayed in place of the input\n And it has a details section\n When "More details" is clicked\n Then the following information is displayed\n | information |\n | component being used |\n | missing attribute(s) |\n Examples:\n | mayBeAnAttribute | mayHavePropValue |\n | doesn\'t have | N/A |\n | has | "" |\n | has | |';var InputField_stories={title:"Components/Input Field",parameters:{scenario:scenario$k}};var defaultProps$c={states:{registrationFormState:{validationErrors:{}}},content:{fieldName:"field",fieldLabel:"My Custom Input",fieldType:"text",fieldOptional:true,errorMessage:"Cannot be empty"}};var defaultRegisterProps$1={states:{registrationFormState:{},error:"",loading:false,confirmPassword:true,hideInputs:false,loginPath:"/login"},callbacks:{submit:function(){return console.log("Submit!")},inputFunction:function(){}},refs:{formRef:{}},content:{pageLabel:"Register",confirmPasswordLabel:"Confirm Password",requiredFieldErrorMessage:"Cannot be empty",invalidEmailErrorMessage:"Must be a valid email address"}};var Default$d=function(){return h(InputFieldView,Object.assign({},defaultProps$c))};var CustomLabel$2=function(){return h(InputFieldView,Object.assign({},defaultProps$c,{content:__assign(__assign({},defaultProps$c.content),{fieldLabel:"My Label"})}))};var Error$6=function(){return h(InputFieldView,Object.assign({},defaultProps$c,{states:__assign(__assign({},defaultProps$c.states),{registrationFormState:{validationErrors:{field:"Cannot be empty"}}})}))};var CustomError$2=function(){return h(InputFieldView,Object.assign({},defaultProps$c,{content:__assign(__assign({},defaultProps$c.content),{errorMessage:"A value must be entered to continue"}),states:__assign(__assign({},defaultProps$c.states),{registrationFormState:{validationErrors:{field:"Cannot be empty"}}})}))};var DateType=function(){return h(InputFieldView,Object.assign({},defaultProps$c,{content:__assign(__assign({},defaultProps$c.content),{fieldLabel:"Date",fieldType:"date"})}))};var TelType=function(){return h(InputFieldView,Object.assign({},defaultProps$c,{content:__assign(__assign({},defaultProps$c.content),{fieldLabel:"Phone Number",fieldType:"tel"})}))};var RegistrationField=function(){return h(PortalRegisterView,Object.assign({},defaultRegisterProps$1,{content:__assign(__assign({},defaultRegisterProps$1.content),{formData:h(InputFieldView,Object.assign({},defaultProps$c))})}))};var RegistrationFieldCustomLabel=function(){return h(PortalRegisterView,Object.assign({},defaultRegisterProps$1,{content:__assign(__assign({},defaultRegisterProps$1.content),{formData:h(InputFieldView,Object.assign({},defaultProps$c,{content:__assign(__assign({},defaultProps$c.content),{fieldLabel:"Data"})}))})}))};var InputField=Object.freeze({__proto__:null,default:InputField_stories,Default:Default$d,CustomLabel:CustomLabel$2,Error:Error$6,CustomError:CustomError$2,DateType:DateType,TelType:TelType,RegistrationField:RegistrationField,RegistrationFieldCustomLabel:RegistrationFieldCustomLabel});var UseInputField_stories={title:"Hooks / useInputField",parameters:{scenario:scenario$k}};function setupGraphQL$b(){var e="testestest";var t=e;var n="sam-partner-test-2";window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com",programId:n};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}var FormData=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("div",{slot:"formData"},h("sqm-input-field",{"field-name":"myData"})))}));var FormDataWithLabel=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("div",{slot:"formData"},h("sqm-input-field",{"field-label":"Custom Label","field-name":"myData"})))}));var MultipleInputs=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-input-field",{slot:"formData","field-label":"Field One","field-name":"fieldOne"}),h("sqm-input-field",{slot:"formData","field-label":"Field Two","field-name":"fieldTwo"}))}));var OptionalInputs=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-input-field",{slot:"formData","field-label":"Optional Field","field-optional":"true","field-name":"optionalField"}))}));var DateType$1=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-input-field",{slot:"formData","field-label":"Date","field-name":"date","field-type":"date"}))}));var TelType$1=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-input-field",{slot:"formData","field-label":"Phone Number","field-name":"tel","field-type":"tel"}))}));var MissingName$2=createHookStory((function(){setupGraphQL$b();return h("sqm-portal-register",null,h("sqm-name-fields",{slot:"formData"}),h("sqm-input-field",{slot:"formData","field-label":"Phone Number","field-type":"tel"}))}));var UseInputField=Object.freeze({__proto__:null,default:UseInputField_stories,FormData:FormData,FormDataWithLabel:FormDataWithLabel,MultipleInputs:MultipleInputs,OptionalInputs:OptionalInputs,DateType:DateType$1,TelType:TelType$1,MissingName:MissingName$2});var scenario$l='@author:derek\n@owner:derek\nFeature: Reward Exchange List\n\n The Reward Exchange List gives end users the power to exchange their rewards for other rewards.\n It populates a list from the reward exchange rules set up on a given tenant.\n\n Background:\n Given a tenant with reward exchange rules\n\n @motivating\n @ui\n Scenario: The empty state is shown if there are no visible exchanges\n Given a user with no visible exchanges\n When they view the reward exchange\n Then no exchange options are displayed\n And they see an image of a present\n And "Redeem Rewards" in bold\n And "Use your points to redeem rewards once they become available" below the bolded text\n And the pagination buttons are disabled\n\n @minutia\n @ui\n Scenario: A custom empty state can be provided\n Given a user with no visible exchanges\n And a custom empty state has been supplied in the "empty" slot\n When they view the reward exchange\n Then they see the custom empty state\n\n @motivating\n @ui\n Scenario: A Loading Skeleton is displayed when the reward exchange rules are loading\n Given a user\n When they load the reward exchange list\n Then they see a loading Skeleton\n And it has 8 skeleton cards\n When the reward exchange rules have loaded\n Then the skeleton is replaced with reward exchange options\n\n @motivating\n Scenario: An error banner appears when the reward exchange list fails to load\n Given a user trying to view the reward exchange list\n But it fails to load\n Then an error banner is displayed\n And it displays "Unable to load reward exchange list. Please try again"\n\n @motivating\n @ui\n Scenario: The exchange progress bar progresses through the exchange process\n Given a user who is eligible for the tenants reward exchange rules\n When they view the reward exchange list\n Then the process bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with green outline, white fill and number 1 in green |\n | Step 2 `Select` title in grey |\n | Step 2 circle with grey fill and number 2 in white |\n | Step 3 `Confirm` title in grey |\n | Step 3 circle with grey fill and number 3 in white |\n | lines between all steps are greyed out |\n When they continue to the selection page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with green outline, white fill and number 2 in green |\n | Step 3 `Confirm` title in grey |\n | Step 3 circle with grey fill and number 3 in white |\n | Green line between step 1 and 2 |\n | Grey line between step 2 and 3 |\n When they continue to the confirmation page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with white checkmark and green fill |\n | Step 3 `Confirm` title in black |\n | Step 3 circle with green outline, white fill and number 3 in green |\n | Green line between all steps |\n When they continue to the redemption page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with white checkmark and green fill |\n | Step 3 `Confirm` title in black |\n | Step 3 circle with white checkmark and green fill |\n | Green line between all steps |\n\n @motivating\n Scenario: Users must choose a reward exchange option to continue to the selection page\n Given a user who is eligible for the tenants reward exchange rules\n When they view the reward exchange list\n Then the \'Continue\' button is disabled\n When they select a reward exchange card\n Then the card is outlined in brand colour with a brand colour cirlcular check box icon in the top right\n And the continue button is no longer disabled\n When they click "Continue"\n Then they are brought to the selection page\n\n @motivating\n @ui\n Scenario: Reward exchange rule names and images are used in the reward exchange cards\n Given a tenant reward exchange rule\n And it has name "My Visa Exchange Rule"\n And it has an image\n When a user views the reward exchange list\n Then they see a exchange card with title "My Visa Exchange Rule"\n And the exchange image on the left hand side of the card\n\n @motivating\n Scenario Outline: Reward exchange source values are displayed on reward exchange cards\n Given a <type> reward exchange rule\n When a user views the reward exchange list\n Then they see <text> under the name on the exchange option cards\n And the pretty values are localized to a user locale\n Examples:\n | type | text |\n | FIXED_GLOBAL_REWARD | the exchange source pretty value |\n | STEPPED_FIXED_GLOBAL_REWARD | the exchange source min pretty value to the source max pretty value |\n | VARIABLE_GLOBAL_REWARD | the exchange source min pretty value to the source max pretty value |\n | VARIABLE_CREDIT_REWARD | the exchange source min pretty value to the source max pretty value |\n\n @motivating\n Scenario Outline: Reward exchange cards can display customized error messages\n Given a reward exchange rule\n And it has <availabilityPredicate>\n And the reward exchange list has prop "not-available-error" with <value>\n When the user views the reward exchange list\n Then the card for the reward exchange rule is disabled\n And <message> is displayed\n Examples:\n | availabilityPredicate | value | message |\n | \'champion\' in user.segments ? "NOT_CHAMPION" : true | {unavailableReasonCode, select, NOT_CHAMPION {Sorry must be a champion!} other {unavailableReasonCode} } | Sorry must be a champion! |\n | user.customFields.purchaseCount < 10 ? "MORE_PURCHASE" : true | {unavailableReasonCode, select, MORE_PURCHASE {Complete 10 purchases to unlock} other {unavailableReasonCode} } | Complete 10 purchases to unlock |\n\n @motivating\n Scenario: Exchange options are disabled if they put a user over the W9 limit\n Given a user who is approaching their W9 limit\n And a reward exchange rule\n And its destination reward has a US taxable value that would put the user over their limit\n When they view the reward exchange list\n Then the reward exchange card is disabled\n And a "US Tax Limit" error message is displayed on to the right of a exclamation triangle icon\n And the text is orange\n And the icon is orange\n\n @motivating\n Scenario Outline: Exchange options are disabled if a users lacks enough credit to redeem\n Given a <type> reward exchange rule\n But the user lacks enough credit to exchange for it\n When they view the reward exchange list\n Then the reward exchange card is disabled\n And a <text> error message is displayed on to the right of a exclamation triangle icon\n And the text is orange\n And the icon is orange\n Examples:\n | type | text |\n | FIXED_GLOBAL_REWARD | {prettySourceValue} required |\n | STEPPED_FIXED_GLOBAL_REWARD | {prettySourceMinValue} required |\n | VARIABLE_GLOBAL_REWARD | {prettySourceMinValue} required |\n | VARIABLE_CREDIT_REWARD | {prettySourceMinValue} required |\n\n @motivating\n Scenario: Users can go back to the Rewards page from the Select page\n Given a user viewing the Select page\n Then they see a "Cancel" text button\n And a "Continue to confirmation" brand colour button in the bottom right corner\n When they click "Cancel"\n Then they return to the Rewards page\n\n @motivating\n Scenario: Users can go back to the Select Page from the Confirm page\n Given a user viewing the Confirm page\n Then they see a "Back" text button\n And a "Redeem" brand colour button in the bottom right corner\n When they click "Back"\n Then they return to the Select Page\n\n @motivating\n Scenario: Reward rules with visibility predicates that evaluates to false are not shown\n Given a tenant reward exchange rule with visibility predicates that evaluates to false\n When a user views the reward exchange list\n Then they do not see the card for that reward exchange rule\n\n @motivating\n Scenario Outline: Users can choose their reward option for variable rewards on the Select page\n Given a <type> exchange rule\n And it has the following fields\n | fields |\n | name |\n | description |\n | image |\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see the exchange rule image on the left hand side\n And on the right hand side they see the following in this order from top to bottom\n | elements |\n | exchange name |\n | exchange description |\n | select list with all exchange options using pretty values, destination reward above source reward |\n Examples:\n | type |\n | STEPPED_FIXED_GLOBAL_REWARD |\n | VARIABLE_GLOBAL_REWARD |\n | VARIABLE_CREDIT_REWARD |\n\n @motivating\n Scenario: Users who selected a fixed exchange rule see exchange information on the Select page\n Given a "FIXED_GLOBAL_REWARD" exchange rule\n And it has the following fields\n | fields |\n | name |\n | description |\n | image |\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see the exchange rule image on the left hand side\n And on the right hand side they see the following in this order from top to bottom\n | elements |\n | exchange name |\n | exchange source pretty value displayed in brand colour |\n | exchange description |\n\n @motivating\n Scenario Outline: Users selection variable rewards can only select rewards they are eligible to exchange for\n Given a <type> exchange rule\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see a drop down with all the reward exchange selections\n When they click on the drop down\n But they are not eligible for all of the exchanges options <dueToReason>\n Then the ineligble options are disabled\n And under the source value is <text>\n Examples:\n | type | dueToReason | text |\n | STEPPED_FIXED_GLOBAL_REWARD | due to insufficent source value | {prettySourceValue} required |\n | VARIABLE_GLOBAL_REWARD | due to insufficent source value | {prettySourceValue} required |\n | VARIABLE_CREDIT_REWARD | due to insufficent source value | {prettySourceValue} required |\n | STEPPED_FIXED_GLOBAL_REWARD | W9 | US Tax Limit |\n | VARIABLE_GLOBAL_REWARD | W9 | US Tax Limit |\n | VARIABLE_CREDIT_REWARD | W9 | US Tax Limit |\n\n @motivating\n Scenario Outline: The Confirm page allows users to view their exchange before committing\n Given a <type> exchange rule\n When a user views the reward exchange list\n And they select the exchange\n And they progress to Confirm page\n Then they see a row with title "Reward"\n And it contains the exchange name\n And it contains the exchange image\n And they <maySee> a row with title "Reward Amount"\n And it <mayContain> <amountTitle>\n And they see a row with title "Cost to Redeem"\n And it contains the source reward pretty value in bolded text\n Examples:\n | type | maySee | mayContain | amountTitle |\n | FIXED_GLOBAL_REWARD | don\'t | doesn\'t contain | N/A |\n | VARIABLE_GLOBAL_REWARD | see | contains | the pretty destination value |\n | STEPPED_FIXED_GLOBAL_REWARD | see | contains | the pretty destination value |\n | VARIABLE_CREDIT_REWARD | see | contains | the pretty destination value |\n\n @motivating\n Scenario: An error banner is displayed if an error occurs during redemeption\n Given a user has selected a reward to exchange\n And is on the confirmation page\n When they click "Redeem"\n But an error occurs\n Then an error banner appears\n And it contains details about the error\n And the reward exchange is not completed\n\n @motivating\n Scenario: Confetti is displayed when a reward exchange succeeds\n Given a user has selected a reward to exchange\n And they are on the confirmation page\n When they click "Redeem"\n And the exchange is successful\n Then they see confetti centered on the success page\n And they see text describing what they exchanged for their new reward\n And they see a "Done" brand colour button\n When they click "Done"\n Then they see the Rewards page\n\n @motivating\n Scenario: Fuel tank codes are shown when a reward exchange succeeds\n Given a user has selected to exchange for a fuel tank reward\n When they complete the reward exchange\n And are on the success page\n Then they see a textbox with their fuel tank code\n And a clipboard icon\n When they click the clipboard icon\n Then their fuel tank code is copied to their clipboard\n\n @motivating\n Scenario Outline: Users can exchange for any type of reward\n Given a <type> reward exchange rule for a <reward>\n And a user who has enough source credit to exchange for the reward\n When they go through the exchange flow\n And exchange for their reward\n Then their credit is exchanged for the <reward>\n Examples:\n | type | reward |\n | FIXED_GLOBAL_REWARD | gift card |\n | FIXED_GLOBAL_REWARD | fuel tank code |\n | FIXED_GLOBAL_REWARD | discount |\n | FIXED_GLOBAL_REWARD | credit reward |\n | STEPPED_FIXED_GLOBAL_REWARD | gift card |\n | STEPPED_FIXED_GLOBAL_REWARD | discount |\n | STEPPED_FIXED_GLOBAL_REWARD | credit reward |\n | VARIABLE_GLOBAL_REWARD | gift card |\n | VARIABLE_GLOBAL_REWARD | discount |\n | VARIABLE_GLOBAL_REWARD | credit reward |\n | VARIABLE_CREDIT_REWARD | credit reward |';var RewardExchangeList_stories={title:"Components/Reward Exchange List",parameters:{scenario:scenario$l}};var StoryBase=function(e){return function(){return h(RewardExchangeView,Object.assign({},e))}};var ChooseReward=StoryBase(rewardExchange);var CustomErrorMessage=StoryBase(rewardExchangeCustomErrorMsg);var LongTextRewardExhange=StoryBase(rewardExchangeLongText);var ChooseRewardSelected=StoryBase(rewardExchangeSelected);var ChooseAmount=StoryBase(chooseAmountFixed);var ChooseAmountNoDescription=StoryBase(chooseAmountFixedNoDescription);var ChooseAmountVariableAndStepped=StoryBase(chooseAmountVariable);var ChooseAmountVariableAndSteppedNoDescription=StoryBase(chooseAmountVariableNoDescription);var chooseAmountVariableAndSteppedDisabled=StoryBase(chooseAmountVariableDisabled);var chooseAmountVariableAndSteppedUnavailable=StoryBase(chooseAmountVariableUnavailable);var Confirm=StoryBase(confirmFixed);var ConfirmVariableAndStepped=StoryBase(confirmVariable);var RedemptionError=StoryBase(redemptionError);var QueryError=StoryBase(queryError);var SuccessPromo=StoryBase(success);var SuccessVariableAndStepped=StoryBase(successVariable);var Loading$3=StoryBase(loading);var Empty$2=StoryBase(empty$1);var RewardExchangeList=Object.freeze({__proto__:null,default:RewardExchangeList_stories,ChooseReward:ChooseReward,CustomErrorMessage:CustomErrorMessage,LongTextRewardExhange:LongTextRewardExhange,ChooseRewardSelected:ChooseRewardSelected,ChooseAmount:ChooseAmount,ChooseAmountNoDescription:ChooseAmountNoDescription,ChooseAmountVariableAndStepped:ChooseAmountVariableAndStepped,ChooseAmountVariableAndSteppedNoDescription:ChooseAmountVariableAndSteppedNoDescription,chooseAmountVariableAndSteppedDisabled:chooseAmountVariableAndSteppedDisabled,chooseAmountVariableAndSteppedUnavailable:chooseAmountVariableAndSteppedUnavailable,Confirm:Confirm,ConfirmVariableAndStepped:ConfirmVariableAndStepped,RedemptionError:RedemptionError,QueryError:QueryError,SuccessPromo:SuccessPromo,SuccessVariableAndStepped:SuccessVariableAndStepped,Loading:Loading$3,Empty:Empty$2});var scenario$m='@author:derek\n@owner:derek\nFeature: Program Explainer\n\n @motivating\n @ui\n Scenario Outline: The program explainer wraps program explainer steps and aligns them\n Given a program explainer component\n And it has <number> program explainer steps as components\n When a user views the program explainer\n Then they see <number> steps aligned horizontally\n And they have equal height/width\n And equal padding in between\n When they are viewed on a screen smaller than 500px\n Then the steps stack vertically with equal padding in between\n And they have equal width\n But height may vary\n Examples:\n | number |\n | 2 |\n | 3 |\n | 4 |\n\n @motivating\n @ui\n Scenario: The program explainer displays a section header\n Given a program explainer step with props\n | prop | value |\n | header | My Header |\n And it has program explainer steps as children\n When a user views the program explainer\n Then they see "My Header" centered above the explainer steps\n\n @motivating\n @ui\n Scenario: Colours are customizable\n Given a program explainer with props\n | prop | value |\n | text-color | purple |\n | background-color | grey |\n When a user views the program explainer\n Then the header is purple\n And the background between steos is grey\n';var ProgramExplainer_stories={title:"Components/Program Explainer",parameters:{scenario:scenario$m}};var OneStep=function(){return h("sqm-program-explainer",{header:"How it works"},h("sqm-program-explainer-step",{header:"Get up to $1250 for inviting friends to Klip",description:"Share your referral link with a friend and earn up to $1250",icon:"person-plus-fill"}))};var TwoSteps=function(){return h("sqm-program-explainer",{header:"How it works"},h("sqm-program-explainer-step",{header:"Get up to $1250 for inviting friends to Klip",description:"Share your referral link with a friend and earn up to $1250",icon:"person-plus-fill"}),h("sqm-program-explainer-step",{header:"Earn points for using Klip",description:"Complete tasks like uploading your first video or sharing videos with friends",icon:"server"}))};var ThreeSteps=function(){return h("sqm-program-explainer",{header:"How it works"},h("sqm-program-explainer-step",{header:"Get up to $1250 for inviting friends to Klip",description:"Share your referral link with a friend and earn up to $1250",icon:"person-plus-fill"}),h("sqm-program-explainer-step",{header:"Earn points for using Klip",description:"Complete tasks like uploading your first video or sharing videos with friends",icon:"server"}),h("sqm-program-explainer-step",{header:"Redeem rewards with your points",description:"Redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America",icon:"people-fill"}))};var Custom=function(){return h("sqm-program-explainer",{header:"How it works","text-color":"#fffc4b","background-color":"#ff7f7f"},h("sqm-program-explainer-step",{header:"Get up to $1250 for inviting friends to Klip",description:"Share your referral link with a friend and earn up to $1250",icon:"person-plus-fill"}),h("sqm-program-explainer-step",{header:"Earn points for using Klip",description:"Complete tasks like uploading your first video or sharing videos with friends",icon:"server"}),h("sqm-program-explainer-step",{header:"Redeem rewards with your points",description:"Redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America",icon:"people-fill"}))};var ProgramExplainerGeneric=function(){return h("sqm-program-explainer",{header:"Anything and everything can be passed to this component!","text-color":"#eee","background-color":"#333"},h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",color:"#333"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",color:"#333"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",color:"#333"}},"PLACEHOLDER"))};var ProgramExplainer=Object.freeze({__proto__:null,default:ProgramExplainer_stories,OneStep:OneStep,TwoSteps:TwoSteps,ThreeSteps:ThreeSteps,Custom:Custom,ProgramExplainerGeneric:ProgramExplainerGeneric});var scenario$n='@author:derek\n@owner:derek\nFeature: Program Explainer Step\n\n @motivating\n @ui\n Scenario: The program explainer step displays a icon, header and description\n Given a program explainer step with props\n | prop | value |\n | header | My Header |\n | description | My program explainer description |\n | icon | person-plus-fill |\n When a user views the explainer step\n Then they see an person icon with a + in the top left hand corner\n And the icon is weight 300 brand colour\n And below they see "My Header" in large bold font\n And below they see "My program explainer description" in medium font\n And the step background colour is weight 50 brand colour\n\n @motivating\n @ui\n Scenario: The program explainer can display an image in place of an icon\n Given a program explainer\n And it has an "image-url" prop with a value of a valid url to an image\n When a user views the explainer step\n Then the image is displayed in place of an incon in the top left hand corner\n\n @motivating\n @ui\n Scenario: Colours are customizable\n Given a program explainer step with props\n | prop | value |\n | text-color | purple |\n | background-color | grey |\n When a user views the explainer step\n Then they see the step background is grey\n And the header text is purple\n And the description text is purple\n';var ProgramExplainerStep_stories={title:"Components/Program Explainer Step",parameters:{scenario:scenario$n}};var ProgramExplainerStep=function(){return h("sqm-program-explainer-step",{header:"Get up to $1250 for inviting friends to Klip",description:"Send your referral link to a friend or share it through email, Twitter, or Facebook",icon:"person-plus-fill"})};var ProgramExplainerStepCustom=function(){return h("sqm-program-explainer-step",{header:"Invite your friends to Klip",description:"Send your referral link to a friend or share it through email, Twitter, or Facebook","image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000265/squatch-assets/Uqn3aXw.png","text-color":"#fffc4b","background-color":"#ff7f7f"})};var ProgramExplainerStep$1=Object.freeze({__proto__:null,default:ProgramExplainerStep_stories,ProgramExplainerStep:ProgramExplainerStep,ProgramExplainerStepCustom:ProgramExplainerStepCustom});var scenario$o='@author:derek\n@owner:logan\nFeature: Brand Configuration\n\n\t@motivating\n\tScenario: The brand components creates a colour pallet from a brand colour and applies it to children\n\t\tGiven a brand component with "brand-color" "#4225c4"\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the following css variables are set\n\t\t\t| variable | value |\n\t\t\t| --sl-color-primary-50 | hsla(251, 68%, 95%, 1) |\n\t\t\t| --sl-color-primary-100 | hsla(251, 68%, 86%, 1) |\n\t\t\t| --sl-color-primary-200 | hsla(251, 68%, 76%, 1) |\n\t\t\t| --sl-color-primary-300 | hsla(251, 68%, 66%, 1) |\n\t\t\t| --sl-color-primary-400 | hsla(251, 68%, 56%, 1) |\n\t\t\t| --sl-color-primary-500 | hsla(251, 68%, 46%, 1) |\n\t\t\t| --sl-color-primary-600 | hsla(251, 68%, 39%, 1) |\n\t\t\t| --sl-color-primary-700 | hsla(251, 68%, 32%, 1) |\n\t\t\t| --sl-color-primary-800 | hsla(251, 68%, 25%, 1) |\n\t\t\t| --sl-color-primary-900 | hsla(251, 68%, 18%, 1) |\n\t\t\t| --sl-color-primary-950 | hsla(251, 68%, 15%, 1) |\n\t\t\t| --sl-focus-ring-color-primary | var(--sl-color-primary-100) |\n\t\t\t| --sl-input-border-color-focus | var(--sl-color-primary-500) |\n\t\t\t| --sl-color-primary-hue | var(--sl-color-primary-500) |\n\t\tAnd they are applied to the children components\n\t\tBut they are not applied to any components outside of the brand component\n\t\tAnd they are not applied to any vanilla components\n\n\t@minutia\n\tScenario Outline: The brand colour can be hex, HSL or rgb\n\t\tGiven a brand component with "brand-color" <colour>\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the colour is used to create a brand palete\n\t\tAnd it is applied to the children components\n\t\tExamples:\n\t\t\t| colour |\n\t\t\t| #4225c4 |\n\t\t\t| rgb(66, 37, 196) |\n\t\t\t| hsl(251, 68%, 46%) |\n\t\t\t| hsla(251, 68%, 46%, 1) |\n\n\t@motivating\n\tScenario: The brand component can apply a brand font to children components\n\t\tGiven a brand component with "brand-font" "Nunito Sans"\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the following css variables are set\n\t\t\t| variable | value |\n\t\t\t| --sl-font-sans | "Nunito Sans", arial |\n\t\t\t| --sl-input-font-family | "Nunito Sans", arial |\n\t\t\t| --sl-tooltip-font-family | "Nunito Sans", arial |\n\t\t\t| font-family | "Nunito Sans", arial |\n\t\tAnd they are applied to the children components\n\t\tAnd the children component\'s text is "Nunito Sans"';var SqmBrand_stories={title:"Components/Brand",parameters:{scenario:scenario$o}};var SampleComponents=function(){return h("div",{style:{padding:"10px",border:"5px solid #EEE"}},h("div",{style:{display:"flex",gap:"5px",padding:"5px"}},h("sl-button",{type:"default"},"Default"),h("sl-button",{type:"primary"},"Primary"),h("sl-button",{type:"success"},"Success"),h("sl-button",{type:"neutral"},"Neutral"),h("sl-button",{type:"warning"},"Warning"),h("sl-button",{type:"danger"},"Danger")),h("div",{style:{display:"flex",gap:"5px",padding:"5px"}},h("sl-badge",{type:"primary"},"Primary"),h("sl-badge",{type:"success"},"Success"),h("sl-badge",{type:"neutral"},"Neutral"),h("sl-badge",{type:"warning"},"Warning"),h("sl-badge",{type:"danger"},"Danger")),h("div",{class:"color-palette"},h("div",{class:"color-palette__name"},"Primary",h("br",null),h("code",null,"--sl-color-primary-",h("em",null,"{n}"))),h("div",{style:{display:"flex",gap:"5px"}},h(ColorSwatch,{depth:50}),h(ColorSwatch,{depth:100}),h(ColorSwatch,{depth:200}),h(ColorSwatch,{depth:300}),h(ColorSwatch,{depth:400}),h(ColorSwatch,{depth:500}),h(ColorSwatch,{depth:600}),h(ColorSwatch,{depth:700}),h(ColorSwatch,{depth:800}),h(ColorSwatch,{depth:900}),h(ColorSwatch,{depth:950}))))};var Examples=function(){return h("div",null,h(SampleComponents,null),h("sqm-brand",{"brand-color":"#FF0000"},h(SampleComponents,null)),h("sqm-brand",{"brand-color":"#00FF00"},h(SampleComponents,null)),h("sqm-brand",{"brand-color":"#0000FF"},h(SampleComponents,null)),h("sqm-brand",{"brand-color":"#000000"},h(SampleComponents,null)))};var Nested=function(){return h("div",null,"Default ",h(SampleComponents,null),h("sqm-brand",{"brand-color":"#FF0000"},"Red:",h(SampleComponents,null),h("sqm-brand",{"brand-color":"#00FF00"},"Green:",h(SampleComponents,null),h("sqm-brand",{"brand-color":"#0000FF"},"Blue:",h(SampleComponents,null),h("sqm-brand",{"brand-color":"#000000"},"Black:",h(SampleComponents,null))))))};function ColorSwatch(e){var t=e.depth;return h("div",{style:{backgroundColor:"var(--sl-color-primary-"+t+")",color:"var(--sl-color-neutral-"+(1e3-t)+")",width:"50px",height:"50px",display:"flex",justifyContent:"center",alignItems:"center"}},t)}var Fonts=function(){return h("div",null,h(SampleComponents,null),h("sqm-brand",{"brand-font":"Roboto"},"Roboto",h(SampleComponents,null)),h("sqm-brand",{"brand-font":"Open Sans"},"Open Sans",h(SampleComponents,null)),h("sqm-brand",{"brand-font":"Lato"},"Lato",h(SampleComponents,null)),h("sqm-brand",{"brand-font":"Oswald"},"Oswald",h(SampleComponents,null)))};var BrandStories=Object.freeze({__proto__:null,default:SqmBrand_stories,Examples:Examples,Nested:Nested,Fonts:Fonts});var scenario$p='@author:kutay\n@owner:kutay\nFeature: Card Feed\n\n\tThe Card Feed component displays Task Card components in a grid layout.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Card Feed component\n\n\t@motivating\n\tScenario: The Card Feed component displays Task Cards given as children slots\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tWhen the user views the Card Feed\n\t\tThen the task cards are displayed in a masonry layout\n\t\tWhen the card feed with grows or shrinks in width\n\t\tThen the number of columns adjust to the given width\n\n\t@motivating\n\t@ui\n\tScenario Outline: The Card Feed component can have a maximum width\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tAnd has prop "width" has a provided <value>\n\t\tThen the task cards are displayed in a masonry layout\n\t\tWhen the card feed with grows or shrinks in width\n\t\tThen the number of columns adjust to the given width\n\t\tAnd the task cards do not exceed <width>\n\t\tExamples:\n\t\t\t| value | width |\n\t\t\t| | 347px |\n\t\t\t| 200 | 200px |\n\t\t\t| 400 | 400px |\n\n\t@motivating\n\t@ui\n\tScenario Outline: The Card Feed component gap between task cards can be customized\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tAnd has prop "gap" has a provided <value>\n\t\tThen the task cards are displayed in a masonry layout\n\t\tAnd the gap between the columns is the <gap>\n\t\tExamples:\n\t\t\t| value | gap |\n\t\t\t| | 24px |\n\t\t\t| 20 | 20px |\n\t\t\t| 50 | 50px |';var CardFeed_stories={title:"Components/Card Feed",parameters:{scenario:scenario$p}};var oneAction$1={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"20",rewardUnit:"SaaSquatch Points",cardTitle:"Complete a survey",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,showProgressBar:false,steps:false,buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,rewardDuration:null,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:1,locale:"en"},states:{progress:0,loading:false,loadingEvent:false}};var coupleActions$1={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"40",rewardUnit:"SaaSquatch Points",cardTitle:"Comment on 5 articles",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,showProgressBar:true,steps:true,buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",rewardDuration:null,expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:5,locale:"en"},states:{progress:1,loading:false,loadingEvent:false}};var manyActions$1={callbacks:{sendEvent:function(){return void 0},onClick:function(){return void 0}},content:{rewardAmount:"150",rewardUnit:"SaaSquatch Points",cardTitle:"Spend $500 at our Store",description:"Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",repeatable:false,completedText:"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",showProgressBar:true,steps:false,progressBarUnit:"$",buttonText:"Take survey",buttonLink:"https://example.com/",openNewTab:false,rewardDuration:null,expiryMessage:"Ends {endDate}",startsOnMessage:"Starts {startDate}",endedMessage:"Ended {endDate}",finite:0,goal:500,locale:"en"},states:{progress:100,loading:false,loadingEvent:false}};var TaskCardGrid=function(){return h(CardFeedView,{width:347,gap:24},h(TaskCardView,Object.assign({},oneAction$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},coupleActions$1)),h(TaskCardView,Object.assign({},coupleActions$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},manyActions$1)))};var TaskCardGridHighGap=function(){return h(CardFeedView,{width:400,gap:150},h(TaskCardView,Object.assign({},oneAction$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},coupleActions$1)),h(TaskCardView,Object.assign({},coupleActions$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},manyActions$1)))};var TaskCardGridLowGap=function(){return h(CardFeedView,{width:400,gap:12},h(TaskCardView,Object.assign({},oneAction$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},coupleActions$1)),h(TaskCardView,Object.assign({},coupleActions$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},manyActions$1)))};var TaskCardGridHighWidth=function(){return h(CardFeedView,{width:1e3,gap:24},h(TaskCardView,Object.assign({},oneAction$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},coupleActions$1)),h(TaskCardView,Object.assign({},coupleActions$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},manyActions$1)))};var TaskCardGridLowWidth=function(){return h(CardFeedView,{width:250,gap:24},h(TaskCardView,Object.assign({},oneAction$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},coupleActions$1)),h(TaskCardView,Object.assign({},coupleActions$1)),h("div",null,h(TaskCardView,Object.assign({},coupleActions$1))),h("div",null,h("div",null,h(TaskCardView,Object.assign({},oneAction$1)))),h(TaskCardView,Object.assign({},manyActions$1)))};var CardFeedGeneric=function(){return h(CardFeedView,{width:300,gap:24},h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-flex",alignItems:"center",justifyContent:"center"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"),h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",display:"inline-block"}},"PLACEHOLDER"))};var CardFeed=Object.freeze({__proto__:null,default:CardFeed_stories,TaskCardGrid:TaskCardGrid,TaskCardGridHighGap:TaskCardGridHighGap,TaskCardGridLowGap:TaskCardGridLowGap,TaskCardGridHighWidth:TaskCardGridHighWidth,TaskCardGridLowWidth:TaskCardGridLowWidth,CardFeedGeneric:CardFeedGeneric});var scenario$q='@author:kutay\n@owner:noah\nFeature: Portal Container\n\n\t@motivating\n\t@ui\n\tScenario: Horizontal content overflows, but does not stretch\n\t\tGiven there are two element in the container\n\t\tAnd the first is small\n\t\tAnd the second would stretch the container wider than it\'s parent\n\t\tThen the second one is clipped\n\t\tAnd the first one doesn\'t stretch\n\n\t@landmine\n\t@ui\n\tScenario: `max-width` is required for displaying as a row\n\t\tGiven I have `direction` to "row"\n\t\tAnd I have not set a `max-width`\n\t\tThen it displays as a column\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content padding can be customized\n\t\tGiven prop "padding" has <value>\n\t\tThen <padding> is applied to content\n\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\n\t@motivating\n\t@ui\n\tScenario Outline: Gap between content elements can be customized\n\t\tGiven prop "gap" has <value>\n\t\tThen <gap> is applied to elements between content\n\n\t\tExamples:\n\t\t\t| value | gap |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\t@minutia\n\t@ui\n\tScenario: Content can be center aligned in horizontal view\n\t\tGiven I have supplied the prop "center"\n\t\tThen the content is center aligned\n\n\t@minutia\n\t@ui\n\tScenario: Content in the last row can span full width with display in horizontal view\n\t\tGiven I have `display` to "flex"\n\t\tThen the content is full width on the last row\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content can be aligned along the x-axis\n\t\tGiven prop "justify-content" has <value>\n\t\tThen content within the container is aligned <alignment>\n\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| none | no alignment |\n\t\t\t| start | to the start |\n\t\t\t| center | to the center |\n\t\t\t| end | to the end |\n\t\t\t| space-between | with space between |\n\t\t\t| space-around | with space around |\n\t\t\t| space-evenly | with space evenly |\n\n\n\t@motivating\n\t@ui\n\tScenario Outline: Component background color can be customized\n\t\tGiven a user is viewing the Portal Container component\n\t\tThen the default value is "#ffffff00"\n\t\tWhen the prop "background-color" has <value>\n\t\tThen the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| value | backgroundColor |\n\t\t\t| empty (default value) | var(--sl-color-neutral-0) (#ffffff) |\n\t\t\t| aquamarine | #7fffd4 |\n';var PortalContainer_stories={title:"Components/Portal Container",parameters:{scenario:scenario$q}};var TooWideColumn=function(){return h("div",{style:{width:"200px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large"},h("div",{style:{background:"grey",border:"1px solid red"}},"Small"),h("div",{style:{background:"lightblue",width:"1000px"}},"Too wide, content goes off the side of the page for ever and is hidden.")))};var TooWideRow=function(){return h("div",{style:{width:"500px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large",direction:"row","min-width":"160px"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var TooWideSmallGap=function(){return h("div",{style:{width:"500px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"small",direction:"row","min-width":"160px"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var TooWidePadding=function(){return h("div",{style:{width:"500px",border:"1px dashed grey"}},h("sqm-portal-container",{padding:"xxx-large",gap:"xxx-large",direction:"row","min-width":"160px"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var TooWideDisplayFlex=function(){return h("div",{style:{width:"500px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large",direction:"row",display:"flex","min-width":"160px"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var HalfWidth=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large",direction:"row",minWidth:"160px",maxWidth:"50%"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var HalfWidthCenter=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large",direction:"row",minWidth:"160px",maxWidth:"50%",center:true},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var FullWidth=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{gap:"xxx-large",direction:"row",maxWidth:"100%"},h("sqm-share-button",{icon:"envelope",medium:"email",size:"medium",class:"hydrated"},"Email a friend"),h("sqm-share-button",{medium:"twitter",size:"medium",class:"hydrated"},"Tweet about us"),h("sqm-share-button",{medium:"facebook",size:"medium",class:"hydrated"},"Share on Facebook")))};var SpaceBetween=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"space-between"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var SpaceAround=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"space-around"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var SpaceEvenly=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"space-evenly"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var Start$1=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"start"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var Center=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"center"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var End=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"end"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var BackgroundColor=function(){return h("div",{style:{width:"1000px",border:"1px dashed grey"}},h("sqm-portal-container",{center:true,direction:"row",display:"flex","justify-content":"start","background-color":"red"},h("sqm-stat-container",{space:"xxx-large",display:"flex"},h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardsRedeemed/CREDIT/global"},h("sqm-text",null,h("p",null,"Rewards Redeemed"))),h("sqm-big-stat",{"flex-reverse":"true",alignment:"left","stat-type":"/rewardBalance/CREDIT/POINT/value/global"},h("sqm-text",null,h("p",null,"Points Balance")))),h("sqm-scroll",{"scroll-id":"tab-2",outline:true,"button-type":"primary","button-text":"Redeem your rewards",mobile:true})))};var PortalContainer=Object.freeze({__proto__:null,default:PortalContainer_stories,TooWideColumn:TooWideColumn,TooWideRow:TooWideRow,TooWideSmallGap:TooWideSmallGap,TooWidePadding:TooWidePadding,TooWideDisplayFlex:TooWideDisplayFlex,HalfWidth:HalfWidth,HalfWidthCenter:HalfWidthCenter,FullWidth:FullWidth,SpaceBetween:SpaceBetween,SpaceAround:SpaceAround,SpaceEvenly:SpaceEvenly,Start:Start$1,Center:Center,End:End,BackgroundColor:BackgroundColor});var scenario1='@author:derek\n@owner:derek\nFeature: Reward Table Date Column\n\n Shows the date of each reward\n\n Background:\n Given the date column is included in the reward table\n\n @motivating\n @ui\n Scenario Outline: The title of the date column is configurable\n Given the "column-title" prop is set to <value>\n Then the date column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Date received | |\n | My column title | My column title |\n\n @motivating\n Scenario Outline: A configurable date associated with the reward is shown for each reward\n Given the "date-shown" prop is set to <dateType>\n And a user with rewards\n When they view the date column\n Then for each reward the <rewardDate> is shown in the table\n And the date is localized to the users locale\n Examples:\n | dateType | rewardDate |\n | dateGiven | date given |\n | dateExpires | date expires |\n | dateCancelled | date cancelled |\n | dateRedeemed | date redeemed |\n | dateScheduledFor | date scheduled for |\n | | date given |';var scenario2='@author:derek\n@owner:derek\nFeature: Reward Table reward Column\n\n Shows the exact reward\n\n Background:\n Given the reward column is included in the reward table\n And rewards with translations exist\n\n @motivating\n @ui\n Scenario Outline: The title of the reward column is configurable\n Given the "column-title" prop is set to <value>\n Then the reward column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Reward | |\n | My column title | My column title |\n\n @motivating\n Scenario: The reward column displays the prettyValue of the reward given\n Given a user with a reward\n When they view the rewards table\n Then they see the name of their reward in the reward column\n And the name is the prettyValue translated for the users locale\n\n @motivating\n @ui\n Scenario: The reward column displays an availability bar if the reward is redeemable\n Given a user with a <status> credit reward of <value>\n But the user has <redeemedAmount>\n When they view the rewards table\n Then the reward column displays <value>\n And under it displays an availability bar with <percentage> filled\n And under it displays <availabilityText>\n Examples:\n | status | value | percentage | availableAmount | availabilityText |\n | AVAILABLE | 10 Points | 100% | 10 Points | 10 Points remaining |\n | AVAILABLE | 10 Points | 90% | 9 Points | 9 Points remaining |\n | AVAILABLE | 10 Points | 10% | 1 Point | 1 Point remaining |\n | PENDING | 10 Points | 100% | 10 Points | 10 Points remaining |\n | PENDING | 10 Points | 90% | 9 Points | 9 Points remaining |\n | PENDING | 10 Points | 10% | 1 Point | 1 Point remaining |\n\n @motivating\n @ui\n Scenario Outline: The reward column displays an availability bar if the reward was redeemable but had been cancelled or expired\n Given a user with a credit reward of <value>\n And the reward has <status>\n But the user has <redeemedAmount>\n When they view the rewards table\n When they view the rewards table\n Then the reward column displays <value>\n And under it displays an availability bar with <percentage> filled\n And under it displays <redeemedText>\n Examples:\n | status | value | percentage | redeemedAmount | redeemedText |\n | EXPIRED | 10 Points | 100% | 0 Point | 0 Point redeemed |\n | EXPIRED | 10 Points | 80% | 2 Point | 2 Point redeemed |\n | CANCELLED | 10 Points | 100% | 0 Point | 0 Point redeemed |\n | CANCELLED | 10 Points | 20% | 8 Point | 8 Point redeemed |\n\n @motivating\n @ui\n Scenario: The reward column doesn\'t display the availability bar if the reward is not redeemable\n Given a user with a non credit reward\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n\n @motivating\n @ui\n Scenario Outline: The reward column doesn\'t display the availability bar if the reward is only 1 reward unit\n Given a user with a credit reward for 1 of a reward unit\n And it has <status>\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n Examples:\n | status |\n | AVAILABLE |\n | PENDING |\n | EXPIRED |\n | CANCELLED |\n\n @motivating\n @ui\n Scenario: The reward column doesn\'t display the availability bar for redeemed credit rewards\n Given a user with a "REDEEMED" credit reward\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n\n @motivating\n @ui\n Scenario: Users can copy their fuel tank codes\n Given a user with a fuel tank reward\n When they view the rewards table\n Then they see their fuel tank reward\n And they see their fuel tank code bolded in blue\n When they click on their code\n Then a tool tip appears saying it has been copied to their clipboard\n And their code is copied to their clipboard';var scenario3='@author:derek\n@owner:derek\nFeature: Reward Table Status Column\n\n Shows the status of each reward\n\n Background:\n Given the status column is included in the reward table\n\n @motivating\n @ui\n Scenario Outline: The title of the status column is configurable\n Given the "column-title" prop is set to <value>\n Then the status column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Status | |\n | My column title | My column title |\n\n @motivating\n @ui\n Scenario Outline: The status column displays the status of each reward\n Given a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n Examples:\n | status | text | pillColour |\n | AVAILABLE | Available | Green |\n | CANCELLED | Cancelled | Red |\n | PENDING | Pending | Orange |\n | EXPIRED | Expired | Red |\n | REDEEMED | Redeemed | Blue |\n | PENDING_REVIEW | Pending Review | Orange |\n | DENIED | Denied | Red |\n\n @motivating\n Scenario Outline: Reward status related information is displayed under status pills\n Given a user\n And they have a <reward>\n When they view the reward table\n Then they see their reward\n And under the pill is <text>\n And the date is localized to the users locale\n Examples:\n | reward | text |\n | available reward with an expiry date | localized expiry date in format "Month-Day-Year" |\n | redeemed reward | localized redemption date in format "Month-Day-Year" |\n | expired reward | localized expired date in format "Month-Day-Year" |\n | cancelled reward | localized cancelled date in format "Month-Day-Year" |\n | pending reward with a end date | localized pending for date in format "Month-Day-Year" |\n | pending reward due to W9 | W-9 required |\n | pending reward due to fufillment error | Fulfillment error |\n | reward pending review of referral | Pending review |\n | cancelled reward from denied referral | Flagged as fraud |\n\n @motivating\n Scenario Outline: Statuses can be customized\n Given the "status-text" prop is "{status, select, AVAILABLE {Redeem me!} CANCELLED {Unavailable} PENDING {Coming soon!} EXPIRED {Past due} REDEEMED {Spent} PENDING_REVIEW {Pending Review!} DENIED {Unlucky!}}"\n And a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n Examples:\n | status | text | pillColour |\n | AVAILABLE | Redeem me! | Green |\n | CANCELLED | Unavailable | Red |\n | PENDING | Coming soon! | Orange |\n | EXPIRED | Past due | Red |\n | REDEEMED | Spent | Blue |\n | PENDING_REVIEW | Pending Review! | Orange |\n | DENIED | Unlucky! | Red |\n\n @minutia\n @ui\n Scenario: Expiry status date text can be configured\n Given the "expiry-text" prop has <value>\n And a user with an available reward with an expiry date\n When they view the reward table\n Then they see <text> under the Available Status pill\n Examples:\n | value | text |\n | | Expires on <EXPIRY DATE> |\n | Redeem before | Redeem before <EXPIRY DATE> |';var scenario4='@author:derek\n@owner:derek\nFeature: Reward Table Source Column\n\n Shows the source of each reward\n\n @motivating\n @ui\n Scenario Outline: The title of the source column is configurable\n Given the "column-title" prop is set to <value>\n Then the source column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Source | |\n | My column title | My column title |\n\n @motivating\n @ui\n Scenario: The source column displays manual if the reward is caused by a manual action\n Given a user with a "MANUAL" reward\n When they view the rewards table\n Then the source of their reward is displayed as "Manual"\n\n @motivating\n @ui\n Scenario: The source column displays the program name if the reward is caused automatically by a program\n Given a user with a "AUTOMATED" program reward\n And the program has name "Loyalty Program"\n When they view the rewards table\n Then the source of their reward is displayed as "Loyalty Program"\n\n @motivating\n @ui\n Scenario Outline: The source column displays customizable reward exchange text with amount if the reward is caused by reward exchange\n Given the "reward-exchange-text" prop is <propValue>\n And a user with a "MANUAL" reward\n But it was created by a reward exchange\n Then they view the rewards table\n Then the source displays <exchangeText>\n And under it displays the following\n | prettyRedeemedCredit → prettyValue |\n Examples:\n | propValue | exchangeText |\n | | Reward Exchange |\n | Exchanged | Exchanged |\n\n @motivating\n @ui\n Scenario Outline: The source column displays customizable referral information if the reward is from a referral\n Given the "reward-source-text" prop is <propValue>\n And a user with a referral reward\n And that reward has <rewardSource>\n When they view the rewards table\n Then then source displays <referralText>\n And under it displays the full name of the <referralUser>\n Examples:\n | propValue | rewardSource | referralText | referralUser |\n | | REFERRED | Referred by | referrer user |\n | | FRIEND_SIGNUP | Referral to | referred user |\n | {rewardSource, select, FRIEND_SIGNUP {You Referred} REFERRED {Referred you} other {}} | REFERRED | Referred you | referrer user |\n | {rewardSource, select, FRIEND_SIGNUP {You Referred} REFERRED {Referred you} other {}} | FRIEND_SIGNUP | You Referred | referred user |\n\n @motivating\n @ui\n Scenario Outline: The source column displays the existing name for a referral if either the first name or last name does not exist\n Given a user with a referral reward\n And referral user exists\n And referral user has <name>\n But referral user has no <otherName>\n When they view the rewards table\n Then referral user\'s name is displayed as <name>\n Examples:\n | name | otherName |\n | first.name | last.name |\n | last.name | first.name |\n\n @motivating\n @ui\n Scenario Outline: The source column displays referral as "Anonymous User" if the referral user has no names\n Given a user with a referral reward\n And that reward has <rewardSource>\n And the <referralUser> has no first name\n And the <referralUser> has no last name\n When they view the rewards table\n Then then source displays <sourceText>\n And under it displays "Anonymous User"\n Examples:\n | rewardSource | referralUser | sourceText |\n | FRIEND_SIGNUP | referrer | Referral to |\n | REFERRED | referred user | Referred by |\n\n @motivating\n @ui\n Scenario Outline: The source column displays referral as "Deleted User" if the referral user is deleted in the system\n Given a user with a referral reward\n And that reward has <rewardSource>\n But <referral> user was deleted\n When they view the rewards table\n Then the source displays <sourceText>\n And under it displays "Deleted User"\n Examples:\n | rewardSource | referral | sourceText |\n | "FRIEND_SIGNUP" | referrer | Referral to |\n | "REFERRED" | referred | Referred by |\n\n @minutia\n @ui\n Scenario Outline: Name fallbacks for referral users without names are customizable\n Given <prop> with <value>\n And a user with a referral reward\n But the referral user <hadAction>\n When they view the rewards table\n Then the source displays <value> as the referral user\n Examples:\n | prop | value | hadAction |\n | deleted-user | Former Customer | was deleted |\n | anonymous-user | Nameless User | had first and last name deleted |\n\n @motivating\n Scenario Outline: Source text can be customized\n Given the "reward-source-text" prop is "{rewardSource, select, MANUAL {Support} AUTOMATED {Loyalty Program} other {}}"\n And a user with a <rewardSource> reward\n When they view the rewards table\n Then the source is <sourceText>\n Examples:\n | rewardSource | sourceText |\n | MANUAL | Support |\n | AUTOMATED | Loyalty Program |';var scenario$r=scenario1+scenario2+scenario3+scenario4;var RewardsTableCell_stories={title:"Components/Rewards Table Cell",parameters:{scenario:scenario$r}};var rewardsData$1={id:"61c100117a82a376d8804166",type:"CREDIT",value:19,unit:"Points",name:null,dateGiven:1640038417468,meta:{message:"***CUSTOMER NOTE MESSAGE***"},dateExpires:null,dateCancelled:null,dateRedeemed:null,dateScheduledFor:null,fuelTankCode:null,fuelTankType:null,currency:null,prettyValue:"19 Points",prettyValueNumber:"19",prettyAvailableNumber:"19",prettyRedeemedNumber:"0",statuses:["AVAILABLE"],pendingReasons:null,globalRewardKey:null,rewardSource:"MANUAL",prettyRedeemedCredit:"0 Points",prettyAssignedCredit:"19 Points",prettyAvailableValue:"19 Points",exchangedRewardRedemptionTransaction:null,referral:null,rewardRedemptionTransactions:{data:null}};var RewardsCellCreditSingle=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),singleRedeemed)})};var RewardsCellCreditFull=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign({},rewardsData$1),availableText:"{availableAmount} remaining"})};var partial={prettyAvailableValue:"10 Points",prettyRedeemedCredit:"9 Points",prettyRedeemedNumber:"9",dateRedeemed:1640038417468};var RewardsCellCreditPartial=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),partial),availableText:"{availableAmount} remaining"})};var RewardsCellCreditCancelled=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),cancelled),redeemedText:"{redeemedAmount} redeemed"})};var RewardsCellCreditExpired=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign(__assign({},rewardsData$1),partial),expired),redeemedText:"{redeemedAmount} redeemed"})};var RewardsCellCreditPending=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),pending),availableText:"{availableAmount} remaining"})};var empty={prettyAvailableValue:"0 Points",prettyAvailableNumber:"0",prettyRedeemedCredit:"19 Points",prettyRedeemedNumber:"19",dateRedeemed:1640038417468};var RewardsCellCreditRedeemed=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),empty),availableText:"{availableAmount} remaining"})};var singleRedeemed={prettyValue:"1 Point",prettyValueNumber:"1"};var longName={prettyValue:"19 Points with a really really super duper longest name ever in the world wide web",prettyValueNumber:"19"};var RewardsCellCreditLong=function(){return h("div",{style:{maxWidth:"222px"}},h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),longName),availableText:"{availableAmount} remaining"}))};var RewardsCellNonCredit=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),{type:"GIFTCARD",prettyValue:"SaaSquatch Giftcard"})})};var RewardsCellFueltank=function(){return h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),{type:"FUELTANK",prettyValue:"Fueltank Reward",fuelTankCode:"AFUELTANKCODE"}),copyText:"Copied"})};var RewardsCellFueltankLong=function(){return h("div",{style:{maxWidth:"222px"}},h("sqm-rewards-table-reward-cell",{reward:__assign(__assign({},rewardsData$1),{type:"FUELTANK",prettyValue:"Long Fueltank Reward",fuelTankCode:"AFUELTANKCODE123456789123456789123456789123456789"}),copyText:"Copied"}))};var SourceCellManual=function(){return h("sqm-rewards-table-source-cell",{reward:rewardsData$1,rewardSourceText:"Manual"})};var SourceCellProgram=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),{rewardSource:"AUTOMATED",program:{name:"Klip Loyalty"}}),rewardSourceText:"{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"})};var exchange={exchangedRewardRedemptionTransaction:{id:"61c100117a82a376d88041196",creditRedeemed:1,prettyRedeemedCredit:"1 Money",unit:"TESTUNIT",dateRedeemed:1640038417173,redeemedRewards:null,exchangedRewards:null}};var SourceCellExchange=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),exchange),rewardExchangeText:"Reward Exchange"})};var longUserName={firstName:"Bartholomew",lastName:"Christopher-Johnston Wallace",imageUrl:null};var johnDoe={firstName:"John",lastName:"Doe",imageUrl:null};var anon={firstName:"",lastName:"",imageUrl:null};var referral=function(e){if(e===void 0){e=null}return{rewardSource:"FRIEND_SIGNUP",referral:{id:"123",dateConverted:1640038417173,dateReferralStarted:1640038417173,dateReferralPaid:1640038417173,dateModerated:1640038417173,dateReferralEnded:null,moderationStatus:null,rewards:null,referrerUser:e,referredUser:e}}};var referred=function(e){if(e===void 0){e=null}return{rewardSource:"REFERRED",referral:{id:"123",dateConverted:1640038417173,dateReferralStarted:1640038417173,dateReferralPaid:1640038417173,dateModerated:1640038417173,dateReferralEnded:null,moderationStatus:null,rewards:null,referrerUser:e,referredUser:e}}};var SourceCellReferral=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),referral(johnDoe)),referralText:"Referral to"})};var SourceCellWithLongText=function(){return h("div",{style:{width:"200px"}},h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),referral(longUserName)),referralText:"Referral to"}))};var SourceCellReferred=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),referred(johnDoe)),referralText:"Referred by"})};var SourceCellAnonymousUser=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),referral(anon)),referralText:"Referral to",anonymousUserText:"Anonymous User"})};var SourceCellDeletedUser=function(){return h("sqm-rewards-table-source-cell",{reward:__assign(__assign({},rewardsData$1),referral(null)),referralText:"Referral to",deletedUserText:"Deleted User"})};var StatusCellAvailable=function(){return h("sqm-rewards-table-status-cell",{statusText:"Available",reward:rewardsData$1})};var expire={dateExpires:1640038417468};var StatusCellAvailableExpiry=function(){return h("sqm-rewards-table-status-cell",{statusText:"Available",reward:__assign(__assign({},rewardsData$1),expire),expiryText:"Expires"})};var redeemed={statuses:["REDEEMED"],dateRedeemed:1640038417468};var StatusCellRedeemed=function(){return h("sqm-rewards-table-status-cell",{statusText:"Redeemed",reward:__assign(__assign({},rewardsData$1),redeemed)})};var cancelled={statuses:["CANCELLED"],dateCancelled:1640038417468};var StatusCellCancelled=function(){return h("sqm-rewards-table-status-cell",{statusText:"Cancelled",reward:__assign(__assign({},rewardsData$1),cancelled)})};var expired={statuses:["EXPIRED"],dateExpires:1640038417468};var StatusCellExpired=function(){return h("sqm-rewards-table-status-cell",{statusText:"Expired",reward:__assign(__assign({},rewardsData$1),expired)})};var pending={statuses:["PENDING"]};var us_tax={pendingReasons:["US_TAX"]};var scheduled={pendingReasons:["SCHEDULED"],dateScheduledFor:1640038417468};var unhandled={pendingReasons:["UNHANDLED_ERROR"]};var StatusCellPending=function(){return h("sqm-rewards-table-status-cell",{statusText:"Pending",reward:__assign(__assign({},rewardsData$1),pending)})};var StatusCellPendingWithLongText=function(){return h("div",{style:{width:"200px"}},h("sqm-rewards-table-status-cell",{statusText:"Pending for 300,000,000 months and some change",reward:__assign(__assign({},rewardsData$1),pending)}))};var StatusCellPendingUsTax=function(){return h("sqm-rewards-table-status-cell",{statusText:"Pending",reward:__assign(__assign(__assign({},rewardsData$1),pending),us_tax)})};var StatusCellPendingScheduled=function(){return h("sqm-rewards-table-status-cell",{statusText:"Pending",reward:__assign(__assign(__assign({},rewardsData$1),pending),scheduled)})};var StatusCellPendingUnhandled=function(){return h("sqm-rewards-table-status-cell",{statusText:"Pending",reward:__assign(__assign(__assign({},rewardsData$1),pending),unhandled)})};var StatusCellPendingReview=function(){return h("sqm-rewards-table-status-cell",{statusText:"Pending",reward:__assign(__assign({},rewardsData$1),{referral:{id:"123",dateConverted:1640038417173,dateReferralStarted:1640038417173,dateReferralPaid:1640038417173,dateModerated:1640038417173,dateReferralEnded:null,moderationStatus:null,rewards:null,referrerUser:null,referredUser:null,fraudData:{moderationStatus:"PENDING",autoModerationStatus:"PENDING",manualModerationStatus:"PENDING"}}})})};var StatusCellDenied=function(){return h("sqm-rewards-table-status-cell",{statusText:"Denied",reward:__assign(__assign({},rewardsData$1),{dateCancelled:1e4,referral:{id:"123",dateConverted:1640038417173,dateReferralStarted:1640038417173,dateReferralPaid:1640038417173,dateModerated:1640038417173,dateReferralEnded:null,moderationStatus:null,rewards:null,referrerUser:null,referredUser:null,fraudData:{moderationStatus:"DENIED",autoModerationStatus:"DENIED",manualModerationStatus:"DENIED"}}})})};var DateCell$1=function(){return h("sqm-rewards-table-date-cell",{date:1640038417468})};var CustomerNoteCell=function(){return h("sqm-rewards-table-customer-note-cell",{note:rewardsData$1.meta.message})};var EmptyCell$2=function(){return h("sqm-rewards-table-date-cell",null)};var RewardsTableCell=Object.freeze({__proto__:null,default:RewardsTableCell_stories,RewardsCellCreditSingle:RewardsCellCreditSingle,RewardsCellCreditFull:RewardsCellCreditFull,RewardsCellCreditPartial:RewardsCellCreditPartial,RewardsCellCreditCancelled:RewardsCellCreditCancelled,RewardsCellCreditExpired:RewardsCellCreditExpired,RewardsCellCreditPending:RewardsCellCreditPending,RewardsCellCreditRedeemed:RewardsCellCreditRedeemed,RewardsCellCreditLong:RewardsCellCreditLong,RewardsCellNonCredit:RewardsCellNonCredit,RewardsCellFueltank:RewardsCellFueltank,RewardsCellFueltankLong:RewardsCellFueltankLong,SourceCellManual:SourceCellManual,SourceCellProgram:SourceCellProgram,SourceCellExchange:SourceCellExchange,SourceCellReferral:SourceCellReferral,SourceCellWithLongText:SourceCellWithLongText,SourceCellReferred:SourceCellReferred,SourceCellAnonymousUser:SourceCellAnonymousUser,SourceCellDeletedUser:SourceCellDeletedUser,StatusCellAvailable:StatusCellAvailable,StatusCellAvailableExpiry:StatusCellAvailableExpiry,StatusCellRedeemed:StatusCellRedeemed,StatusCellCancelled:StatusCellCancelled,StatusCellExpired:StatusCellExpired,StatusCellPending:StatusCellPending,StatusCellPendingWithLongText:StatusCellPendingWithLongText,StatusCellPendingUsTax:StatusCellPendingUsTax,StatusCellPendingScheduled:StatusCellPendingScheduled,StatusCellPendingUnhandled:StatusCellPendingUnhandled,StatusCellPendingReview:StatusCellPendingReview,StatusCellDenied:StatusCellDenied,DateCell:DateCell$1,CustomerNoteCell:CustomerNoteCell,EmptyCell:EmptyCell$2});var scenario$s='@owner:sam\n@author:sam\nFeature: Rewards Table\n\n Shows a list of rewards as a table\n\n @motivating\n @ui\n Scenario: The empty state is shown if there are no rewards\n Given a user with rewards\n When they view the reward table\n Then no rewards are displayed\n And they see an image with a user icon\n And "View your rewards" in bold\n And "See all the rewards you have earned from referring friends and completing tasks" below the bolded text\n And the pagination buttons are disabled\n\n @minutia\n @ui\n Scenario: A custom empty state can be provided\n Given a user with no rewards\n And a custom empty state has been supplied in the "empty" slot\n When they view the reward table\n Then they see the custom empty state\n\n @minutia\n @ui\n Scenario: The loading state is shown while rewards are loading\n Given the table is loading\n Then the loading state is shown in the table\n And a custom loading state can be supplied in the "loading" slot\n And the pagination buttons are disabled\n\n @motivating\n @ui\n Scenario Outline: The table becomes paginated when the number of rewards exceeds the per page limit\n Given the user has <number of rewards>\n And the table is configured to show <page limit> rewards per page\n Then the table will have <number of pages> page(s)\n And pagination buttons will allow users to navigate between pages\n And the pagination button to go to the next page is disabled on the last page of rewards\n And the pagination button to go to the previous page is disabled on the first page of rewards\n Examples:\n | number of rewards | page limit | number of pages |\n | 0 | 4 | 1 |\n | 1 | 4 | 1 |\n | 3 | 4 | 1 |\n | 5 | 4 | 2 |\n | 42 | 4 | 11 |\n\n @motivating\n @ui\n Scenario: The table converts to a card view on tablet and mobile window sizes\n Given a user with rewards\n When they view the table\n And their window size is smaller than "799px"\n Then rewards are displayed as cards\n And they are in two columns\n When their window size is smaller than "599px"\n Then the rewards are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario: Table and Mobile beakpoints can be configured\n Given the reward table has been configured with the following props\n | prop | value |\n | smBreakpoint | 599 |\n | mdBreakpoint | 799 |\n And a user with rewards\n When they view the table\n And their window size is smaller than "799px"\n Then rewards are displayed as cards\n And they are in two columns\n When their window size is smaller than "599px"\n Then the rewards are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario Outline: By default the first column heading is hidden in mobile\n Given a reward table with 4 columns\n And prop "hidden-columns" with <hideColumnValue>\n And a user with rewards\n When they view the reward table\n And their window size is below the tablet breakpoint\n Then reward cards are displayed\n And the titles of <columnsArehidden> within the card\n Examples:\n | hideColumnValue | columnsArehidden |\n | | the first column |\n | 0,1,2 | the first, second and third columns |\n | 3 | the fourth column |\n\n @motivating\n Scenario: Only rewards which occured in the program specific by "program-id" are shown\n Given the table is configured with "program-id"\n Then only rewards from the program with "program-id" are shown\n\n @landmine\n Scenario: When a `classic` program Id is set then any reward without a programId is shown\n There is no easy way for the backend to filter for "classic" programs,\n thus we are filtering for rewards without programId\'s.\n\n Given the "program-id" of the table is set to "classic"\n Then rewards from classic programs are shown\n And manual rewards are shown\n\n @minutia\n @ui\n Scenario: Column heading can be hidden\n Given the table is configured with "hide-labels" set to "true"\n Then the table is displayed without column headings';var RewardsTable_stories={title:"Components/Rewards Table",parameters:{scenario:scenario$s}};var loadingElement$1=h("div",{slot:"loading",style:{display:"contents"}},h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))),h("sqm-table-row",null,h("sqm-table-cell",{colspan:5},h("sl-skeleton",null))));var emptyElement$1=h("sqm-empty",{"empty-state-image":"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png","empty-state-header":"View your rewards","empty-state-text":"See all the rewards you have earned from referring friends and completing tasks"});var rewardsTableProps=function(e,t,n,a,r,s){if(t===void 0){t=false}if(n===void 0){n=false}if(a===void 0){a="Prev"}if(r===void 0){r="Next"}if(s===void 0){s=""}return{states:{hasPrev:false,hasNext:true,show:t?"empty":n?"loading":"rows",namespace:"sqm-rewards-table"},data:{textOverrides:{showLabels:true,prevLabel:a,moreLabel:r},hiddenColumns:s,mdBreakpoint:799,smBreakpoint:599},callbacks:{prevPage:function(){return console.log("Prev")},nextPage:function(){return console.log("Next")}},elements:{columns:["Rewards","Status","Source","Date received"],rows:e,emptyElement:emptyElement$1,loadingElement:loadingElement$1}}};var r_available=[h(RewardsCellCreditFull,null),h(StatusCellAvailable,null),h(SourceCellReferral,null),h(DateCell$1,null)];var r_expired=[h(RewardsCellCreditPartial,null),h(StatusCellAvailableExpiry,null),h(SourceCellReferred,null),h(DateCell$1,null)];var r_cancelled=[h(RewardsCellCreditCancelled,null),h(StatusCellCancelled,null),h(SourceCellDeletedUser,null),h(DateCell$1,null)];var r_redeemed=[h(RewardsCellCreditRedeemed,null),h(StatusCellRedeemed,null),h(SourceCellManual,null),h(DateCell$1,null)];var r_denied=[h(RewardsCellCreditRedeemed,null),h(StatusCellDenied,null),h(SourceCellManual,null),h(DateCell$1,null)];var r_pending_review=[h(RewardsCellCreditRedeemed,null),h(StatusCellPendingReview,null),h(SourceCellManual,null),h(DateCell$1,null)];var r_long=[h(RewardsCellCreditLong,null),h(StatusCellAvailableExpiry,null),h(SourceCellReferred,null),h(DateCell$1,null)];var r_fueltank=[h(RewardsCellFueltank,null),h(StatusCellPending,null),h(SourceCellManual,null),h(DateCell$1,null)];var r_fueltank_long=[h(RewardsCellFueltankLong,null),h(StatusCellPendingUnhandled,null),h(SourceCellManual,null),h(DateCell$1,null)];var RewardsTable=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([r_available,r_redeemed,r_cancelled,r_expired,r_denied,r_pending_review])))};var RewardsTableSingle=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([r_fueltank])))};var RewardsTableLong=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([r_fueltank_long,r_long])))};var RewardsTableEmpty=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([],true)))};var RewardsTableLoading=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([],false,true)))};var CustomButtonTextTable$1=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([r_available,r_redeemed,r_cancelled,r_expired],false,false,"CUSTOM PREVIOUS TEXT","CUSTOM NEXT TEXT")))};var ColumnsMobileHidden$1=function(){return h(GenericTableView,Object.assign({},rewardsTableProps([r_available,r_redeemed,r_cancelled,r_expired],false,false,undefined,undefined,"0,1,2,3")))};var RewardsTable$1=Object.freeze({__proto__:null,default:RewardsTable_stories,RewardsTable:RewardsTable,RewardsTableSingle:RewardsTableSingle,RewardsTableLong:RewardsTableLong,RewardsTableEmpty:RewardsTableEmpty,RewardsTableLoading:RewardsTableLoading,CustomButtonTextTable:CustomButtonTextTable$1,ColumnsMobileHidden:ColumnsMobileHidden$1});var UseReferralTable_stories={title:"Hooks / useReferralTable"};function setupGraphQL$c(){var e="testestest";var t=e;window.widgetIdent={tenantAlias:"test_a8b41jotf8a1v",appDomain:"https://staging.referralsaasquatch.com"};useEffect((function(){setUserIdentity({accountId:t,id:e,jwt:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs"});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:e,accountId:t}}function setupGraphQLKlip$1(e){var t=e.token,n=e.id;var a=n;window.widgetIdent={tenantAlias:"test_a74miwdpofztj",appDomain:"https://staging.referralsaasquatch.com"};useEffect((function(){setUserIdentity({accountId:a,id:n,jwt:t});return function(){window.widgetIdent=undefined;setUserIdentity(undefined)}}),[]);return{id:n,accountId:a}}var ReferralTable$1=createHookStory((function(){setupGraphQL$c();setProgramId("sam-partner-test-2");return h("sqm-referral-table",null,h("sqm-referral-table-user-column",null),h("sqm-referral-table-status-column",null),h("sqm-referral-table-date-column",null),h("sqm-referral-table-rewards-column",null))}));var ReferralTableDemoHook=createHookStory((function(){return h("sqm-referral-table",null,h("sqm-referral-table-user-column",null),h("sqm-referral-table-status-column",null),h("sqm-referral-table-date-column",null),h("sqm-referral-table-rewards-column",null))}));var ReferralTableDemoHookShowReferrer=createHookStory((function(){return h("sqm-referral-table",{"show-referrer":"true"},h("sqm-referral-table-user-column",null),h("sqm-referral-table-status-column",null),h("sqm-referral-table-date-column",null),h("sqm-referral-table-rewards-column",null))}));var ReferralTableEn=createHookStory((function(){setupGraphQLKlip$1({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbWVuZ2xpc2giLCJpZCI6InNhbWVuZ2xpc2gifX0._6OTVF3gcipu_ibgthUNr5UHwC-2E_lhCENI5HpYvcw",id:"samenglish"});setProgramId("klip-referral-program");return h("sqm-referral-table",{"per-page":"4"},h("sqm-referral-table-user-column",{"column-title":"User"}),h("sqm-referral-table-status-column",{"column-title":"Referral Status"}),h("sqm-referral-table-rewards-column",null),h("sqm-referral-table-date-column",{"column-title":"Date Referred","date-shown":"dateReferralStarted"}))}));var ReferralTableTr=createHookStory((function(){setupGraphQLKlip$1({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbXR1cmtleSIsImlkIjoic2FtdHVya2V5In19.usSMe0RWg8W5FtwcvJayvAlxTw6vMxjTyWXaP8jI8_U",id:"samturkey"});setProgramId("klip-referral-program");return h("sqm-referral-table",{"more-label":"Daha","prev-label":"Öncesi","empty-state-text":"Henüz Ödül Yok","per-page":"4"},h("sqm-referral-table-user-column",{"column-title":"Kullanıcılar","anonymous-user":"Anonim Kullanıcı","deleted-user":"Silinmiş Kullanıcı"}),h("sqm-referral-table-status-column",{"column-title":"Durumu","converted-status-text":"Dönüştür","in-progress-status-text":"Devam etmekte"}),h("sqm-referral-table-rewards-column",{"column-title":"Ödüller","status-text":"{status, select, AVAILABLE {Mevcut} CANCELLED {İptal edildi} PENDING {Bekliyor} EXPIRED {Süresi doldu} REDEEMED {Kullanıldı} other {Müsait değil} }","status-long-text":"{status, select, AVAILABLE {Ödül süresi doluyor} CANCELLED {Ödül iptal edildi} PENDING {üzerinde mevcut} EXPIRED {Ödülün süresi doldu} other {Müsait değil} }","reward-received-text":"Ödül şu tarihte alındı:"}),h("sqm-referral-table-date-column",{"column-title":"Tarih","date-shown":"dateReferralStarted"}))}));var ReferralTableFr=createHookStory((function(){setupGraphQLKlip$1({token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InNhbWZyZW5jaCIsImlkIjoic2FtZnJlbmNoIn19.cwhasHpfU5MLV4vGbCQcazb6p19iSw5pD2zyrVHgePg",id:"samfrench"});setProgramId("klip-referral-program");return h("sqm-referral-table",{"more-label":"Plus","prev-label":"Précédent","empty-state-text":"Aucune Référence Maintenant","per-page":"4"},h("sqm-referral-table-user-column",{"column-title":"Utilisateur","anonymous-user":"Utilisateur Anonyme","deleted-user":"Utilisateur Supprimé"}),h("sqm-referral-table-status-column",{"column-title":"Statut de Parrainage","converted-status-text":"Converti","in-progress-status-text":"En cours"}),h("sqm-referral-table-rewards-column",{"column-title":"Récompenses","status-text":"{status, select, AVAILABLE {Disponible} CANCELLED {Annulé} PENDING {En attente} EXPIRED {Expiré} REDEEMED {Racheté} other {Indisponible} }","status-long-text":"{status, select, AVAILABLE {Récompense expirant sur} CANCELLED {Récompense annulée sur} PENDING {Disponible sur} EXPIRED {Récompense expirée sur} other {Indisponible} }","reward-received-text":"Récompense reçue"}),h("sqm-referral-table-date-column",{"column-title":"Date de Référence","date-shown":"dateReferralStarted"}))}));var UseReferralTable=Object.freeze({__proto__:null,default:UseReferralTable_stories,ReferralTable:ReferralTable$1,ReferralTableDemoHook:ReferralTableDemoHook,ReferralTableDemoHookShowReferrer:ReferralTableDemoHookShowReferrer,ReferralTableEn:ReferralTableEn,ReferralTableTr:ReferralTableTr,ReferralTableFr:ReferralTableFr});var scenario$t='@author:kutay\n@owner:kutay\nFeature: Hero Image\n\n\tThe Hero Image component displays media images with a header, description and button using an overlay or a double column layout to offer an attrative widget page.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Hero Image component\n\n\t@motivating\n\t@ui\n\tScenario: Overlay image displays header, description, and button with brand color\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "overlay" |\n\t\tThen they see their image\n\t\tAnd the image has no padding\n\t\tAnd it has a brand colour overlay\n\t\tAnd "Klip Rewards" is displayed over top of the image in xxx-large font\n\t\tAnd below "Refer friends or complete tasks while using Klip to earn rewards" is displayed over top of the image in x-large font\n\t\tAnd below they see a brand coloured button with text "Start earning"\n\t\tAnd the text section has xxx-large padding\n\t\tWhen the component is scaled down to 599px\n\t\tThen the image is scaled to fit content\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay image crop can be aligned left, center or right\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "overlay" |\n\t\t\t| image-pos | <value> |\n\t\tThen the image with overlay is displayed\n\t\tWhen the component is scaled down to 599px\n\t\tThen the image is <alignment> to fit content\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| left | left aligned |\n\t\t\t| center | centered |\n\t\t\t| right | right aligned |\n\t\t\t| N/A | centered |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay padding is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "overlay" |\n\t\t\t| padding-text | <value> |\n\t\tThen the image with overlay is displayed\n\t\tAnd <padding> is applied around header, description and button\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay color and background is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "overlay" |\n\t\t\t| text-color | <textColor> |\n\t\t\t| overlay-color | <overlayColor> |\n\t\t\t| overlay-opacity | <overlayOpacity> |\n\t\tThen the image with overlay is displayed\n\t\tAnd the overlay is <overlayColor>\n\t\tAnd the overlay has <overlayOpacity>\n\t\tAnd the text is <textColor>\n\t\tExamples:\n\t\t\t| textColor | overlayColor | overlayOpacity |\n\t\t\t| #fffc4b | #ff7f7f | 0.9 |\n\t\t\t| #1d0314 | #4baa1a | 0 |\n\t\t\t| #211a27 | #aa481a | 1 |\n\n\t@motivating\n\t@ui\n\tScenario: Two-column layout displays an image on one side and on the other side a header, description, and button\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "columns" |\n\t\tThen the image is displayed on the left\n\t\tAnd the following elements are displayed on the right\n\t\t\t| elements |\n\t\t\t| header |\n\t\t\t| description |\n\t\t\t| button |\n\t\tWhen the component is scaled down to 599px\n\t\tThen the two-column layout switches to a row layout\n\t\tAnd the image is displayed on top\n\t\tAnd the content is displayed below\n\n\t@motivating\n\t@ui\n\tScenario Outline: Image position is configurable for desktop and mobile\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "columns" |\n\t\t\t| image-pos | <imagePos> |\n\t\t\t| image-mobile-pos | <imageMobilePos> |\n\t\tThen the image is displayed on the <imagePos>\n\t\tWhen the component is scaled down to 599px\n\t\tThen two-column layout switches to a row layout\n\t\tAnd image is displayed on the <imageMobilePos>\n\t\tExamples:\n\t\t\t| imagePos | imageMobilePos |\n\t\t\t| left | top |\n\t\t\t| right | bottom |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Padding is configurable for the image and text of two column layouts\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "columns" |\n\t\t\t| padding-text | <paddingText> |\n\t\t\t| padding-image | <paddingImage> |\n\t\tThen the two column layout is displayed\n\t\tAnd the image has padding <paddingImage>\n\t\tAnd the text has padding <paddingText>\n\t\tExamples:\n\t\t\t| paddingText | paddingImage |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| none | none |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Two-column layout image division percentage is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000248/squatch-assets/MVgOJn7.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "columns" |\n\t\t\t| image-percentage | <percent> |\n\t\tThen the two column layout is displayed\n\t\tAnd the image takes up <percent> of the two-column layout\n\t\tAnd the text elements take up the remainder of the space\n\t\tExamples:\n\t\t\t| percent |\n\t\t\t| 25% |\n\t\t\t| 42% |\n\t\t\t| 66% |\n\n\t@motivating\n\t@ui\n\tScenario: Two-column layout text and background color is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | "https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png" |\n\t\t\t| header | "Klip Rewards" |\n\t\t\t| description | "Refer friends or complete tasks while using Klip to earn rewards" |\n\t\t\t| button-text | "Start earning" |\n\t\t\t| layout | "columns" |\n\t\t\t| text-color | <textColor> |\n\t\t\t| background-color | <backgroundColor> |\n\t\tThen the two column layout is displayed\n\t\tAnd the text has color <textColor>\n\t\tAnd the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| textColor | backgroundColor |\n\t\t\t| #fffc4b | #ff7f7f |\n\t\t\t| #1d0314 | #4baa1a |\n\t\t\t| #211a27 | #aa481a |';var HeroImage_stories={title:"Components/Hero Image",parameters:{scenario:scenario$t}};var OverlayHeader=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var OverlayDescription=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var OverlayButton=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var OverlayPadding=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"overlay","padding-image":"none","padding-text":"xxx-small"})};var OverlayLong=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","button-text":"Start earning",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var OverlayLeft=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"overlay","image-pos":"left","padding-image":"none","padding-text":"xxxx-large"})};var OverlayCenter=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"overlay","image-pos":"center","padding-image":"none","padding-text":"xxxx-large"})};var OverlayRight=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"overlay","image-pos":"right","padding-image":"none","padding-text":"xxxx-large"})};var OverlayCustomColors=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning","text-color":"#fffc4b","overlay-color":"#ff7f7f","overlay-opacity":"0.9",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var OverlayCustomOpacity=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning","text-color":"#fffc4b","overlay-color":"#ff7f7f","overlay-opacity":"0.3",layout:"overlay","padding-image":"none","padding-text":"xxxx-large"})};var Columns=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"columns","padding-image":"none","padding-text":"xxxx-large"})};var ColumnsPadding=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"columns","padding-image":"xxxx-large","padding-text":"large"})};var ColumnsLong=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png",header:"Klip Rewards",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","button-text":"Start earning",layout:"columns","padding-image":"none","padding-text":"xxxx-large"})};var ColumnsReverse=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"columns",imagePos:"right",imageMobilePos:"bottom","padding-image":"none","padding-text":"xxxx-large"})};var ColumnsCustomPercentage=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000248/squatch-assets/MVgOJn7.png",description:"Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!",layout:"columns","image-percentage":"33%","padding-image":"large","padding-text":"large","background-color":"#EFF8FE"})};var ColumnsCustomColors=function(){return h("sqm-hero-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png",header:"Klip Rewards",description:"Refer friends or complete tasks while using Klip to earn rewards","button-text":"Start earning",layout:"columns","text-color":"#fffc4b","background-color":"#ff7f7f","padding-image":"none","padding-text":"xxxx-large"})};var HeroImage=Object.freeze({__proto__:null,default:HeroImage_stories,OverlayHeader:OverlayHeader,OverlayDescription:OverlayDescription,OverlayButton:OverlayButton,OverlayPadding:OverlayPadding,OverlayLong:OverlayLong,OverlayLeft:OverlayLeft,OverlayCenter:OverlayCenter,OverlayRight:OverlayRight,OverlayCustomColors:OverlayCustomColors,OverlayCustomOpacity:OverlayCustomOpacity,Columns:Columns,ColumnsPadding:ColumnsPadding,ColumnsLong:ColumnsLong,ColumnsReverse:ColumnsReverse,ColumnsCustomPercentage:ColumnsCustomPercentage,ColumnsCustomColors:ColumnsCustomColors});var scenario$u='@author:kutay\n@owner:kutay\nFeature: Referral Card\n\n\tThe Referral Card component takes in two slots and displays them side by side.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Referral Card component\n\n\t@motivating\n\t@ui\n\tScenario: Referral Card component displays provided content in left and right slots side by side\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name "left"\n\t\tAnd a slot with the name "right"\n\t\tWhen the user views the referral card\n\t\tThen the slot contents are displayed the card with equal width\n\t\tWhen the component is scaled down to 499px\n\t\tThen the column layout switches to row layout\n\t\tAnd the "left" slot content is displayed above the "right" slot content\n\n\t@minutia\n\t@ui\n\tScenario: Left or right column content spans the whole card if there is no content in the other column\n\t\tGiven a Referral Card component\n\t\tAnd there content in one column\n\t\tAnd there is no content in the other column\n\t\tThen the column with content spans 100% of the card width\n\t\tAnd the column with content respects the container\'s padding\n\t\tAnd the column without content has zero width\n\n\t@motivating\n\t@ui\n\tScenario Outline: Referral Card component content can be vertically aligned start, center, end\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name "left"\n\t\tAnd a slot with the name "right"\n\t\tAnd the prop "vertical-alignment" has <value>\n\t\tThen slots contents are displayed inside the card\n\t\tAnd slots are vertically aligned to <alignment> of the card\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| start | the top |\n\t\t\t| center | the center |\n\t\t\t| end | the bottom |\n\t\t\t| N/A | the top |\n\n\t@ui\n\tScenario Outline: Container border can be toggled\n\t\tGiven a user is viewing the referral card component\n\t\tThen the default value for the prop "include-border" is "true"\n\t\tWhen "include-border" has <value>\n\t\tThen the referral card component\'s border <maybe> included\n\t\tExamples:\n\t\t\t| value | maybe |\n\t\t\t| true | is |\n\t\t\t| false | isn\'t |\n\t\t\t| empty (no value) | is |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Component background color can be customized\n\t\tGiven a user is viewing the Referral Card component\n\t\tThen the default value is "#ffffff"\n\t\tWhen the prop "background-color" has <value>\n\t\tThen the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| value | backgroundColor |\n\t\t\t| empty (default value) | var(--sl-color-neutral-0) (#ffffff) |\n\t\t\t| aquamarine | #7fffd4 |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Container padding can be customized\n\t\tGiven a user is looking at the component\n\t\tThen the default values for "padding-top", "padding-bottom", "padding-left", "padding-right" is "large"\n\t\tWhen prop "padding-top" has <value>\n\t\tThen <padding> is applied to content\n\t\tAnd the same applies to "padding-bottom", "padding-left", "padding-right"\n\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |';var ReferralCard_stories={title:"Components/Referral Card",parameters:{scenario:scenario$u}};var media=function(e){return h("sqm-portal-container",{gap:"large",slot:e},h("sqm-hero-image",{header:"Get rewarded when your friend uses Klip","image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000227/squatch-assets/IqB7GeS.png"}))};var sharebutton=function(e){return h("sqm-portal-container",{gap:"large",slot:e},h("sqm-text",null,"Choose how you want to share:"),h("sqm-text",null,h("sub",null,"Your unique referral link:"),h("sqm-share-code",null)),h("sqm-portal-container",{gap:"x-small"},h("sqm-share-button",{medium:"email"},"Share via email"),h("sqm-share-button",{medium:"facebook"},"Share on Facebook"),h("sqm-share-button",{medium:"twitter"},"Tweet about us")))};var timeline=function(e,t){return h("sqm-timeline",{slot:e,icon:"circle"},t>0&&h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),t>1&&h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"}),t>2&&h("sqm-timeline-entry",{reward:"$200",unit:"visa giftcard",desc:"Your friend qualifies as a good fit for Klip Team"}),t>3&&h("sqm-timeline-entry",{reward:"$1000",unit:"visa giftcard",desc:"Your friend purchases Klip Team"}))};var ImageAndShareButtons=function(){return h("sqm-referral-card",null,media("left"),sharebutton("right"))};var LimitWidth=function(){return h("sqm-referral-card",{limitWidth:true},media("left"),sharebutton("right"))};var TimelineAndShareButtons=function(){return h("sqm-referral-card",null,timeline("left",3),sharebutton("right"))};var StartAlignment=function(){return h("sqm-referral-card",{"vertical-alignment":"start"},timeline("left",4),sharebutton("right"))};var CenterAlignment=function(){return h("sqm-referral-card",{"vertical-alignment":"center"},timeline("left",4),sharebutton("right"))};var EndAlignment=function(){return h("sqm-referral-card",{"vertical-alignment":"end"},timeline("left",4),sharebutton("right"))};var FlippedSlots=function(){return h("sqm-referral-card",null,timeline("right",3),sharebutton("left"))};var NoLeft=function(){return h("sqm-referral-card",null,timeline("right",3))};var NoRight=function(){return h("sqm-referral-card",null,sharebutton("left"))};var WithHeader=function(){return h("sqm-referral-card",null,h("h3",{slot:"header"},"Header slot content"),timeline("right",3),sharebutton("left"))};var WithFooter=function(){return h("sqm-referral-card",null,timeline("right",3),sharebutton("left"),h("sqm-portal-footer",{slot:"footer"}))};var NoBorder=function(){return h("sqm-referral-card",{"hide-border":"true"},timeline("right",3),sharebutton("left"),h("sqm-portal-footer",{slot:"footer"}))};var BackgroundColor$1=function(){return h("sqm-referral-card",{"background-color":"aquamarine"},timeline("right",3),sharebutton("left"),h("sqm-portal-footer",{slot:"footer"}))};var ReferralCardGeneric=function(){return h("sqm-referral-card",{"vertical-alignment":"center"},h("sqm-portal-container",{slot:"left",gap:"x-small"},h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",color:"#333",textAlign:"center"}},"PLACEHOLDER")),h("sqm-portal-container",{slot:"right",gap:"x-small"},h("div",{style:{padding:"100px",border:"1px dashed black",background:"#eee",color:"#333",textAlign:"center"}},"PLACEHOLDER")))};var ReferralCard=Object.freeze({__proto__:null,default:ReferralCard_stories,ImageAndShareButtons:ImageAndShareButtons,LimitWidth:LimitWidth,TimelineAndShareButtons:TimelineAndShareButtons,StartAlignment:StartAlignment,CenterAlignment:CenterAlignment,EndAlignment:EndAlignment,FlippedSlots:FlippedSlots,NoLeft:NoLeft,NoRight:NoRight,WithHeader:WithHeader,WithFooter:WithFooter,NoBorder:NoBorder,BackgroundColor:BackgroundColor$1,ReferralCardGeneric:ReferralCardGeneric});var scenarioTimeline='@author:derek\n@owner:kutay\nFeature: Timeline\n\n @motivating\n @ui\n Scenario: The timeline adds lines between timeline entries\n Given a timeline\n And it has many timeline entries as children\n When a user views the timeline\n Then they see all timeline entries are connected by brand colour lines\n And see that the last entry does not have a line\n\n @motivating\n @ui\n Scenario Outline: The timeline can set the icons used by its timeline entries\n Given a timeline with "icon" <iconPropValue>\n And it has many timeline entries as children\n When a user views the timeline\n Then they see the timeline entries have a <icon>\n Examples:\n | iconPropValue | icon |\n | gift | gift icon |\n | gift | gift icon |\n | circle | brand colour circle |\n';var scenarioTimelineEntry='@author:derek\n@owner:kutay\nFeature: Timeline Entry\n\n @motivating\n @ui\n Scenario: Timeline entries have an icon, a reward and an entry desciption\n Given an timeline entry with the following props\n | prop | value |\n | unit | Visa Giftcard |\n | reward | 50$ |\n | desc | Earn a 50$ Visa Giftcard for each referral you make |\n When a user views the entry\n Then they see a gift icon\n And see "$50 VISA GIFTCARRD" to the right\n And "$50" is bolded with x-large font size\n And below they see "Earn a 50$ Visa Giftcard for each referral you make"\n\n @motivating\n @ui\n Scenario Outline: Icon can either be a gift or a brand colour cirle\n Given a timeline entry with "icon" <iconPropValue>\n When a user views the entry\n Then they see an <icon>\n Examples:\n | iconPropValue 1 | icon |\n | gift | gift |\n | circle | brand colour circle |\n | | gift |\n\n @motivating\n @ui\n Scenario: A timeline entry can display a line to connect it to another entry\n Given a timeline entry with "line" "true"\n When a user views the entry\n Then they see the entry\n But it has a brand colour line connecting it to the next timeline entry\n';var scenario$v=scenarioTimeline+scenarioTimelineEntry;var Timeline_stories={title:"Components/Timeline",parameters:{scenario:scenario$v}};var TimelineWith1Reward=function(){return h("div",null,h("sqm-timeline",null,h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"})),h("br",null)," ",h("hr",null)," ",h("br",null),h("sqm-timeline",{icon:"circle"},h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"})))};var TimelineWith2Rewards=function(){return h("div",null,h("sqm-timeline",null,h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"})),h("br",null)," ",h("hr",null)," ",h("br",null),h("sqm-timeline",{icon:"circle"},h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"})))};var TimelineWith3Rewards=function(){return h("div",null,h("sqm-timeline",null,h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"}),h("sqm-timeline-entry",{reward:"$200",unit:"visa giftcard",desc:"Your friend qualifies as a good fit for Klip Team"})),h("br",null)," ",h("hr",null)," ",h("br",null),h("sqm-timeline",{icon:"circle"},h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"}),h("sqm-timeline-entry",{reward:"$200",unit:"visa giftcard",desc:"Your friend qualifies as a good fit for Klip Team"})))};var TimelineWith4Rewards=function(){return h("div",null,h("sqm-timeline",null,h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"}),h("sqm-timeline-entry",{reward:"$200",unit:"visa giftcard",desc:"Your friend qualifies as a good fit for Klip Team"}),h("sqm-timeline-entry",{reward:"$1000",unit:"visa giftcard",desc:"Your friend purchases Klip Team"})),h("br",null)," ",h("hr",null)," ",h("br",null),h("sqm-timeline",{icon:"circle"},h("sqm-timeline-entry",{reward:"75",unit:"points",desc:"Your friends signs up for a free trial"}),h("sqm-timeline-entry",{reward:"$50",unit:"visa giftcard",desc:"Your friends signs up for Klip Personal"}),h("sqm-timeline-entry",{reward:"$200",unit:"visa giftcard",desc:"Your friend qualifies as a good fit for Klip Team"}),h("sqm-timeline-entry",{reward:"$1000",unit:"visa giftcard",desc:"Your friend purchases Klip Team"})))};var Timeline=Object.freeze({__proto__:null,default:Timeline_stories,TimelineWith1Reward:TimelineWith1Reward,TimelineWith2Rewards:TimelineWith2Rewards,TimelineWith3Rewards:TimelineWith3Rewards,TimelineWith4Rewards:TimelineWith4Rewards});var scenario$w='@author:kutay\n@owner:kutay\nFeature: Image\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the image component\n\n\t@motivating\n\t@ui\n\tScenario: Image is displayed from URL\n\t\tGiven an Image component\n\t\tAnd prop "image-url" is provided with a valid image url\n\t\tThen the image is displayed\n\t\tAnd it is centered\n\n\t@motivating\n\t@ui\n\tScenario Outline: Images can be aligned left, center or right\n\t\tGiven an Image component\n\t\tAnd prop "image-url" is provided with a valid image url\n\t\tAnd prop "align" has <value>\n\t\tThen the image is displayed\n\t\tAnd it is aligned to the <value>\n\t\tExamples:\n\t\t\t| value |\n\t\t\t| left |\n\t\t\t| center |\n\t\t\t| right |\n\n\t@motivating\n\t@ui\n\tScenario: Image background can be assigned a color\n\t\tGiven an Image component\n\t\tAnd prop "image-url" is provided with a valid image url\n\t\tAnd prop "background-color" is provided a color\n\t\tThen the image is displayed\n\t\tAnd the background is the provided color\n\n\t@motivating\n\t@ui\n\tScenario: Image minimum height can be constrained\n\t\tGiven an Image component\n\t\tAnd prop "image-url" is provided\n\t\tAnd prop "min-height" is given a minimum value\n\t\tThen the image is displayed\n\t\tAnd the container size changes\n\t\tThen the image does not shrink below its minimum height';var Image_stories={title:"Components/Image",parameters:{scenario:scenario$w}};var Image=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000259/squatch-assets/tn47wOj.png"})};var ImageAlignmentLeft=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000259/squatch-assets/tn47wOj.png",alignment:"left"})};var ImageAlignmentCenter=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000259/squatch-assets/tn47wOj.png",alignment:"center"})};var ImageAlignmentRight=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000259/squatch-assets/tn47wOj.png",alignment:"right"})};var ImageBackground=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000259/squatch-assets/tn47wOj.png","background-color":"firebrick",alignment:"center"})};var MinimumHeight=function(){return h("sqm-image",{"image-url":"https://res.cloudinary.com/saasquatch/image/upload/v1644000255/squatch-assets/oIiVdMM.jpg",minHeight:"192px"})};var Image$1=Object.freeze({__proto__:null,default:Image_stories,Image:Image,ImageAlignmentLeft:ImageAlignmentLeft,ImageAlignmentCenter:ImageAlignmentCenter,ImageAlignmentRight:ImageAlignmentRight,ImageBackground:ImageBackground,MinimumHeight:MinimumHeight});var scenario$x='@author:derek\n@owner:noah\nFeature: Titled Section\n\n Background: The titled section has a label and content\n Given a titled section\n And it has a label\n And it has content in the content slot\n\n @motivating\n @ui\n Scenario: Text alignment defaults to left align but can be configured\n Given the titled section has "text-align" <textAlignPropValue>\n When a user views the titled section\n Then the text in the label is <aligned>\n And the text in the content is <aligned>\n Examples:\n | textAlignPropValue | aligned |\n | center | center |\n | left | left |\n | right | right |\n | | left |\n\n @minutia\n @ui\n Scenario: Label margin is configurable\n Given the titled section has "label-margin" <marginPropValue>\n When a user views the titled section\n Then <marginPropValue> margin is between the label and content\n Examples:\n | marginPropValue | margin |\n | none | no |\n | xxx-small | xxx-small |\n | xx-small | xx-small |\n | x-small | x-small |\n | small | small |\n | medium | medium |\n | large | large |\n | x-large | x-large |\n | xx-large | xx-large |\n | xxx-large | xxx-large |\n | xxxx-large | xxxx-large |\n | | no |\n\n @minutia\n @ui\n Scenario Outline: Titled section padding is configurable\n Given the titled section has "padding" <paddingPropValue>\n When a user views the titled section\n Then <paddingPropValue> padding is applied around the titled section\n Examples:\n | paddingPropValue | padding |\n | none | no |\n | xxx-small | xxx-small |\n | xx-small | xx-small |\n | x-small | x-small |\n | small | small |\n | medium | medium |\n | large | large |\n | x-large | x-large |\n | xx-large | xx-large |\n | xxx-large | xxx-large |\n | xxxx-large | xxxx-large |\n | | no |';var TitledSection_stories={title:"Components/Titled Section",parameters:{scenario:scenario$x}};var AlignLeft=function(){return h("sqm-titled-section",{"text-align":"left"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America")))};var AlignCenter=function(){return h("sqm-titled-section",{"text-align":"center"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America")))};var AlignRight=function(){return h("sqm-titled-section",{"text-align":"right"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America")))};var Padding=function(){return h("div",null,h("h3",null,"None"),h("sqm-titled-section",{padding:"none"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxx-small"),h("sqm-titled-section",{padding:"xxx-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xx-small"),h("sqm-titled-section",{padding:"xx-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"x-small"),h("sqm-titled-section",{padding:"x-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"small"),h("sqm-titled-section",{padding:"small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"medium"),h("sqm-titled-section",{padding:"medium"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"large"),h("sqm-titled-section",{padding:"large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"x-large"),h("sqm-titled-section",{padding:"x-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xx-large"),h("sqm-titled-section",{padding:"xx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxx-large"),h("sqm-titled-section",{padding:"xxx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxxx-large"),h("sqm-titled-section",{padding:"xxxx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))))};var LabelMargin=function(){return h("div",null,h("h3",null,"None"),h("sqm-titled-section",{"label-margin":"none"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxx-small"),h("sqm-titled-section",{"label-margin":"xxx-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xx-small"),h("sqm-titled-section",{"label-margin":"xx-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"x-small"),h("sqm-titled-section",{"label-margin":"x-small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"small"),h("sqm-titled-section",{"label-margin":"small"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"medium"),h("sqm-titled-section",{"label-margin":"medium"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"large"),h("sqm-titled-section",{"label-margin":"large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"x-large"),h("sqm-titled-section",{"label-margin":"x-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xx-large"),h("sqm-titled-section",{"label-margin":"xx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxx-large"),h("sqm-titled-section",{"label-margin":"xxx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))),h("br",null),h("hr",null),h("br",null),h("h3",null,"xxxx-large"),h("sqm-titled-section",{"label-margin":"xxxx-large"},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards")),h("sqm-text",{slot:"content"},h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))))};var TitledSection=Object.freeze({__proto__:null,default:TitledSection_stories,AlignLeft:AlignLeft,AlignCenter:AlignCenter,AlignRight:AlignRight,Padding:Padding,LabelMargin:LabelMargin});var Scroll_stories={title:"Components/Scroll"};var ScrollTag=function(){return h("div",{style:{position:"relative",height:"2000px"}},h("sqm-scroll",{"scroll-tag-name":"sqm-text","button-text":"Scroll","scroll-animation":"smooth"}),h("div",{style:{position:"absolute",bottom:"0"}},h("sqm-text",{slot:"label"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))))};var ScrollId=function(){return h("div",{style:{position:"relative",height:"2000px"}},h("sqm-scroll",{"button-text":"Scroll","scroll-id":"my-id","scroll-animation":"smooth"}),h("div",{style:{position:"absolute",bottom:"0"}},h("sqm-text",{slot:"label",id:"my-id"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))))};var ScrollAutoAnimation=function(){return h("div",{style:{position:"relative",height:"2000px"}},h("sqm-scroll",{"button-text":"Scroll","scroll-id":"my-id","scroll-animation":"auto"}),h("div",{style:{position:"absolute",bottom:"0"}},h("sqm-text",{slot:"label",id:"my-id"},h("h3",null,"Earn more rewards"),h("p",null,"Get points while using Klip. Use those points to redeem rewards like one free month of Klip Enterprise or two plane tickets to anywhere in North America"))))};var ScrollTabGroup=function(){return h("div",{style:{position:"relative",height:"2000px"}},h("sqm-scroll",{"button-text":"Redeem rewards","scroll-id":"tab-3","scroll-animation":"smooth"}),h("div",{style:{position:"absolute",bottom:"0"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history"\n >\n <sqm-referral-table></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs>\n '}))};var ScrollTabGroupInner=function(){return h("div",{style:{position:"relative",height:"2000px"}},h("sqm-scroll",{"button-text":"Redeem rewards","scroll-tag-name":"sqm-reward-exchange-list"}),h("div",{style:{position:"absolute",bottom:"0"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history"\n >\n <sqm-referral-table></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs>\n '}))};var ShoelaceProps=function(){return h("div",null,h("div",{style:{display:"flex",gap:"60px"}},h("div",{style:{textAlign:"center"}},h("h3",null,"Type:"),h("sqm-scroll",{"button-type":"primary"},"Primary"),h("br",null),h("sqm-scroll",{"button-type":"success"},"Success"),h("br",null),h("sqm-scroll",{"button-type":"neutral"},"Neutral"),h("br",null),h("sqm-scroll",{"button-type":"warning"},"Warning"),h("br",null),h("sqm-scroll",{"button-type":"danger"},"Danger")),h("div",{style:{textAlign:"center"}},h("h3",null,"Outline:"),h("sqm-scroll",{outline:true,"button-type":"primary"},"Primary"),h("br",null),h("sqm-scroll",{outline:true,"button-type":"success"},"Success"),h("br",null),h("sqm-scroll",{outline:true,"button-type":"neutral"},"Neutral"),h("br",null),h("sqm-scroll",{outline:true,"button-type":"warning"},"Warning"),h("br",null),h("sqm-scroll",{outline:true,"button-type":"danger"},"Danger"))),h("br",null)," ",h("hr",null),h("h3",null,"Text:"),h("sqm-scroll",{"button-type":"text"},"Text"),h("br",null)," ",h("hr",null),h("h3",null,"Size:"),h("sqm-scroll",{size:"small"},"Small"),h("br",null),h("sqm-scroll",{size:"medium"},"Medium"),h("br",null),h("sqm-scroll",{size:"large"},"Large"),h("br",null)," ",h("hr",null),h("h3",null,"Pill:"),h("sqm-scroll",{pill:true},"Button"),h("br",null)," ",h("hr",null),h("h3",null,"Icon:"),h("sqm-scroll",{"button-type":"primary",iconName:"facebook"},"Icon Name"),h("br",null),h("sqm-scroll",{iconName:"gear",iconSlot:"prefix"},"Icon Slot Prefix"),h("br",null),h("sqm-scroll",{iconName:"gear",iconSlot:"suffix"},"Icon Slot Suffix"),h("br",null)," ",h("hr",null),h("h3",null,"Circle:"),h("sqm-scroll",{circle:true},"X"),h("br",null)," ",h("hr",null),h("h3",null,"Mobile Friendly:"),h("sqm-scroll",{mobile:true},"Button"),h("br",null)," ",h("hr",null))};var Scroll=Object.freeze({__proto__:null,default:Scroll_stories,ScrollTag:ScrollTag,ScrollId:ScrollId,ScrollAutoAnimation:ScrollAutoAnimation,ScrollTabGroup:ScrollTabGroup,ScrollTabGroupInner:ScrollTabGroupInner,ShoelaceProps:ShoelaceProps});var scenario$y='@author:Zach\n@owner:Zach\nFeature: Tabs\n\n The Tabs takes in the Tab component as children and maps through to display their header and content.\n\n Background: A user on the portal is viewing the widget\n Given a user viewing the Tabs component\n\n @motivating\n Scenario: Content inside the active tab is shown\n Given the header is set to <tabHeader>\n And the content inside is <tabContent>\n And the user has clicked <tabHeader>\n Then the <tabContent> is shown\n Examples:\n | tabHeader | tabContent |\n | Settings | This is the settings tab |\n | General | This is the general tab |\n | History | This is the history tab |\n\n @motivating\n @ui\n Scenario: The placement of the tabs is configurable\n Given The placement prop has been passed a valid <placement>\n Then tabs are placed on the <placementResult>\n Examples:\n | placement | placementResult |\n | | top of the content |\n | left | left hand side of the content |\n | right | right hand side of the content |\n | bottom | bottom of the content |\n\n\n @minutia\n @ui\n Scenario Outline: Tabs are setup to use the brand color\n Given the brand color is set to darkblue\n Then the text inside the active tab is darkblue\n And the underline of the active tab is darkblue\n\n @ui\n Scenario: Tabs are responsive\n Given the user is on a mobile device\n When there are more tabs than the horizontal space allows for\n Then clickable arrows appear on the left and right of the tabs\n And the tabs are scrollable\n\n @landmine\n Scenario: Program section cannot be used inside of tabs\n Given a tabs component\n And tab containing a program section with program-id "test123"\n And the program section wraps a component using program context\n When the tabs component is rendered\n Then the "sq:program-id" event listener for the program section is removed\n And the component does not use program-id "test123" to source its data\n And falls back to the global program id';var Tabs_stories={title:"Components/Tabs",parameters:{scenario:scenario$y}};var SimpleTabs=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="General">This is the general tab</sqm-tab>\n <sqm-tab header="Custom">This is the custom tab</sqm-tab>\n <sqm-tab header="Advanced">This is the advanced tab</sqm-tab>\n </sqm-tabs>\n '})};var ManyTabs=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="General">This is the general tab</sqm-tab>\n <sqm-tab header="Custom">This is the custom tab</sqm-tab>\n <sqm-tab header="Advanced">This is the advanced tab</sqm-tab> \n <sqm-tab header="General">This is the general tab</sqm-tab>\n <sqm-tab header="Custom">This is the custom tab</sqm-tab>\n <sqm-tab header="Advanced">This is the advanced tab</sqm-tab>\n <sqm-tab header="General">This is the general tab</sqm-tab>\n <sqm-tab header="Custom">This is the custom tab</sqm-tab>\n <sqm-tab header="Advanced">This is the advanced tab</sqm-tab>\n <sqm-tab header="General">This is the general tab</sqm-tab>\n <sqm-tab header="Custom">This is the custom tab</sqm-tab>\n <sqm-tab header="Advanced">This is the advanced tab</sqm-tab>\n </sqm-tabs>\n '})};var SingleTab=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs>\n '})};var ReferralProgram=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs>\n <sqm-tab header="Leaderboard">\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history">\n <sqm-referral-table>\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty\n ></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n ><sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty\n ></sqm-rewards-table>\n </sqm-tab>\n </sqm-tabs> \n '})};var LoyaltyProgram=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs placement="top">\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history">\n <sqm-referral-table>\n <sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty\n ></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n ><sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty\n ></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs> \n '})};var BottomTabs=function(){return h("div",{style:{maxWidth:"700px",margin:"auto"},innerHTML:'\n <sqm-tabs placement="bottom">\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history">\n <sqm-referral-table\n ><sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty\n ></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n ><sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty\n ></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs> \n '})};var LeftTabs=function(){return h("div",{style:{maxWidth:"900px",margin:"auto"},innerHTML:'\n <sqm-tabs placement="left">\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history">\n <sqm-referral-table\n ><sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty\n ></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n ><sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty\n ></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs> \n '})};var RightTabs=function(){return h("div",{style:{maxWidth:"900px",margin:"auto"},innerHTML:'\n <sqm-tabs placement="right">\n <sqm-tab header="Leaderboard">\n <sqm-hero-image\n image-url="https://i.imgur.com/MVgOJn7.png"\n description="Be one of the top 3 referrers at the end of the year and receive Klip free for 1 year!"\n layout="columns"\n image-percentage="33%"\n padding-image="large"\n padding-text="large"\n background-color=""\n ></sqm-hero-image>\n <sqm-leaderboard></sqm-leaderboard>\n </sqm-tab>\n <sqm-tab header="Referral history">\n <sqm-referral-table\n ><sqm-referral-table-user-column\n column-title="User"\n anonymous-user="Anonymous User"\n deleted-user="Deleted User"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title="Referral status"\n converted-status-text="Converted"\n in-progress-status-text="In Progress"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title="Rewards"\n expiring-text="Expiring in"\n fuel-tank-text="Your code is"\n pending-for-text="{status} for {date}"\n reward-received-text="Reward received on"\n status-long-text="{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }"\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title="Date referred"\n date-shown="dateReferralStarted"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png"\n empty-state-header="View your referral details"\n empty-state-text="Refer a friend to view the status of your referrals and rewards earned"\n >\n </sqm-empty\n ></sqm-referral-table>\n </sqm-tab>\n <sqm-tab header="Reward history">\n <sqm-rewards-table\n ><sqm-rewards-table-reward-column\n available-text="{availableAmount} remaining"\n column-title="Reward"\n copy-text="Copied!"\n redeemed-text="{redeemedAmount} redeemed"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user="Anonymous User"\n column-title="Source"\n deleted-user="Deleted User"\n referral-text="{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}"\n reward-exchange-text="Reward Exchange"\n reward-source-text="{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title="Status"\n expiry-text="Expires on "\n status-text="{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title="Date received"\n date-shown="dateGiven"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n empty-state-image="https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png"\n empty-state-header="View your rewards"\n empty-state-text="Refer friends and complete tasks to view the details of your rewards"\n >\n </sqm-empty\n ></sqm-rewards-table>\n </sqm-tab>\n <sqm-tab header="Redeem">\n <sqm-reward-exchange-list></sqm-reward-exchange-list>\n </sqm-tab>\n </sqm-tabs> \n '})};var Tabs=Object.freeze({__proto__:null,default:Tabs_stories,SimpleTabs:SimpleTabs,ManyTabs:ManyTabs,SingleTab:SingleTab,ReferralProgram:ReferralProgram,LoyaltyProgram:LoyaltyProgram,BottomTabs:BottomTabs,LeftTabs:LeftTabs,RightTabs:RightTabs});var scenario$z='@author:johan\n@owner:johan\nFeature: Share Code\n\n The share code component is a box that allows users to see and copy their referral code for a given program\n\n Background: Environment\n Given there is a valid program ID in the environment\n And there is a valid user ID and account ID in the environment\n\n @motivating\n Scenario: A Users referral code can be copied to their clipboard\n Given tooltiptext is "hello tooltip"\n When the component renders\n Then there is a textbox with the user\'s share code\n When the clipboard icon is clicked\n Then the code is copied to clipboard\n And a tooltip will appear for ~1 second\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip\'s lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip will appear for ~2 seconds\n\n @minutia\n Scenario: Demo\n Given isDemo() returns true\n Then the share code is "SHARECODE001"\n And the component won\'t be interactive\n And the tooltip is hidden\n\n @minutia\n Scenario: Program ID can be sourced from prop\n Given the programId prop is set to "program-a"\n And window.widgetIdent.programId is set to "program-b"\n When the component renders\n Then the share code is for "program-a"\n\n @minutia\n Scenario: Program ID can be sourced from window\n Given the programId prop is unset\n And window.widgetIdent.programId is set to "program-b"\n When the component renders\n Then the share code is for "program-b"\n\n @minutia\n Scenario: An analytic event is fired when a user copies their code\n Given a user viewing the share code component\n And the component is rendered for "program-a"\n When they click to copy their code\n Then an "USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT" analytic event is fired\n And it is for "program-a"\n And it has share medium "DIRECT"\n\n\n @ui\n Scenario Outline: user can edit the alignment of the share code text\n Given a user is editing the share code component\n Then they see "Align text" props\n And the default value is "left"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the share code component\n Then they see "Style" props\n And the default value is "icon"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n';var ShareCode_stories={title:"Components/Share Code",parameters:{scenario:scenario$z}};var ShareCode=function(){return h("sqm-share-code",{tooltiptext:"Copied to Clipboard"})};var CustomTooltipText=function(){return h("sqm-share-code",{tooltiptext:"CUSTOM TOOLTIP TEXT"})};var TextAlignCenter$1=function(){return h("sqm-share-code",{textAlign:"center"})};var TextAlignRight$1=function(){return h("sqm-share-code",{textAlign:"right"})};var CustomTooltipDuration=function(){return h("sqm-share-code",{tooltiplifespan:5e3,tooltiptext:"CUSTOM TOOLTIP TEXT"})};var CopyButton$1=function(){return h(CopyTextView,Object.assign({},{copyString:"https://noah.example.com",open:false,tooltiptext:"Copied!",isCopyIcon:false}))};var CopyButtonBelow$1=function(){return h(CopyTextView,Object.assign({},{copyString:"https://noah.example.com",open:false,tooltiptext:"Copied!",buttonStyle:"button-below"}))};var Error$7=function(){var e={copyString:"https://noah.example.com",disabled:true,open:true,tooltiptext:"Copied!",error:true};return h(CopyTextView,Object.assign({},e))};var ShareCode$1=Object.freeze({__proto__:null,default:ShareCode_stories,ShareCode:ShareCode,CustomTooltipText:CustomTooltipText,TextAlignCenter:TextAlignCenter$1,TextAlignRight:TextAlignRight$1,CustomTooltipDuration:CustomTooltipDuration,CopyButton:CopyButton$1,CopyButtonBelow:CopyButtonBelow$1,Error:Error$7});var EmailRegistration_stories={title:"Components/Email Registration",parameters:{}};var defaultProps$d={states:{error:"",loading:false},callbacks:{submit:function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return[2,t.sent()]}}))}))}},content:{invalidEmailErrorMessage:"Must be a valid email address",requiredFieldErrorMessage:"Cannot be empty",paddingTop:"large",paddingRight:"large",paddingBottom:"large",paddingLeft:"large",fraudErrorMessage:"Our team will review this referral. If approved, you and your friend will receive your rewards. Need help? Reach out to our Support team.",fraudErrorMessageTitle:"Looks like you tried referring yourself"}};var Default$e=function(){return h(EmailRegistrationView,Object.assign({},defaultProps$d))};var HasFirstNameLastName=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{content:__assign(__assign({},defaultProps$d.content),{includeName:true})})))};var WithSlots=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{content:__assign(__assign({},defaultProps$d.content),{topSlot:h("div",null,"Hello this is the top slot"),bottomSlot:h("div",null,"Hello this is the bottom slot")})})))};var NoBorder$1=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{content:__assign(__assign({},defaultProps$d.content),{hideBorder:true})})))};var BackgroundColor$2=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{content:__assign(__assign({},defaultProps$d.content),{backgroundColor:"aquamarine"})})))};var Loading$4=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{states:{error:"",loading:true}})))};var Error$8=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{states:{error:"Something went wrong. Please try again.",loading:false}})))};var FraudError=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{states:{error:"FRAUD",loading:false}})))};var EmptyEmailError=function(){return h(EmailRegistrationView,Object.assign({},__assign(__assign({},defaultProps$d),{states:{error:"Something went wrong. Please try again.",loading:false,registrationFormState:{validationErrors:{email:"Email cannot be empty"}}}})))};var EmailRegistration=Object.freeze({__proto__:null,default:EmailRegistration_stories,Default:Default$e,HasFirstNameLastName:HasFirstNameLastName,WithSlots:WithSlots,NoBorder:NoBorder$1,BackgroundColor:BackgroundColor$2,Loading:Loading$4,Error:Error$8,FraudError:FraudError,EmptyEmailError:EmptyEmailError});var scenario$A='@author:truman\n@owner:truman\nFeature: Coupon Code\n\n The coupon code component is a box that allows users to see and copy their coupon code for a given program\n\n @motivating\n Scenario: Component only fetches codes from current program\n Given a user has multiple rewards from various programs\n When the component is loaded\n Then it fetches the user\'s rewards from only the program associated with the widget\n\n @motivating\n Scenario: Component only looks at fueltank rewards\n Given a user has multiple rewards of different types\n When the component is loaded\n Then it filters the user\'s reward to only return FUELTANK rewards\n\n\n @motivating\n Scenario: The first (i.e. most recently received) reward is the reward that is displayed\n Given a user has at least one fueltank reward\n And the fueltank reward is available\n Then the coupon code component shows the first reward returned\n And this reward is the most recently received reward by the user\n\n @motivating\n Scenario Outline: Coupon code has multiple states depending on reward status\n Given a user has at least one fueltank reward\n And the reward has most recent status <status>\n And the dateScheduledFor field is <dateScheduledFor>\n Then the component\'s status is set to <componentStatus>\n And the <errorMessageTextProp> is displayed under the input field\n\n Examples:\n | status | dateScheduledFor | componentStatus | errorMessageTextProp |\n | AVAILABLE | null | AVAILABLE | N/A |\n | EXPIRED | null | EXPIRED | expiredErrorMessage |\n | REDEEMED | null | REDEEMED | redeemedMessage |\n | CANCELLED | null | CANCELLED | cancelledErrorMessage |\n | PENDING | null | EMPTY_TANK | fullfillmentErrorMessage |\n | PENDING | 123412341234 | PENDING | pendingErrorMessage |\n | null | null | ERROR | genericErrorMessage |\n\n Scenario Outline: Coupon code\'s error message text props are grouped\n Given an end user is viewing the coupon code component in the widget editor\n And they are looking at the component\'s properties\n Then they see <prop>\n And <prop> is grouped under "Coupon code error"\n Examples:\n | prop |\n | N/A |\n | expiredErrorMessage |\n | redeemedMessage |\n | cancelledErrorMessage |\n | fullfillmentErrorMessage |\n | pendingErrorMessage |\n | genericErrorMessage |\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip\'s lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip appears for ~2 seconds\n\n @ui\n Scenario: Component shows an error state when there is an error\n Given a user is viewing the coupon code component\n When there is an error in the coupon code\n Then in place of the coupon code is an alert banner\n And the alert banner gives information about the error to the user\n\n @ui\n Scenario: Component shows an loading state\n Given a user is viewing the coupon code component\n When the coupon code is loading in\n Then the text inside the input is "Loading..."\n And the coupon code input box has a gray background\n And the cursor is set to "default"\n And the user cannot copy the text\n\n @ui\n Scenario Outline: User can edit the alignment of the coupon code text\n Given a user is editing the coupon code component\n Then they see "Align text" props\n And the default value is "left"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the coupon code component\n Then they see "Style" props\n And the default value is "icon"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n\n @minutia\n Scenario: ICU string converts to a date\n Given a user is viewing a live coupon code code component\n And the "pendingErrorText" has the "{unpendDate}" ICU string\n And the program is configured for rewards to be pending\n Then the user will see an info alert banner\n And the ICU string is converted to the unpend date\n';var CouponCode_stories={title:"Components/Coupon Code",parameters:{scenario:scenario$A}};var defaultProps$e={tooltiptext:"Copied to Clipboard",copyString:"THANKSJANE125uv125",open:false,copyButtonLabel:"Copy Coupon",inputPlaceholderText:"CODE ERROR",couponCodeLabel:"Your coupon code:",error:false};var CouponCode=function(){return h("sqm-coupon-code",{tooltiptext:"Copied to Clipboard"})};var CustomTooltipText$1=function(){return h("sqm-coupon-code",{tooltiptext:"CUSTOM TOOLTIP TEXT"})};var CustomTooltipDuration$1=function(){return h("sqm-coupon-code",{tooltiplifespan:5e3,tooltiptext:"CUSTOM TOOLTIP TEXT"})};var TextAlignCenter$2=function(){return h("sqm-coupon-code",{textAlign:"center"})};var TextAlignRight$2=function(){return h("sqm-coupon-code",{textAlign:"right"})};var CopyButton$2=function(){return h("sqm-coupon-code",Object.assign({},defaultProps$e,{buttonStyle:"button-outside"}))};var CopyButtonCustomLabel=function(){return h("sqm-coupon-code",Object.assign({},defaultProps$e,{buttonStyle:"button-outside","copy-button-label":"test long custom label"}))};var CopyButtonBelow$2=function(){return h("sqm-coupon-code",Object.assign({},defaultProps$e,{buttonStyle:"button-below"}))};var CopyButtonBelowCustomLabel=function(){return h("sqm-coupon-code",Object.assign({},defaultProps$e,{buttonStyle:"button-below","copy-button-label":"test long custom label"}))};var Loading$5=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{loading:true}))};var CopyButtonLoading=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{buttonStyle:"button-outside",loading:true}))};var CopyButtonBelowLoading=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{buttonStyle:"button-below",loading:true}))};var ErrorGeneric=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"warning",error:true,errorText:"We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue."}))};var ErrorPending=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"info",error:true,errorText:"Your code will be available on April 24, 2023. Mark your calendar and come back then to redeem your reward!"}))};var ErrorFullfillment=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"warning",error:true,errorText:"We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue."}))};var ErrorCancelled=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"warning",error:true,errorText:"This code has been cancelled. Please reach out to the Support team for help resolving this issue."}))};var ErrorExpired=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"warning",error:true,errorText:"Looks like this code has expired. Please reach out to the Support team for help resolving this issue."}))};var ErrorRedeemed=function(){return h(CouponCodeView,Object.assign({},defaultProps$e,{errorType:"success",error:true,errorText:"Looks like you’ve already redeemed this code."}))};var CouponCode$1=Object.freeze({__proto__:null,default:CouponCode_stories,CouponCode:CouponCode,CustomTooltipText:CustomTooltipText$1,CustomTooltipDuration:CustomTooltipDuration$1,TextAlignCenter:TextAlignCenter$2,TextAlignRight:TextAlignRight$2,CopyButton:CopyButton$2,CopyButtonCustomLabel:CopyButtonCustomLabel,CopyButtonBelow:CopyButtonBelow$2,CopyButtonBelowCustomLabel:CopyButtonBelowCustomLabel,Loading:Loading$5,CopyButtonLoading:CopyButtonLoading,CopyButtonBelowLoading:CopyButtonBelowLoading,ErrorGeneric:ErrorGeneric,ErrorPending:ErrorPending,ErrorFullfillment:ErrorFullfillment,ErrorCancelled:ErrorCancelled,ErrorExpired:ErrorExpired,ErrorRedeemed:ErrorRedeemed});var scenario$B='@author:noah\n@owner:noah\n\nFeature: Logout Current User\n\n Background:\n Given a user viewing an instant access widget\n\n @motivating\n @ui\n Scenario: A user on an instant access widget\n Given the user is identified\n And the user is logged in\n Then the component identifies the user by displaying their email in an ICU string\n And the users email displayed in the ICU string using hte "{email}" variable\n\n @motivating\n @ui\n Scenario: Users can switch who they are identified as through a link\n Given the user is identified\n And the user is logged in\n When the user clicks the link in the component\n Then the saved user identity is emptied\n And they are sent back to the registration form to re-identify themselves\n\n @minutia\n Scenario: Logout link empties the saved User Identity\n Given a valid user identity\n And the user is viewing the "logged-in" template\n When they click the logout link\n Then the user identity is set to "undefined"\n And the user is returned to the "logged-out" template';var LogoutCurrentUser_stories={title:"Components/Logout Current User",parameters:{scenario:scenario$B}};var defaultProps$f={filledInEmailText:"Currently showing referral data for noah.clarke@saasquatch.com",onSwitchClick:function(){return console.log("clicked")},switchUserText:"not you?",loading:false,emailErrorText:"Error fetching email"};var Default$f=function(){return h(LogoutCurrentUserView,Object.assign({},defaultProps$f))};var LogoutCurrentUser=Object.freeze({__proto__:null,default:LogoutCurrentUser_stories,Default:Default$f});var scenario$C='@author:noah\n@owner:noah\n\nFeature: Link Button\n\n\t@ui\n\tScenario: Links can be opened in the same tab\n\t\tWhen a user clicks the button\n\t\tThen a link opens in the same tab\n\t\tAnd if the component is in an iFrame then the link is opened in the parent window not the iFrame\n\n\t@ui\n\tScenario: Links can be opened in a new tab\n\t\tWhen a user clicks the button\n\t\tThen a link opens in a new tab\n\t\tAnd if the component is in an iFrame then the link is still opened in a new tab\n\n\n\t@ui\n\tScenario: Props control the link and button text\n\t\tGiven the "link" prop is set to "https://www.example.com"\n\t\tAnd the "buttonText" prop is set to "Click me!"\n\t\tThen a button is shown with the text "Click me!"\n\t\tAnd when clicked the button opens https://www.example.com\n\n\t@ui\n\tScenario Outline: The button type can be set\n\t\tGiven the button type is set to <value>\n\t\tThen a <buttonType> is shown\n\t\tExamples:\n\t\t\t| value | buttonType |\n\t\t\t| <null> | primary |\n\t\t\t| default | default |\n\t\t\t| primary | primary |\n\t\t\t| success | success |\n\t\t\t| neutral | neutral |\n\t\t\t| warning | warning |\n\t\t\t| danger | danger |';var LinkButton_stories={title:"Components/Link Button",parameters:{scenario:scenario$C}};var defaultProps$g={link:"https://example.com",openInNewTab:false,buttonText:"Button Text"};var Default$g=function(){return h("sqm-link-button",Object.assign({},defaultProps$g))};var OpenInNewTab=function(){return h("sqm-link-button",Object.assign({},__assign(__assign({},defaultProps$g),{openInNewTab:true})))};var LinkButton=Object.freeze({__proto__:null,default:LinkButton_stories,Default:Default$g,OpenInNewTab:OpenInNewTab});var CloseButton_stories={title:"Components/Close Button",parameters:{}};var defaultProps$h={};var containerStyles={position:"relative",width:"500px",height:"500px",border:"1px solid black",padding:"25px"};var Default$h=function(){return h(CloseButtonView,Object.assign({},defaultProps$h))};var InAContainer=function(){return h("div",{style:containerStyles},h(CloseButtonView,Object.assign({},defaultProps$h)))};var CustomColor$1=function(){return h("div",{style:containerStyles},h(CloseButtonView,Object.assign({},__assign(__assign({},defaultProps$h),{color:"blue"}))))};var CloseButton=Object.freeze({__proto__:null,default:CloseButton_stories,Default:Default$h,InAContainer:InAContainer,CustomColor:CustomColor$1});var Default$i="\n // No CSS\n";var Orangey="\n:root{\n "+autoColorScaleCss("orange")+"\n}\n";var Netflix="\n:root{\n "+autoColorScaleCss("#e50914")+"\n}\n";var SaaSquatchCorporate="\n:root{\n "+autoColorScaleCss("#65bd60")+"\n --sl-font-sans: Arial;\n}\n";var NYTimes="\n:root{\n "+autoColorScaleCss("black")+"\n --sl-font-sans: Georgia, 'Times New Roman', serif;\n}\n";var Klip="\n:root{\n "+autoColorScaleCss("#4225C4")+";\n}\n\n";var Themes=Object.freeze({__proto__:null,Default:Default$i,Orangey:Orangey,Netflix:Netflix,SaaSquatchCorporate:SaaSquatchCorporate,NYTimes:NYTimes,Klip:Klip});function deepFreeze(e){if(e instanceof Map){e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}}else if(e instanceof Set){e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}}Object.freeze(e);Object.getOwnPropertyNames(e).forEach((function(t){var n=e[t];if(typeof n=="object"&&!Object.isFrozen(n)){deepFreeze(n)}}));return e}var deepFreezeEs6=deepFreeze;var _default=deepFreeze;deepFreezeEs6.default=_default;var Response=function(){function e(e){if(e.data===undefined)e.data={};this.data=e.data;this.isMatchIgnored=false}e.prototype.ignoreMatch=function(){this.isMatchIgnored=true};return e}();function escapeHTML(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function inherit(e){var t=[];for(var n=1;n<arguments.length;n++){t[n-1]=arguments[n]}var a=Object.create(null);for(var r in e){a[r]=e[r]}t.forEach((function(e){for(var t in e){a[t]=e[t]}}));return a}var SPAN_CLOSE="</span>";var emitsWrappingTags=function(e){return!!e.kind};var HTMLRenderer=function(){function e(e,t){this.buffer="";this.classPrefix=t.classPrefix;e.walk(this)}e.prototype.addText=function(e){this.buffer+=escapeHTML(e)};e.prototype.openNode=function(e){if(!emitsWrappingTags(e))return;var t=e.kind;if(!e.sublanguage){t=""+this.classPrefix+t}this.span(t)};e.prototype.closeNode=function(e){if(!emitsWrappingTags(e))return;this.buffer+=SPAN_CLOSE};e.prototype.value=function(){return this.buffer};e.prototype.span=function(e){this.buffer+='<span class="'+e+'">'};return e}();var TokenTree=function(){function e(){this.rootNode={children:[]};this.stack=[this.rootNode]}Object.defineProperty(e.prototype,"top",{get:function(){return this.stack[this.stack.length-1]},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"root",{get:function(){return this.rootNode},enumerable:false,configurable:true});e.prototype.add=function(e){this.top.children.push(e)};e.prototype.openNode=function(e){var t={kind:e,children:[]};this.add(t);this.stack.push(t)};e.prototype.closeNode=function(){if(this.stack.length>1){return this.stack.pop()}return undefined};e.prototype.closeAllNodes=function(){while(this.closeNode());};e.prototype.toJSON=function(){return JSON.stringify(this.rootNode,null,4)};e.prototype.walk=function(e){return this.constructor._walk(e,this.rootNode)};e._walk=function(e,t){var n=this;if(typeof t==="string"){e.addText(t)}else if(t.children){e.openNode(t);t.children.forEach((function(t){return n._walk(e,t)}));e.closeNode(t)}return e};e._collapse=function(t){if(typeof t==="string")return;if(!t.children)return;if(t.children.every((function(e){return typeof e==="string"}))){t.children=[t.children.join("")]}else{t.children.forEach((function(t){e._collapse(t)}))}};return e}();var TokenTreeEmitter=function(e){__extends(t,e);function t(t){var n=e.call(this)||this;n.options=t;return n}t.prototype.addKeyword=function(e,t){if(e===""){return}this.openNode(t);this.addText(e);this.closeNode()};t.prototype.addText=function(e){if(e===""){return}this.add(e)};t.prototype.addSublanguage=function(e,t){var n=e.root;n.kind=t;n.sublanguage=true;this.add(n)};t.prototype.toHTML=function(){var e=new HTMLRenderer(this,this.options);return e.value()};t.prototype.finalize=function(){return true};return t}(TokenTree);function escape(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function source(e){if(!e)return null;if(typeof e==="string")return e;return e.source}function concat(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}var n=e.map((function(e){return source(e)})).join("");return n}function either(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}var n="("+e.map((function(e){return source(e)})).join("|")+")";return n}function countMatchGroups(e){return new RegExp(e.toString()+"|").exec("").length-1}function startsWith(e,t){var n=e&&e.exec(t);return n&&n.index===0}var BACKREF_RE=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function join(e,t){if(t===void 0){t="|"}var n=0;return e.map((function(e){n+=1;var t=n;var a=source(e);var r="";while(a.length>0){var s=BACKREF_RE.exec(a);if(!s){r+=a;break}r+=a.substring(0,s.index);a=a.substring(s.index+s[0].length);if(s[0][0]==="\\"&&s[1]){r+="\\"+String(Number(s[1])+t)}else{r+=s[0];if(s[0]==="("){n++}}}return r})).map((function(e){return"("+e+")"})).join(t)}var MATCH_NOTHING_RE=/\b\B/;var IDENT_RE="[a-zA-Z]\\w*";var UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*";var NUMBER_RE="\\b\\d+(\\.\\d+)?";var C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";var BINARY_NUMBER_RE="\\b(0b[01]+)";var RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";var SHEBANG=function(e){if(e===void 0){e={}}var t=/^#![ ]*\//;if(e.binary){e.begin=concat(t,/.*\b/,e.binary,/\b.*/)}return inherit({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":function(e,t){if(e.index!==0)t.ignoreMatch()}},e)};var BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0};var APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[BACKSLASH_ESCAPE]};var QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[BACKSLASH_ESCAPE]};var PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/};var COMMENT=function(e,t,n){if(n===void 0){n={}}var a=inherit({className:"comment",begin:e,end:t,contains:[]},n);a.contains.push(PHRASAL_WORDS_MODE);a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0});return a};var C_LINE_COMMENT_MODE=COMMENT("//","$");var C_BLOCK_COMMENT_MODE=COMMENT("/\\*","\\*/");var HASH_COMMENT_MODE=COMMENT("#","$");var NUMBER_MODE={className:"number",begin:NUMBER_RE,relevance:0};var C_NUMBER_MODE={className:"number",begin:C_NUMBER_RE,relevance:0};var BINARY_NUMBER_MODE={className:"number",begin:BINARY_NUMBER_RE,relevance:0};var CSS_NUMBER_MODE={className:"number",begin:NUMBER_RE+"("+"%|em|ex|ch|rem"+"|vw|vh|vmin|vmax"+"|cm|mm|in|pt|pc|px"+"|deg|grad|rad|turn"+"|s|ms"+"|Hz|kHz"+"|dpi|dpcm|dppx"+")?",relevance:0};var REGEXP_MODE={begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[BACKSLASH_ESCAPE]}]}]};var TITLE_MODE={className:"title",begin:IDENT_RE,relevance:0};var UNDERSCORE_TITLE_MODE={className:"title",begin:UNDERSCORE_IDENT_RE,relevance:0};var METHOD_GUARD={begin:"\\.\\s*"+UNDERSCORE_IDENT_RE,relevance:0};var END_SAME_AS_BEGIN=function(e){return Object.assign(e,{"on:begin":function(e,t){t.data._beginMatch=e[1]},"on:end":function(e,t){if(t.data._beginMatch!==e[1])t.ignoreMatch()}})};var MODES=Object.freeze({__proto__:null,MATCH_NOTHING_RE:MATCH_NOTHING_RE,IDENT_RE:IDENT_RE,UNDERSCORE_IDENT_RE:UNDERSCORE_IDENT_RE,NUMBER_RE:NUMBER_RE,C_NUMBER_RE:C_NUMBER_RE,BINARY_NUMBER_RE:BINARY_NUMBER_RE,RE_STARTERS_RE:RE_STARTERS_RE,SHEBANG:SHEBANG,BACKSLASH_ESCAPE:BACKSLASH_ESCAPE,APOS_STRING_MODE:APOS_STRING_MODE,QUOTE_STRING_MODE:QUOTE_STRING_MODE,PHRASAL_WORDS_MODE:PHRASAL_WORDS_MODE,COMMENT:COMMENT,C_LINE_COMMENT_MODE:C_LINE_COMMENT_MODE,C_BLOCK_COMMENT_MODE:C_BLOCK_COMMENT_MODE,HASH_COMMENT_MODE:HASH_COMMENT_MODE,NUMBER_MODE:NUMBER_MODE,C_NUMBER_MODE:C_NUMBER_MODE,BINARY_NUMBER_MODE:BINARY_NUMBER_MODE,CSS_NUMBER_MODE:CSS_NUMBER_MODE,REGEXP_MODE:REGEXP_MODE,TITLE_MODE:TITLE_MODE,UNDERSCORE_TITLE_MODE:UNDERSCORE_TITLE_MODE,METHOD_GUARD:METHOD_GUARD,END_SAME_AS_BEGIN:END_SAME_AS_BEGIN});function skipIfhasPrecedingDot(e,t){var n=e.input[e.index-1];if(n==="."){t.ignoreMatch()}}function beginKeywords(e,t){if(!t)return;if(!e.beginKeywords)return;e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)";e.__beforeBegin=skipIfhasPrecedingDot;e.keywords=e.keywords||e.beginKeywords;delete e.beginKeywords;if(e.relevance===undefined)e.relevance=0}function compileIllegal(e,t){if(!Array.isArray(e.illegal))return;e.illegal=either.apply(void 0,e.illegal)}function compileMatch(e,t){if(!e.match)return;if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match;delete e.match}function compileRelevance(e,t){if(e.relevance===undefined)e.relevance=1}var COMMON_KEYWORDS=["of","and","for","in","not","or","if","then","parent","list","value"];var DEFAULT_KEYWORD_CLASSNAME="keyword";function compileKeywords(e,t,n){if(n===void 0){n=DEFAULT_KEYWORD_CLASSNAME}var a={};if(typeof e==="string"){r(n,e.split(" "))}else if(Array.isArray(e)){r(n,e)}else{Object.keys(e).forEach((function(n){Object.assign(a,compileKeywords(e[n],t,n))}))}return a;function r(e,n){if(t){n=n.map((function(e){return e.toLowerCase()}))}n.forEach((function(t){var n=t.split("|");a[n[0]]=[e,scoreForKeyword(n[0],n[1])]}))}}function scoreForKeyword(e,t){if(t){return Number(t)}return commonKeyword(e)?0:1}function commonKeyword(e){return COMMON_KEYWORDS.includes(e.toLowerCase())}function compileLanguage(e,t){var n=t.plugins;function a(t,n){return new RegExp(source(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}var r=function(){function e(){this.matchIndexes={};this.regexes=[];this.matchAt=1;this.position=0}e.prototype.addRule=function(e,t){t.position=this.position++;this.matchIndexes[this.matchAt]=t;this.regexes.push([t,e]);this.matchAt+=countMatchGroups(e)+1};e.prototype.compile=function(){if(this.regexes.length===0){this.exec=function(){return null}}var e=this.regexes.map((function(e){return e[1]}));this.matcherRe=a(join(e),true);this.lastIndex=0};e.prototype.exec=function(e){this.matcherRe.lastIndex=this.lastIndex;var t=this.matcherRe.exec(e);if(!t){return null}var n=t.findIndex((function(e,t){return t>0&&e!==undefined}));var a=this.matchIndexes[n];t.splice(0,n);return Object.assign(t,a)};return e}();var s=function(){function e(){this.rules=[];this.multiRegexes=[];this.count=0;this.lastIndex=0;this.regexIndex=0}e.prototype.getMatcher=function(e){if(this.multiRegexes[e])return this.multiRegexes[e];var t=new r;this.rules.slice(e).forEach((function(e){var n=e[0],a=e[1];return t.addRule(n,a)}));t.compile();this.multiRegexes[e]=t;return t};e.prototype.resumingScanAtSamePosition=function(){return this.regexIndex!==0};e.prototype.considerAll=function(){this.regexIndex=0};e.prototype.addRule=function(e,t){this.rules.push([e,t]);if(t.type==="begin")this.count++};e.prototype.exec=function(e){var t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;var n=t.exec(e);if(this.resumingScanAtSamePosition()){if(n&&n.index===this.lastIndex);else{var a=this.getMatcher(0);a.lastIndex=this.lastIndex+1;n=a.exec(e)}}if(n){this.regexIndex+=n.position+1;if(this.regexIndex===this.count){this.considerAll()}}return n};return e}();function i(e){var t=new s;e.contains.forEach((function(e){return t.addRule(e.begin,{rule:e,type:"begin"})}));if(e.terminatorEnd){t.addRule(e.terminatorEnd,{type:"end"})}if(e.illegal){t.addRule(e.illegal,{type:"illegal"})}return t}function o(t,n){var r=t;if(t.isCompiled)return r;[compileMatch].forEach((function(e){return e(t,n)}));e.compilerExtensions.forEach((function(e){return e(t,n)}));t.__beforeBegin=null;[beginKeywords,compileIllegal,compileRelevance].forEach((function(e){return e(t,n)}));t.isCompiled=true;var s=null;if(typeof t.keywords==="object"){s=t.keywords.$pattern;delete t.keywords.$pattern}if(t.keywords){t.keywords=compileKeywords(t.keywords,e.case_insensitive)}if(t.lexemes&&s){throw new Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ")}s=s||t.lexemes||/\w+/;r.keywordPatternRe=a(s,true);if(n){if(!t.begin)t.begin=/\B|\b/;r.beginRe=a(t.begin);if(t.endSameAsBegin)t.end=t.begin;if(!t.end&&!t.endsWithParent)t.end=/\B|\b/;if(t.end)r.endRe=a(t.end);r.terminatorEnd=source(t.end)||"";if(t.endsWithParent&&n.terminatorEnd){r.terminatorEnd+=(t.end?"|":"")+n.terminatorEnd}}if(t.illegal)r.illegalRe=a(t.illegal);if(!t.contains)t.contains=[];t.contains=[].concat.apply([],t.contains.map((function(e){return expandOrCloneMode(e==="self"?t:e)})));t.contains.forEach((function(e){o(e,r)}));if(t.starts){o(t.starts,n)}r.matcher=i(r);return r}if(!e.compilerExtensions)e.compilerExtensions=[];if(e.contains&&e.contains.includes("self")){throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.")}e.classNameAliases=inherit(e.classNameAliases||{});return o(e)}function dependencyOnParent(e){if(!e)return false;return e.endsWithParent||dependencyOnParent(e.starts)}function expandOrCloneMode(e){if(e.variants&&!e.cachedVariants){e.cachedVariants=e.variants.map((function(t){return inherit(e,{variants:null},t)}))}if(e.cachedVariants){return e.cachedVariants}if(dependencyOnParent(e)){return inherit(e,{starts:e.starts?inherit(e.starts):null})}if(Object.isFrozen(e)){return inherit(e)}return e}var version="10.7.3";function hasValueOrEmptyAttribute(e){return Boolean(e||e==="")}function BuildVuePlugin(e){var t={props:["language","code","autodetect"],data:function(){return{detectedLanguage:"",unknownLanguage:false}},computed:{className:function(){if(this.unknownLanguage)return"";return"hljs "+this.detectedLanguage},highlighted:function(){if(!this.autoDetect&&!e.getLanguage(this.language)){console.warn('The language "'+this.language+'" you specified could not be found.');this.unknownLanguage=true;return escapeHTML(this.code)}var t={};if(this.autoDetect){t=e.highlightAuto(this.code);this.detectedLanguage=t.language}else{t=e.highlight(this.language,this.code,this.ignoreIllegals);this.detectedLanguage=this.language}return t.value},autoDetect:function(){return!this.language||hasValueOrEmptyAttribute(this.autodetect)},ignoreIllegals:function(){return true}},render:function(e){return e("pre",{},[e("code",{class:this.className,domProps:{innerHTML:this.highlighted}})])}};var n={install:function(e){e.component("highlightjs",t)}};return{Component:t,VuePlugin:n}}var mergeHTMLPlugin={"after:highlightElement":function(e){var t=e.el,n=e.result,a=e.text;var r=nodeStream(t);if(!r.length)return;var s=document.createElement("div");s.innerHTML=n.value;n.value=mergeStreams(r,nodeStream(s),a)}};function tag(e){return e.nodeName.toLowerCase()}function nodeStream(e){var t=[];(function e(n,a){for(var r=n.firstChild;r;r=r.nextSibling){if(r.nodeType===3){a+=r.nodeValue.length}else if(r.nodeType===1){t.push({event:"start",offset:a,node:r});a=e(r,a);if(!tag(r).match(/br|hr|img|input/)){t.push({event:"stop",offset:a,node:r})}}}return a})(e,0);return t}function mergeStreams(e,t,n){var a=0;var r="";var s=[];function i(){if(!e.length||!t.length){return e.length?e:t}if(e[0].offset!==t[0].offset){return e[0].offset<t[0].offset?e:t}return t[0].event==="start"?e:t}function o(e){function t(e){return" "+e.nodeName+'="'+escapeHTML(e.value)+'"'}r+="<"+tag(e)+[].map.call(e.attributes,t).join("")+">"}function l(e){r+="</"+tag(e)+">"}function d(e){(e.event==="start"?o:l)(e.node)}while(e.length||t.length){var u=i();r+=escapeHTML(n.substring(a,u[0].offset));a=u[0].offset;if(u===e){s.reverse().forEach(l);do{d(u.splice(0,1)[0]);u=i()}while(u===e&&u.length&&u[0].offset===a);s.reverse().forEach(o)}else{if(u[0].event==="start"){s.push(u[0].node)}else{s.pop()}d(u.splice(0,1)[0])}}return r+escapeHTML(n.substr(a))}var seenDeprecations={};var error=function(e){console.error(e)};var warn=function(e){var t=[];for(var n=1;n<arguments.length;n++){t[n-1]=arguments[n]}console.log.apply(console,__spreadArrays(["WARN: "+e],t))};var deprecated=function(e,t){if(seenDeprecations[e+"/"+t])return;console.log("Deprecated as of "+e+". "+t);seenDeprecations[e+"/"+t]=true};var escape$1=escapeHTML;var inherit$1=inherit;var NO_MATCH=Symbol("nomatch");var HLJS=function(e){var t=Object.create(null);var n=Object.create(null);var a=[];var r=true;var s=/(^(<[^>]+>|\t|)+|\n)/gm;var i="Could not find the language '{}', did you forget to load/include a language module?";var o={disableAutodetect:true,name:"Plain text",contains:[]};var l={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:false,languages:null,__emitter:TokenTreeEmitter};function d(e){return l.noHighlightRe.test(e)}function u(e){var t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";var n=l.languageDetectRe.exec(t);if(n){var a=S(n[1]);if(!a){warn(i.replace("{}",n[1]));warn("Falling back to no-highlight mode for this block.",e)}return a?n[1]:"no-highlight"}return t.split(/\s+/).find((function(e){return d(e)||S(e)}))}function c(e,t,n,a){var r="";var s="";if(typeof t==="object"){r=e;n=t.ignoreIllegals;s=t.language;a=undefined}else{deprecated("10.7.0","highlight(lang, code, ...args) has been deprecated.");deprecated("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277");s=e;r=t}var i={code:r,language:s};N("before:highlight",i);var o=i.result?i.result:m(i.language,i.code,n,a);o.code=i.code;N("after:highlight",o);return o}function m(e,n,s,o){function d(e,t){var n=E.case_insensitive?t[0].toLowerCase():t[0];return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]}function u(){if(!T.keywords){R.addText(D);return}var e=0;T.keywordPatternRe.lastIndex=0;var t=T.keywordPatternRe.exec(D);var n="";while(t){n+=D.substring(e,t.index);var a=d(T,t);if(a){var r=a[0],s=a[1];R.addText(n);n="";_+=s;if(r.startsWith("_")){n+=t[0]}else{var i=E.classNameAliases[r]||r;R.addKeyword(t[0],i)}}else{n+=t[0]}e=T.keywordPatternRe.lastIndex;t=T.keywordPatternRe.exec(D)}n+=D.substr(e);R.addText(n)}function c(){if(D==="")return;var e=null;if(typeof T.subLanguage==="string"){if(!t[T.subLanguage]){R.addText(D);return}e=m(T.subLanguage,D,true,q[T.subLanguage]);q[T.subLanguage]=e.top}else{e=p(D,T.subLanguage.length?T.subLanguage:null)}if(T.relevance>0){_+=e.relevance}R.addSublanguage(e.emitter,e.language)}function h(){if(T.subLanguage!=null){c()}else{u()}D=""}function g(e){if(e.className){R.openNode(E.classNameAliases[e.className]||e.className)}T=Object.create(e,{parent:{value:T}});return T}function f(e,t,n){var a=startsWith(e.endRe,n);if(a){if(e["on:end"]){var r=new Response(e);e["on:end"](t,r);if(r.isMatchIgnored)a=false}if(a){while(e.endsParent&&e.parent){e=e.parent}return e}}if(e.endsWithParent){return f(e.parent,t,n)}}function b(e){if(T.matcher.regexIndex===0){D+=e[0];return 1}else{F=true;return 0}}function w(e){var t=e[0];var n=e.rule;var a=new Response(n);var r=[n.__beforeBegin,n["on:begin"]];for(var s=0,i=r;s<i.length;s++){var o=i[s];if(!o)continue;o(e,a);if(a.isMatchIgnored)return b(t)}if(n&&n.endSameAsBegin){n.endRe=escape(t)}if(n.skip){D+=t}else{if(n.excludeBegin){D+=t}h();if(!n.returnBegin&&!n.excludeBegin){D=t}}g(n);return n.returnBegin?0:t.length}function v(e){var t=e[0];var a=n.substr(e.index);var r=f(T,e,a);if(!r){return NO_MATCH}var s=T;if(s.skip){D+=t}else{if(!(s.returnEnd||s.excludeEnd)){D+=t}h();if(s.excludeEnd){D=t}}do{if(T.className){R.closeNode()}if(!T.skip&&!T.subLanguage){_+=T.relevance}T=T.parent}while(T!==r.parent);if(r.starts){if(r.endSameAsBegin){r.starts.endRe=r.endRe}g(r.starts)}return s.returnEnd?0:t.length}function x(){var e=[];for(var t=T;t!==E;t=t.parent){if(t.className){e.unshift(t.className)}}e.forEach((function(e){return R.openNode(e)}))}var y={};function C(t,a){var i=a&&a[0];D+=t;if(i==null){h();return 0}if(y.type==="begin"&&a.type==="end"&&y.index===a.index&&i===""){D+=n.slice(a.index,a.index+1);if(!r){var o=new Error("0 width match regex");o.languageName=e;o.badRule=y.rule;throw o}return 1}y=a;if(a.type==="begin"){return w(a)}else if(a.type==="illegal"&&!s){var o=new Error('Illegal lexeme "'+i+'" for mode "'+(T.className||"<unnamed>")+'"');o.mode=T;throw o}else if(a.type==="end"){var l=v(a);if(l!==NO_MATCH){return l}}if(a.type==="illegal"&&i===""){return 1}if(I>1e5&&I>a.index*3){var o=new Error("potential infinite loop, way more iterations than matches");throw o}D+=i;return i.length}var E=S(e);if(!E){error(i.replace("{}",e));throw new Error('Unknown language: "'+e+'"')}var k=compileLanguage(E,{plugins:a});var A="";var T=o||k;var q={};var R=new l.__emitter(l);x();var D="";var _=0;var P=0;var I=0;var F=false;try{T.matcher.considerAll();for(;;){I++;if(F){F=false}else{T.matcher.considerAll()}T.matcher.lastIndex=P;var L=T.matcher.exec(n);if(!L)break;var N=n.substring(P,L.index);var B=C(N,L);P=L.index+B}C(n.substr(P));R.closeAllNodes();R.finalize();A=R.toHTML();return{relevance:Math.floor(_),value:A,language:e,illegal:false,emitter:R,top:T}}catch(t){if(t.message&&t.message.includes("Illegal")){return{illegal:true,illegalBy:{msg:t.message,context:n.slice(P-100,P+100),mode:t.mode},sofar:A,relevance:0,value:escape$1(n),emitter:R}}else if(r){return{illegal:false,relevance:0,value:escape$1(n),emitter:R,language:e,top:T,errorRaised:t}}else{throw t}}}function h(e){var t={relevance:0,emitter:new l.__emitter(l),value:escape$1(e),illegal:false,top:o};t.emitter.addText(e);return t}function p(e,n){n=n||l.languages||Object.keys(t);var a=h(e);var r=n.filter(S).filter(I).map((function(t){return m(t,e,false)}));r.unshift(a);var s=r.sort((function(e,t){if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(S(e.language).supersetOf===t.language){return 1}else if(S(t.language).supersetOf===e.language){return-1}}return 0}));var i=s[0],o=s[1];var d=i;d.second_best=o;return d}function g(e){if(!(l.tabReplace||l.useBR)){return e}return e.replace(s,(function(e){if(e==="\n"){return l.useBR?"<br>":e}else if(l.tabReplace){return e.replace(/\t/g,l.tabReplace)}return e}))}function f(e,t,a){var r=t?n[t]:a;e.classList.add("hljs");if(r)e.classList.add(r)}var b={"before:highlightElement":function(e){var t=e.el;if(l.useBR){t.innerHTML=t.innerHTML.replace(/\n/g,"").replace(/<br[ /]*>/g,"\n")}},"after:highlightElement":function(e){var t=e.result;if(l.useBR){t.value=t.value.replace(/\n/g,"<br>")}}};var w=/^(<[^>]+>|\t)+/gm;var v={"after:highlightElement":function(e){var t=e.result;if(l.tabReplace){t.value=t.value.replace(w,(function(e){return e.replace(/\t/g,l.tabReplace)}))}}};function x(e){var t=null;var n=u(e);if(d(n))return;N("before:highlightElement",{el:e,language:n});t=e;var a=t.textContent;var r=n?c(a,{language:n,ignoreIllegals:true}):p(a);N("after:highlightElement",{el:e,result:r,text:a});e.innerHTML=r.value;f(e,n,r.language);e.result={language:r.language,re:r.relevance,relavance:r.relevance};if(r.second_best){e.second_best={language:r.second_best.language,re:r.second_best.relevance,relavance:r.second_best.relevance}}}function y(e){if(e.useBR){deprecated("10.3.0","'useBR' will be removed entirely in v11.0");deprecated("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")}l=inherit$1(l,e)}var C=function(){if(C.called)return;C.called=true;deprecated("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead.");var e=document.querySelectorAll("pre code");e.forEach(x)};function E(){deprecated("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead.");k=true}var k=false;function A(){if(document.readyState==="loading"){k=true;return}var e=document.querySelectorAll("pre code");e.forEach(x)}function T(){if(k)A()}if(typeof window!=="undefined"&&window.addEventListener){window.addEventListener("DOMContentLoaded",T,false)}function q(n,a){var s=null;try{s=a(e)}catch(e){error("Language definition for '{}' could not be registered.".replace("{}",n));if(!r){throw e}else{error(e)}s=o}if(!s.name)s.name=n;t[n]=s;s.rawDefinition=a.bind(null,e);if(s.aliases){P(s.aliases,{languageName:n})}}function R(e){delete t[e];for(var a=0,r=Object.keys(n);a<r.length;a++){var s=r[a];if(n[s]===e){delete n[s]}}}function D(){return Object.keys(t)}function _(e){deprecated("10.4.0","requireLanguage will be removed entirely in v11.");deprecated("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844");var t=S(e);if(t){return t}var n=new Error("The '{}' language is required, but not loaded.".replace("{}",e));throw n}function S(e){e=(e||"").toLowerCase();return t[e]||t[n[e]]}function P(e,t){var a=t.languageName;if(typeof e==="string"){e=[e]}e.forEach((function(e){n[e.toLowerCase()]=a}))}function I(e){var t=S(e);return t&&!t.disableAutodetect}function F(e){if(e["before:highlightBlock"]&&!e["before:highlightElement"]){e["before:highlightElement"]=function(t){e["before:highlightBlock"](Object.assign({block:t.el},t))}}if(e["after:highlightBlock"]&&!e["after:highlightElement"]){e["after:highlightElement"]=function(t){e["after:highlightBlock"](Object.assign({block:t.el},t))}}}function L(e){F(e);a.push(e)}function N(e,t){var n=e;a.forEach((function(e){if(e[n]){e[n](t)}}))}function B(e){deprecated("10.2.0","fixMarkup will be removed entirely in v11.0");deprecated("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534");return g(e)}function O(e){deprecated("10.7.0","highlightBlock will be removed entirely in v12.0");deprecated("10.7.0","Please use highlightElement now.");return x(e)}Object.assign(e,{highlight:c,highlightAuto:p,highlightAll:A,fixMarkup:B,highlightElement:x,highlightBlock:O,configure:y,initHighlighting:C,initHighlightingOnLoad:E,registerLanguage:q,unregisterLanguage:R,listLanguages:D,getLanguage:S,registerAliases:P,requireLanguage:_,autoDetection:I,inherit:inherit$1,addPlugin:L,vuePlugin:BuildVuePlugin(e).VuePlugin});e.debugMode=function(){r=false};e.safeMode=function(){r=true};e.versionString=version;for(var V in MODES){if(typeof MODES[V]==="object"){deepFreezeEs6(MODES[V])}}Object.assign(e,MODES);e.addPlugin(b);e.addPlugin(mergeHTMLPlugin);e.addPlugin(v);return e};var highlight=HLJS({});var core=highlight;function gherkin(e){return{name:"Gherkin",aliases:["feature"],keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",contains:[{className:"symbol",begin:"\\*",relevance:0},{className:"meta",begin:"@[^@\\s]+"},{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string",begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},e.HASH_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},e.QUOTE_STRING_MODE]}}var gherkin_1=gherkin;core.registerLanguage("gherkin",gherkin_1);var CucumberAddon=function(e,t){var n=e.story;var a;var r=(a=n.parent.parameters)===null||a===void 0?void 0:a.scenario;var s;try{s=core.highlight("gherkin",r)}catch(e){}return h("div",null,h("details",null,h("summary",null,"Specs"),s&&h("pre",{innerHTML:s.value})),t)};var stories=[ShareButton,ShareLink,BigStat,Leaderboard,EmptyState,LeaderboardRank,UseShareLink,UseShareButton,UseBigStat,UseEditProfile,UseLeaderboard,UseCheckboxField,UseDropdownField,UseInputField,Router,PortalFrame,EditProfile,FormMessage,NewPortal,SidebarItem,NavigationSidebar,PortalLogin,PortalRegister,PortalForgotPassword,PortalEmailVerification,PortalResetPassword,PortalVerifyEmail,AssetCard,DividedLayout,ChangePassword,PortalProfile,ReferralTable,ReferralTableCell,ReferralTableRewardsCell,UserName,PasswordField,TaskCard$2,PortalTemplates,Widget,ProgramMenu,PoweredByImg,PortalFooter,Hero,ReferralIframe$1,NameFields$1,CheckboxField,DropdownField,InputField,RewardExchangeList,UseRewardExchangeList,UseTaskCard,UseRewardsTable,ProgramExplainer,ProgramExplainerStep$1,BrandStories,CardFeed,PortalContainer,RewardsTableCell,RewardsTable$1,UseReferralTable,HeroImage,ReferralCard,Timeline,Image$1,TitledSection,Scroll,Tabs,ShareCode$1,CouponCode$1,LogoutCurrentUser,LinkButton,EmailRegistration,CloseButton];var StencilStorybook=function(){function e(e){registerInstance(this,e);this.ignored=true;h$1(this)}e.prototype.disconnectedCallback=function(){};e.prototype.render=function(){var e=y$1(stories,{h:h,title:"Mint Components",addons:[HookStoryAddon,ShadowViewAddon,CucumberAddon]}),t=e.class,n=e.children;var a=useState("Default"),r=a[0],s=a[1];var i=useState(true),o=i[0],l=i[1];var d=Object.keys(Themes);var u=Themes[r];return h(Host,{class:t,onClick:{}},h("div",{style:{position:"absolute",top:"0",right:"0",zIndex:"999999"}},"Branding:",h("select",{onChange:function(e){return s(e.target.value)}},d.map((function(e){return h("option",{selected:e===r},e)}))),h("div",null,h("div",null)),h(ColorScale,null),h("br",null),h("input",{type:"checkbox",id:"checkerboard",onClick:function(){return l(!o)},onChange:function(){return document.documentElement.style.setProperty("--checker-color-1",o?"#ebebeb":"#ffffff00")}}),h("label",{htmlFor:"checkerboard"},"Checkerboard?")),h("style",null,u),h("style",null,ResizerStylesheet),n)};return e}();function ColorScale(){return h("span",null,h(ColorToken,null),h(ColorToken,{type:"success"}),h(ColorToken,{type:"warning"}),h(ColorToken,{type:"danger"}),h(ColorToken,{type:"neutral"}))}function ColorToken(e){var t=e.type,n=t===void 0?"primary":t;return h("span",{style:{background:"var(--sl-color-"+n+"-500)",width:"1em",marginRight:"2px",padding:"0 4px"},title:n},n.charAt(0))}export{StencilStorybook as sqm_stencilbook};var templateObject_1;